Agents

Thirty invoices. One spreadsheet. Nothing invented.

Drop in PDFs, phone photos and forwarded emails. You get back a single CSV — duplicates merged, credit notes negative, and every field it could not read left blank and listed.

Extract a folder of invoicesFree to try. Nothing to install.

How it works

Three steps, and none of them is “configure”.

  1. 01

    Give it the whole folder

    PDFs from a billing system, a photo of a paper receipt, the body of a forwarded email. It reads pictures and documents directly rather than scraping text out of them, because text scraped from a PDF is fragments that look like sentences.

  2. 02

    It reads before it tabulates

    Every file first: which are invoices, which is a credit note, which is the same invoice arriving twice under a differently spelled vendor name. It matches on invoice number and amount, not on the name, because the name will be spelled three ways.

  3. 03

    You get invoices.csv, and a list of what to check

    One file with a row per document, and a short message naming the ambiguous dates, the merged duplicates, the totals that disagree with their own line items, and every cell it left empty.

What it can do

  • It leaves a field blank rather than guessing it

    An invented invoice number costs more than a missing one — a missing one gets looked up, an invented one gets paid. Anything unreadable is an empty cell and a line in the summary naming the file it came from.

  • It catches the same invoice twice

    Forwarded scans and re-issued copies are normal, and they double a real cost when nobody notices. Matching is on number and amount, so ACME CLOUD PRIVATE LIMITED and Acme Cloud Pvt. Ltd. merge into one row — and it names the files it merged.

  • It reports totals that do not add up

    A footer and its line items disagree more often than anyone expects — a discount applied before tax, a hand-edited PDF. It gives you both numbers and says they differ, instead of quietly picking the tidier one.

How it is set up

The mechanics, so you know what you are getting before you sign in.

Environment
A Linux container with the documents in it. Arithmetic is checked by running it in Python rather than by adding in the model's head, which is the one part of this job a language model is worst at.
Tools
viewDocument, viewImage, askAboutFile, readFile, writeFile, editFile, glob, grep, bash. No network and no tracker — nothing leaves the container except the file you take.
Model
Any chat model in the catalogue that can see. The work is reading a picture carefully and refusing to fill in what is not there, so it is worth comparing two on the same folder.
Starting files
Seeded with four documents that carry the four traps: two currencies, one duplicate under a different spelling, a credit note that looks positive, and a total that does not match its own lines.
What persists
The workspace and the CSV persist with the session. Come back tomorrow, drop in five more invoices, and it appends to the table you already have.

Things people ask it

  • Extract everything in invoices/ into one CSV and tell me what needs checking.
  • Is anything in here a duplicate?
  • What did I spend with each supplier in March, by currency?
  • Do the totals on these match their own line items?

What it will not do

Every one of these is a real constraint we have hit, not a roadmap item.

  • It will not convert currencies. Two currencies means two totals — a combined figure would be a made-up exchange rate wearing a suit.
  • It reads what is on the page. A blurred photo or a picture of a fax is reported as unreadable by name, not half-extracted and left to look complete.
  • Dates are read day-first and it says so. Where a date is genuinely ambiguous — 03/04/2026 — it flags it rather than picking one silently.

Which model does this best

Coming soon

We are aggregating per-model results for this agent — how often a run finishes the job without you stepping in, what it costs, and how long it takes. The numbers go here once there are enough runs for them to mean anything, and all three are published together: a model that finishes fast by giving up is slow to complete, and one that completes everything by grinding is expensive.

Completion rate

Runs that finished the job without you having to step in.

Median cost

What a typical run costs, in credits.

Median time

Wall clock, from the first message to the answer.

Thirty invoices. One spreadsheet. Nothing invented.

It is already set up. Open it and ask it something.

Extract a folder of invoices

Browse every agent