Inspiration Accounting firms burn 15-25 hours per client per month on bank reconciliation, matching transactions, chasing receipts, investigating discrepancies. It's manual, repetitive, and expensive. For a 50-client firm, that's 1,000+ hours monthly on work that follows predictable patterns. We saw an opportunity: let AI handle the 80% that's routine, and surface only the 20% that needs human judgment. Target outcome: Reduce reconciliation time from 20 hours to 4 hours per client. What We Built An autonomous AI agent that:

Connects to QuickBooks, bank feeds (Plaid), and document storage (Google Drive) Matches bank transactions to accounting entries automatically Classifies new transactions with confidence scores Investigates discrepancies using chain-of-thought reasoning Flags only low-confidence items for human review

The user simply types: "Reconcile January for Client XYZ"—and the agent handles the rest. Tech Stack LayerChoiceFrontendNext.js, TypeScriptBackendNestJS, PostgreSQLAI AgentLangGraph.js + Claude Sonnet 4.5IntegrationsQuickBooks, Plaid, Google Drive Key Challenges

Confidence calibration — Knowing when AI should act vs. escalate. We tuned thresholds so 80% of transactions auto-resolve while catching genuine exceptions. Fuzzy document matching — Receipts don't match transactions exactly. Built tolerance for date drift (±3 days), amount variance (±$1), and vendor name similarity (≥85%). Multi-provider OAuth — Managing tokens across three APIs with different expiration windows required robust encryption and proactive refresh logic.

Metrics We're Targeting MetricTargetAuto-resolution rate80%Classification accuracy95%Time saved per client75-80%

Built for accountants who'd rather advise clients than chase receipts.

Built With

  • next.js
  • plaid
  • postgresqlai-agentlanggraph.js-+-claude-sonnet-4.5integrationsquickbooks
  • typescriptbackendnestjs
Share this project:

Updates

Submission history