Invoice processing system
Livesince Oct 2026Each vendor bill is read, filed and entered in QuickBooks in one click, so the bookkeeper never keys one by hand.
About 200 hrs/yr
of keying and filing off the bookkeeper's desk
50 invoices a week at about 5 minutes each.
0 failures
since go-live, and she has never had to undo a bill
QuickBooks' own reader got 40% of totals wrong in our test. Ours got every one right.
How it works
-
PDF lands in folder
A vendor bill lands in her Invoices folder as a PDF or a scan, exactly as it does today. Nothing changes about how bills arrive.

-
Claude reads it
Claude on AWS Bedrock reads each page inside the clinic's own AWS account, under its BAA. The model only reads; it decides nothing.

-
Her rules decide
Plain code applies her filing rules: statement, invoice and card-paid vendors each go their own way, and possible duplicates come to her first.

-
Entered on one click
She checks one table and clicks once. Each bill is renamed, filed and entered in QuickBooks, and every run can be undone.

What I built
One review table
Every PDF in the Invoices folder is read and shown on one page: new file name, vendor folder, date, amount, QuickBooks vendor and account, prefilled from 12 months of her own coding.
Her rules, in code
Statement vendors, invoice-by-invoice vendors and card-paid vendors each follow her rule. Anything that might already be in QuickBooks is shown to her instead of entered twice.
Straight into QuickBooks
Bills and card expenses go in through the QuickBooks API from our own read, so QuickBooks never re-reads a page. A bill that can't go in yet waits, then goes in with one click.
Looks after itself
Signed updates install when she closes the app, every run can be undone, and an error report reaches us the moment something goes wrong. When a vendor rule changes, the update keeps the old rules too.


“I think that's very simple and effective… I don't have to enter [them].”
Mary Tangney, Bookkeeper, Wichita Family Vision
Engineering
The model only extracts fields. Matching, accounts, duplicate checks and filing are plain code from her rules, so the same bill always lands the same way.
- How it fits together
- A one-file Windows app. Claude on Bedrock only reads each PDF; deterministic code does the rest, through to the QuickBooks API.
- Tested
- 40 offline QuickBooks cases and 25 browser checks.
- Cost to run
- About 1 cent an invoice.
- Runs on
- Her PC and the clinic's AWS account.
- Claude on AWS Bedrock
- Python
- QuickBooks Online API
- PyMuPDF
- CloudWatch
My role. I built the app and its QuickBooks integration.