Inspiration

Invoice reconciliation is one of the most manual, error-prone tasks in the Office of the CFO. Accounts payable teams have to check every invoice against its purchase order and receipt by hand, catching duplicates, missing paperwork, and amount mismatches before money goes out the door. We wanted to see if an agent pipeline could do this reliably and explain its reasoning like a human reviewer would.

What it does

Invoice Recon is a 4-step autonomous agent pipeline that reconciles invoices end-to-end:

  1. Ingestion — parses raw invoice, purchase order, and receipt CSVs into a structured, validated format, flagging anything with missing critical data.
  2. Matching — performs 3-way matching between each invoice, its purchase order, and its receipt, computing amount variance.
  3. Exceptions — flags issues like duplicate invoices, amount mismatches, or missing purchase orders, or auto-approves clean matches.
  4. Report — writes a plain-English summary and a concrete recommended action for each invoice (e.g. "Void duplicate invoice, keep the original" or "Hold payment until data is resolved").

Each stage only touches its own section of a shared schema, so the pipeline stays auditable — you can see exactly what each agent decided and why.

How we built it

We used AO (Agent Orchestrator) with opencode as the coding agent, giving each of the 4 agents a strict task spec that limited its scope to one section of a shared JSON schema. This kept the agents from stepping on each other's work and made the output easy to verify at every stage.

Challenges we ran into

As first-time hackathon participants, we hit real friction with unfamiliar tooling — git branches, PR workflows, and AO session management all took longer to learn than expected, including one agent that overstepped its scope and wrote placeholder data into fields it wasn't supposed to touch. We caught it by manually inspecting the JSON output, tightened the task spec, and re-ran it correctly.

Accomplishments we're proud of

Every invoice in our sample data — including a deliberately duplicated invoice, one missing a PO number, and one with a genuine amount mismatch — was correctly caught and given a sensible, human-readable recommendation, not just a generic flag.

What we learned

How to scope autonomous agents tightly using a shared schema so multiple agents can collaborate on one pipeline without conflicting, and how much manual verification still matters even when agents report success.

What's next for Invoice Recon

Adding quantity-based matching (not just amount), a small automated test suite validating the schema across all invoices, and a real dashboard view instead of a static HTML preview.

Built With

Share this project:

Updates

Submission history