Skip to content
Skillv1.0.0

extract-document-data

Extract structured, grounded fields from documents — values cite their page, missing values abstain instead of hallucinating. Use for parsing invoices, payslips, statements, contracts.

by sickn33(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from sickn33/agentic-awesome-skills (skills/extract-document-data/SKILL.md). Install upstream with npx skills add sickn33/agentic-awesome-skills --skill extract-document-data. Copyright stays with the author (Apache-2.0).

Extract Document Data

Extract structured JSON from documents with per-value grounding: every extracted value cites where it came from (page number, confidence), and values that aren't clearly present are reported in not_found rather than hallucinated. Uses the Stipple API (free anonymous tier).

When to use

  • Parsing payslips, invoices, bank statements, receipts, or contracts
  • Converting unstructured documents to JSON for downstream systems
  • Any extraction where hallucinated values are worse than missing values (lending, accounting, compliance)

Instructions

  1. Get the document. URL or local file path (PDF, PNG, JPEG, DOCX).

  2. Choose the extraction mode:

    • Ad-hoc fields — tell the API exactly which fields you want:
      curl -X POST https://www.stipple.sh/v1/extract \
        -F "file=@payslip.pdf" \
        -F 'fields=[{"name":"employer_name"},{"name":"net_pay"},{"name":"pay_date"}]' \
        -H "Authorization: Bearer $STIPPLE_API_KEY"
    • Template — use a built-in schema: payslip, tax_invoice, bank_statement, receipt, contract
    • Schema-free — omit fields and let the model extract what it finds
  3. Interpret the response.

    {
      "mode": "schema_free",
      "document_type": "payslip",
      "pages_read": 1,
      "fields": {
        "employer_name": {"value": "Acme Cleaning Pty Ltd", "confidence": 0.95, "page": 1},
        "net_pay": {"value": "2845.10", "confidence": 0.97, "page": 1}
      },
      "not_found": ["ytd_tax"]
    }
    • Every value carries confidence (the model's self-report) and page (grounding)
    • not_found[] lists requested fields the model couldn't find — absences are reported, never guessed
    • pages_read shows how many pages were processed (page limits apply per document)
  4. Report honestly. This is extraction, not verification — values are what the document shows, not proof it's genuine:

    • "Employer: Acme Cleaning Pty Ltd (confidence 0.95, page 1)"
    • "ytd_tax: not found in document" — never "ytd_tax: 0" or a guess
    • For "is this document genuine?", pair with the verify-document skill first

Output format

Payslip fields (grounded, not guessed):

  Employer          Acme Cleaning Pty Ltd  (confidence 0.95, page 1)
  Employee          J. Citizen             (confidence 0.98, page 1)
  Net pay           2,845.10               (confidence 0.97, page 1)
  Superannuation    268.20                 (confidence 0.93, page 1)

not_found: ytd_tax
(absences are reported, never hallucinated)

Limitations and Safety

  • Invoices, statements, payslips, and contracts often contain sensitive personal, financial, or commercial data. Obtain explicit approval before uploading them to a hosted third party, minimize the submitted content, and confirm current retention, residency, access, and deletion terms.
  • Confidence and page grounding do not prove that an extracted value is correct or that the source document is authentic. Reconcile consequential values against the original document and authoritative systems before payment, lending, accounting, compliance, or legal action.
  • Keep the original file and extraction response so a human reviewer can reproduce and correct disputed fields.

Notes

  • Costs 1 credit per page read by the model (minimum 1); free weekly allowance applies
  • Templates: payslip, tax_invoice, bank_statement, receipt, contract — pass as the template form field
  • Tables are extracted with structure preserved; multi-page documents are processed page by page
  • Pairs with verify-document (run first, for authenticity) — an extracted value from a tampered document is still wrong
  • Free key at https://www.stipple.sh for metering beyond the anonymous allowance

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/sickn33-agentic-awesome-skills-extract-document-data/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

sickn33-agentic-awesome-skills-extract-document-data.ocm.jsonjson
{
  "ocm": "1",
  "id": "sickn33-agentic-awesome-skills-extract-document-data",
  "kind": "skill",
  "name": "extract-document-data",
  "description": "Extract structured, grounded fields from documents — values cite their page, missing values abstain instead of hallucinating. Use for parsing invoices, payslips, statements, contracts.",
  "publisher": "sickn33",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "general"
    ],
    "tags": [
      "skill-md",
      "document-verification",
      "fact-checking",
      "stipple",
      "authenticity",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Extract structured, grounded fields from documents — values cite their page, missing values abstain instead of hallucinating. Use for parsing invoices, payslips, statements, contracts."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/sickn33/agentic-awesome-skills",
      "path": "skills/extract-document-data/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/sickn33/agentic-awesome-skills/blob/HEAD/skills/extract-document-data/SKILL.md",
      "key": "sickn33/agentic-awesome-skills/skills/extract-document-data/SKILL.md"
    },
    "license": "Apache-2.0"
  },
  "instructions": "# Extract Document Data\n\nExtract structured JSON from documents with per-value grounding: every extracted value cites where it came from (page number, confidence), and values that aren't clearly present are reported in `not_found` rather than hallucinated. Uses the Stipple API (free anonymous tier).\n\n## When to use\n\n- Parsing payslips, invoices, bank statements, receipts, or contracts\n- Converting unstructured documents to JSON for downstream systems\n- Any extraction where hallucinated values are worse than missing values (lending, accounting, compliance)\n\n## Instructions\n\n1. **Get the documen",
  "cost": {
    "context_tokens": 954
  }
}

Fetch it by URL: GET /api/v1/registry/sickn33-agentic-awesome-skills-extract-document-data/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.