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
Accountant at a monitor reading a K-1 form while an AI document agent classifies tax documents in real time
CPA firm · tax-season intake
One AI document agent, reading every K-1, W-2, and 1099 as it hits the inbox.
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.

A few questions, no deck. You describe the workflow eating your team's time, and you get a free roadmap of where AI is most likely to pay off — yours to keep.