Automation Lab / Close Desk

Supplier invoices to the ledger, with fraud checks.

Pick an invoice and run it on the live system. n8n receives it, Claude reads it, plain code checks it against purchase orders, delivery notes and the vendor's bank details, and the result is posted, sent for approval, or held.

50/50 correct decisions on the labelled test set
10/10 planted fraud and mismatch cases caught
about $0.0005 per invoice
Waking the servers. They run on free hosting and sleep when nobody is using them, so the first run can take up to a minute.

Sample invoices

  • Loading…
Pick an invoice on the left
Everything is fictional. Each visitor gets 5 runs a day.

How it works

  1. Receive. An n8n webhook takes the invoice, opens a run in the log and checks the visitor's daily limit and the monthly budget.
  2. Read. PDFs with a text layer go to Claude as text. Scans and photos go through vision. Claude answers through a fixed tool schema with a confidence score per field.
  3. Check. Python rules, no model involved: bank account on file, duplicates (even when the number is written differently), arithmetic, purchase order, price against the PO, quantity against delivery notes, and low confidence.
  4. Decide and record. Fraud signals are held and need a written reason to release. Other problems go to an approver. Clean invoices post double-entry lines to the ledger, all in one transaction with an audit trail.

Architecture

Demo page / email / Slack | v n8n (webhook, routing, approvals, error alerts) | v Lab API (FastAPI: extraction, rules, run log, limits) | | v v Claude Postgres (Neon)

Free tiers end to end: Render for n8n and the API, Neon for Postgres. Model spend is capped at $10 a month and demos pause automatically at 90% of it.