● Demo 02 · Document extraction
Messy invoice in.
Clean record out — or a flag.
Paste the text of an invoice, receipt or order. Fields are extracted, normalised to a strict schema and checked. Anything missing or arithmetically wrong is surfaced, not smoothed over.
Pipeline
extract → normalise → validate → route
0 / 4000
PDF, PNG, JPEG, WEBP or TIFF · up to 6 MB · read on our server, not sent to a third party
What it actually does
- Extracts nine fields — document type, vendor, invoice number, issue and due dates, currency, net, tax and total.
- Refuses to guess. If a total is absent the item fails validation. It is never computed from partial data and posted silently.
- Checks the arithmetic. If net + tax does not equal total, that is reported as a warning rather than corrected.
- Routes on outcome. Clean records go to posting; anything with a blocking issue goes to a review queue where a human sees the exact field and reason.
Limits of this demo
- PDF and images are read with OCR — PDF, PNG, JPEG, WEBP and TIFF up to 6 MB, first 8 pages. PDFs that already contain text are read directly, with no OCR.
- OCR is good with numbers, weaker with names. Amounts and dates usually read correctly; a smudged or rotated scan can garble a vendor name. A garbled name is a warning, never a guess.
- A poor scan is never posted automatically. The OCR engine reports how confident it is in the characters it read. Below 60% the record is routed to
needs_revieweven when the arithmetic adds up, because the figures themselves may be misread. - Scanned documents in non-Latin alphabets, handwriting and photographed crumpled paper are outside what this build handles reliably.
- Nothing is written to an accounting system. A live build posts to Xero, QuickBooks or Pohoda.
- Line-item-level extraction is not shown here; the record is invoice-header level.
How many invoices a month do you retype?
Tell me the volume and the system you use — that sets the build.