Extract structured data from documents with grounding
Extracts structured JSON from documents with per-value grounding: page number and confidence per field, absences reported, never guessed.
Why it matters
Convert unstructured documents-payslips, invoices, bank statements, receipts, contracts-into structured JSON with per-value confidence scores and page citations, ensuring missing fields are reported rather than hallucinated.
Outcomes
What it gets done
Parse payslips, invoices, and receipts into JSON with field-level confidence and page grounding
Extract ad-hoc fields or use built-in templates for common document types
Report missing fields explicitly in not_found array instead of guessing values
Process multi-page PDFs, images, and DOCX files with per-page attribution
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-extract-document-data | bash Overview
Extract Document Data
This skill extracts structured JSON from documents such as payslips, invoices, and bank statements using the Stipple API, citing a page number and confidence score for every value and reporting genuine absences instead of guessing. Use it to convert unstructured documents into structured JSON for downstream systems, especially where a hallucinated value would be worse than a missing one.
What it does
This skill extracts structured JSON from documents - payslips, invoices, bank statements, receipts, contracts - with per-value grounding: every extracted value cites the page it came from and a confidence score, and any value that isn't clearly present is reported in a not_found list rather than invented.
When to use - and when NOT to
Use it for parsing payslips, invoices, bank statements, receipts, or contracts into structured JSON for downstream systems, especially anywhere a hallucinated value is worse than a missing one - lending, accounting, compliance. This is extraction, not verification: confidence and page grounding do not prove a value is correct or that the source document is authentic. Pair it with the verify-document skill first when genuineness matters, and reconcile consequential values against the original document and authoritative systems before payment, lending, accounting, or compliance action.
Inputs and outputs
Input is a document by URL or local file path (PDF, PNG, JPEG, DOCX) plus an extraction mode: ad-hoc named fields, a built-in template (payslip, tax_invoice, bank_statement, receipt, contract), or schema-free.
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"
Output is a JSON object per requested field with its value, confidence score, and source page number - for a payslip, that might read employer name at confidence 0.95 on page 1, and net pay at confidence 0.97 on the same page - plus a not_found list for anything requested but not located, and a pages_read count. Absences are reported, never guessed: a missing year-to-date tax figure comes back as "not found," never as zero.
Integrations
The Stipple API (free anonymous tier, or a free key for higher metering) performs the extraction, at a cost of 1 credit per page read, minimum 1 per document. Tables are extracted with their structure preserved, and multi-page documents are processed page by page. It pairs naturally with verify-document, run first, since an extracted value from a tampered document is still wrong even when correctly read off the page.
Who it's for
Teams converting unstructured documents into structured data for lending, accounting, compliance, or other downstream systems, where a wrong or invented value is more dangerous than an honestly reported gap and a human reviewer needs to be able to trace every value back to the exact page it came from before anyone acts on it, especially when the same document is later reconciled against a source system.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.