All work
AI · Document ops·2026Live demo below

Invoice & Receipt Extractor

Paste an invoice and it reads out a clean line-item table with subtotal, tax and total, ready to copy into a sheet.

Next.jsTypeScriptRegex parsingAI-assisted

01 · The opportunity

What it set out to solve

Invoices and receipts arrive as text, PDFs and photos, and someone has to retype them into a spreadsheet or accounting tool, line by line. It's slow, error-prone, and it's the kind of work nobody should be doing by hand.

02 · The approach

How I thought about it

We framed it as a parsing problem with a clear output: whatever the layout, produce a structured table (item, qty, unit price, amount) plus the totals, and show the extraction happening so it's legible, not magic. The demo runs on regex and heuristics; the shape is identical to a production OCR pipeline.

03 · What I built

  • Paste-in invoice text with a realistic prefilled sample
  • A visible extraction loop: read → find line items → read tax & totals
  • Clean line-item table with per-row qty × price validation
  • Subtotal, GST/tax lines and grand total, parsed and totalled
  • A reconciliation check + one-click copy as CSV

04 · The result

What changed

A working extractor that turns a messy invoice into a structured, copy-ready table in seconds, the kind of document-ops automation we wire into a client's finance stack.

Live · interactive

Extract an invoice.

Paste an invoice or receipt (or use the sample) and watch it read out a clean line-item table with subtotal, tax and total, ready to copy as a spreadsheet. Nothing leaves your browser.

Paste an invoice

Paste the raw text of an invoice or receipt, or use the sample. The extractor pulls out the line items, tax and totals.

A clean line-item table with subtotal, tax and total will appear here, ready to copy as a spreadsheet.

05 · Decisions & trade-offs

The questions I'd get asked about this, and my answers

Is this doing real OCR?

No, for the public demo it parses pasted text with regex and heuristics, so there's nothing to upload and no data leaves the page. In a client build the same table-building logic sits behind a vision-LLM / OCR layer that reads photos and PDFs of any layout.

Why show the qty × price reconciliation?

Because extraction is only useful if you can trust it. Flagging rows where quantity times unit price doesn't equal the amount, and checking the line items sum to the stated subtotal, is how you catch a bad read before it hits the books.

How would this run day to day?

Invoices land in an inbox or a folder; the agent extracts each one, validates it, and pushes structured lines into your accounting tool or a sheet, queuing anything that doesn't reconcile for a human glance.