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

I 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 I 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.