Case study — Professional services

A CPA firm cut tax-season intake from
3 weeks to 4 days.

A mid-size accounting practice was drowning in manual document entry every spring. We shipped an AI document agent in three weeks. First full tax season on the new system: ~320 hours of partner and associate time reclaimed.

ClientMid-size CPA firm · ~25 staff
SectorAccounting & tax
Timeline3 weeks, 2-person pod
StackClaude, Python, practice-management API
3 wks → 4 days
Tax-season intake time
~320 hrs
Partner / associate time reclaimed
~12% → <2%
First-pass data-entry error rate
+11 clients
Onboarded without adding headcount
01 — The problem

Three weeks of keying in documents, every spring.

The firm ran lean — ~25 people, mostly senior — and took pride in a boutique, high-touch practice. But every January through April, two associates were essentially full-time data-entry clerks: pulling W-2s, 1099s, brokerage statements and receipts out of client portals and emails, then keying line items into the firm's practice-management software by hand.

First-pass error rates were around 12%. Partners spent evenings unwinding typos, missed forms, and misrouted numbers. Deadlines slipped. Two good associates were burning out. The firm was looking at hiring a third — at ~$80k fully loaded — to solve what was fundamentally a software problem.

02 — What we built

An AI intake agent that reads, reconciles, and writes back.

A single pod (engineer + workflow designer) ran the engagement over three weeks. We shadowed the intake team on Monday, shipped a working prototype by Friday, and moved three real client files through it by the end of week two. Production cutover was week three.

  • Document agent. Claude-based extractor that ingests a client folder (portal upload or email) and parses W-2s, 1099-NEC / DIV / INT, brokerage 1099 composites, K-1s, and receipts. Structured output, confidence-scored, with a human-review queue for anything below threshold.
  • Anomaly reasoning. The agent compares line items against the client's prior-year return and flags material year-over-year deltas, missing expected documents ("no 1099-DIV from Schwab this year — confirm with client"), and common errors like duplicate 1099s.
  • Write-back to practice management. Clean, reviewed data lands directly in the firm's existing platform via its API. No dashboards to babysit — the associates' inbox is now a review queue, not a data-entry queue.
03 — The outcome

Same team, twice the capacity.

First full tax season on the new system: intake time dropped from three weeks of near-full-time work to four days. First-pass error rate fell from ~12% to under 2%. The firm took on 11 new clients without hiring — avoiding that third-associate spend entirely.

The associates who'd been doing data entry are now running client review calls and advisory work. The hire they were going to make became a hire they chose not to make. Software paid for itself inside the first season.

We thought we had a staffing problem. We had a software problem. Azul shipped in three weeks what a year of Wix forms and spreadsheets couldn't fix.

Managing Partner Mid-size CPA firm · engagement anonymized at client's request
Sound like your ops?

Let's find the three weeks hiding in your calendar.

20 minutes, no deck. You describe the workflow eating your team's time, we tell you honestly whether software can fix it — and what it would take.