Extract structured, grounded fields from documents — values cite their page, missing values abstain instead of hallucinating. Use for parsing invoices, payslips, statements, contracts.
Start a fresh conversation. Replace the highlighted placeholders.
Use extract-document-data to after confirming explicit approval to upload [document], extract [fields] into grounded JSON with each value’s page and confidence, list absent fields in not_found, and preserve the original and extraction response for review.
Required inputs
[document]
[fields]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: extract-document-datadescription: Extract structured, grounded fields from documents — values cite their page, missing values abstain instead of hallucinating. Use for parsing invoices, payslips, statements, contracts.category: document-verificationrisk: criticalsource: communitysource_repo: Sketchjar/stipple-agent-skillssource_type: communitydate_added: "2026-08-31"author: Sketchjartags: [document-verification, fact-checking, stipple, authenticity]tools: [claude, cursor, gemini, codex]license: "Apache-2.0"license_source: "https://github.com/Sketchjar/stipple-agent-skills/blob/main/LICENSE"
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
Get the document. URL or local file path (PDF, PNG, JPEG, DOCX).
Choose the extraction mode:
Ad-hoc fields — tell the API exactly which fields you want:
"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