Short answer

The bill arrives at an address you give your suppliers. The system reads it, finds the vendor, the job, the cost code and the purchase order in your own records, and checks it against rules you set. Clean bills are coded and exported without anyone touching them. Bills that do not add up come to you with a note saying why. Everything leaves as a file QuickBooks imports, and every step is logged.

The bill

Invented for this page: Gulf Coast Lumber Supply emails invoice 4471 for $8,240.00. It cites purchase order 2291-A and the Oakridge Duplex job. Your purchase order for that job allowed $7,900.00.

What happens, in order

  1. It arrives. Suppliers keep emailing the way they do now. The PDF lands at an intake address and is stored with the email it came in.
  2. It is read. Claude pulls out the vendor, invoice number, date, lines, totals and the PO and job it cites. It reads; it does not decide.
  3. It is matched to your records. The vendor, job, cost code and PO come from the lists you gave us, not from the model's guess. A name that is close but not certain is marked for a person.
  4. The rules run. Pass or fail is written as code, so the same bill always gets the same answer and every rejection names the rule it broke. Here, invoice 4471 is $340.00 over PO 2291-A, which fails the over-PO rule.
  5. Exceptions come to you. You get an emailed link to a page showing the bill beside the PO and the reason it stopped. Approve it, correct a field, or send it back. A flagged bill is never posted on a guess.
  6. It leaves as a QuickBooks file. Bills that passed, and flagged ones you approved, are exported as a QuickBooks Online bill import, coded to the right job and cost code. You import it the way you import anything else.
  7. It is logged. What arrived, what was read, what the rules said and who approved it are kept in an append-only record.

How much runs on its own

The routine bills run start to finish on their own: read, matched, checked, coded and exported. Clear failures go back to the supplier with the reason. Only the unclear ones reach you. You set the rules and the limits.

A duplicate, a bill with no PO, a vendor not in your list and an amount over the PO are flagged to you. Paying the supplier stays in your hands.

Work out your own number

We will not quote a saving we have not measured. Here is the arithmetic instead. The starting values are invented examples. Replace them with yours.

Example inputs, not a client result






The formula: hours today = bills × minutes today ÷ 60. Hours after = bills × (check minutes + share flagged × minutes to resolve) ÷ 60. The difference is the time that comes back, before the cost of running the system.

What we measure in the first 30 days

Before the system runs, we time how long a bill takes your team today. Then we track four things against that baseline: minutes of your team's time per bill, the share flagged, days from a bill arriving to being posted, and duplicates caught. The saving is whatever those numbers say, including when it is small.

When you do not need this

If your bills already arrive as clean data in a bill-pay tool and that tool matches them to your jobs, you do not need us. The gap we fill is matching to your own jobs, purchase orders and cost codes when bills arrive as PDFs in an inbox, plus a flag on anything that does not fit. If that is not your situation, we will say so on the first call.

Where your documents go

Each client's records sit in their own isolated store, and any stored logins are encrypted per client. Claude reads the documents; the rules and the matching to your records are written as code. We do not take on health, card or Social Security data unless a written scope says so. Your Claude and other software subscriptions stay in your name.

Related reading