Paperwork that reads itself, and knows when to stop.

Invoices, purchase orders, intake forms and delivery notes arrive as PDFs and attachments. We build the reader that pulls out the fields, checks them against your rules, and turns them into the next action. When a page does not add up, it goes to a person.

130automated tests before our first document bot went live
628shipping labels made from printed invoices so far
1label per invoice, however many times it is reprinted

Six stops between "it arrived" and "it's done".

This is the route an invoice takes through the bot we built for a dental lab. Most document jobs follow the same stops. Each one can turn the document away.

1 Arrivesprinted, saved oremailed to a folder 2 Settleswaits until the filestops changing 3 Readsfields by where theysit on the page 4 Checksrequired fields, totals,seen before? 5 Actscreates the label,record or file 6 Recordsledger line: done,never again A person's review queue with the document, the stop that refused it, and the reason in plain words Dashed lines: refusals. Nothing is guessed to keep the line moving.
Why position, not words. Invoices from one system put the ship-to block in the same place every time. Reading by position is steadier than hunting for labels that a template change can rename.

A good document bot is mostly a list of no's.

These are the refusals built into the lab's bot. Yours will have its own, written with you before we build.

  • A file that is still being writtenHalf a PDF reads as a different document. It waits until the file has stopped changing.
  • A page with no text layerSome "print to PDF" options keep the text and some flatten it to a picture. We measure which do on your machines, and a flattened page goes to a person.
  • A document it has already handledThe ledger is checked first. A reprint looks up the existing result and reprints it instead of creating a second one.
  • An action that cannot succeedBefore buying a courier label, it asks the courier whether the address is in its service area. No spend on a parcel that cannot be collected.
  • A field it cannot read with confidenceMissing, blank or out of place: it stops and says which field, rather than filling in something plausible.
  • More personal detail than the job needsThe lab's labels carry the invoice number, never the patient's name. Each output carries the minimum.

From a pile to a pipeline.

A messy heap of mixed paperwork on one side feeding onto a small conveyor belt that carries neat, sorted documents away

A reader per document type

Tested on your real examples, messy ones included.

Your rules as checks

What must be present, what must add up, what counts as a duplicate.

The next action

A record in accounting or your CRM, a file in the right folder, or a new document such as a label.

A review queue

Refused documents wait here, each with its reason.

A ledger

Every document handled, searchable by number or date.

A test suite

Run again whenever a supplier changes their layout.

Documents we would start from

Supplier invoicesPurchase ordersPacking slipsIntake and consent formsWork ordersBank and card statements

An invoice that prints its own label.

A small label printer pushing out one shipping label beside a printed invoice on the same tray

At Carlos Ceramics Dental Lab, staff print every invoice anyway. LabelBot watches the folder those prints land in, reads the ship-to block by its position, checks the courier's service area, buys one label behind a write-ahead ledger and a file lock, and prints it on the same printer as the invoice.

Before it went live it passed 130 automated tests, covering invoice layouts, odd addresses, duplicate prints and a slow courier system, and it ran for several days next to the labels staff made by hand. It has made 628 labels so far, an estimated 34 to 57 hours of work.

Read how LabelBot is built

About reading documents.

Can it read photos of paper or scanned pages?

Clear scans can be run through text recognition first, and we test how reliable that is on your examples before promising anything. Pages it cannot read with confidence go to the review queue instead of being guessed.

What happens when a supplier changes their invoice layout?

The checks fail loudly instead of quietly reading the wrong box. We add the new layout to the tests, update the reader, and run the full suite before it goes back on.

Do you use AI to read the documents?

Where the layout is fixed, plain rules are faster and more predictable. Where documents vary a lot, a language model can pull out fields, with the same checks and review queue behind it. We choose per document type and tell you which.

What do you need from us to start?

Twenty or thirty real documents of each type, including the awkward ones, your rules for what makes a document complete, and an hour with whoever reads them today.

Bring the ugliest invoice you have.

On a free call we will look at a few real documents and tell you which fields can be read reliably and what the bot should refuse.