(CFO TRACK 2)

Inspiration

External audits sample transactions and demand proof. Finance teams spend weeks finding invoices, contracts, and bank rows after the fact. We wanted that test run in advance.

What it does

An AI Auditor samples risky transactions from the books. An AI Accountant searches invoices, contracts, the bank feed, Dodo Payments, and the ledger, then produces cited proof or admits a gap. A human controller rules on each exchange. Output: an audit binder, a coverage score, and a ranked fix list. Rulings carry forward, so each run resolves more on its own.

How we built it

Next.js 15, Postgres with Drizzle, GLM-4.7-Flash via Tensormux, Neatlogs tracing, Vercel. Deterministic first, LLM second: search and matching are plain code; the model only reads documents and writes explanations. Every claim cites a document and row ID.

Challenges we ran into

Model latency from hidden reasoning tokens, keeping every sentence grounded in tool output, and making memory hermetic across runs.

Accomplishments that we're proud of

390 deterministic checks against 10 planted issues. Zero uncited assertions. A pass 2 that remembers pass 1's rulings.

What we learned

Human review is the product. The agent does the paperwork; the controller keeps the pen.

What's next for Crossfire

Custom book uploads, more evidence sources, and exporting the binder straight to the auditors.

Built With

  • next.js
Share this project:

Updates

Submission history