I own a tax firm, and I build custom tax and workflow tools for us. I also teach two classes a term at Cal Poly, which is how I came to run an experiment with four students last spring. You can read about it in this article, which ended with an honest footnote: The last step of getting the data into Intuit ProConnect needed a copy-paste handoff, and relying on AI to enter the data was painfully slow. A single W-2 took 10 minutes. We got it down to 4 minutes, which was better, but still far too slow.
Here’s how we broke through that wall.
The Question We Flipped
The obvious move was to point more AI at the problem. Let it click through ProConnect, read the screen, type the number, repeat. We expected it to learn and get smarter, the way a person would. It didn’t. It was slow, it cost real money per return and it occasionally got creative (i.e., put data in the wrong fields).
So, we asked a different question: Where can we take out AI entirely?
Entering a number into a box is not a judgment call. Wages go in the wages box. Every time. Once we saw it that way, the answer was plain code, and plain code is fast, cheap and does the same thing every run.
What it Does Now
We built a Chrome extension called the “Tax Importer” that works inside ProConnect. You give it a structured file of the return (the data, as a JSON file), and it types the whole thing in. Each screen is mapped, so it knows exactly which value goes in which box. So far, it handles Form 1040 returns for tax year 2025. After each entry, it checks the field and turns it green once what’s on the screen matches what was supposed to go in.
Switching from AI to plain code took the W-2 data entry time from 4 minutes (10 at the start) down to 3 seconds. A typical full return takes under 90 seconds to get entered.
The Check That Paid for Itself
The extension also works in reverse.
It reads a return that’s already in ProConnect, compares those fields to the data file and flags every difference. Your associate can run a quick self-review before sending a return up the chain.
A new client came to my firm needing an amended return for a complex filing, so we had to re-enter everything. I hired two freelancers on Upwork and gave them the return as filed as an answer key. After a week-long turnaround and over $1,000 in total fees, neither got it 100 percent right, and my own review meant sending notes back and waiting another week.
So, I ran the same job through the Tax Importer extension. It entered the full return in about two and a half minutes, then flagged the inputs that didn’t match what the contractors had entered. There were transcription errors, the kind anyone makes after hours of moving numbers from one screen to another. On one side: 14.5 hours of contractor work, two and a half weeks of back-and-forth and over $1,000 in fees. On the other, two and a half minutes, no review points.
The contractors weren’t the problem. Typing numbers was never where their value was. With AI today, it should never have needed a person.
Where AI Still Lives, and How We Decide
AI didn’t disappear. It moved. It’s exceptional at extracting data, so we use it to read PDFs and turn them into structured data files, with a person confirming every low-confidence extraction before anything is entered. It also reasons through the review steps of the workpapers, and we used Claude’s CoWork for Chrome as an AI browsing agent to build the map of ProConnect that drives the extension. I’m building this workflow into our practice management software (in public beta) so it can drive the import directly.
Before AI, I used a framework called ODAD (Optimize, Delete, Automate, Delegate) to profile a process and figure out how to make it better. That still applies but Automate now has a branch inside it. AI lets us move far more of the human work into automation, and that’s the unlock.
Thinking about AI’s cost the same way you’d think about a person’s time is the new branch. Judgment belongs to AI. “If this, then that” belongs to plain code. When a task repeats, the best use of AI is often to build the plain code, then step aside. AI wrote the code for the importer, the code does the entry and we don’t pay for AI’s token consumption on every return. As before in ODAD, delegate only what’s left to a human. That way, by not wasting their time, they’re not wasting my money.
Two People I Want to Thank
Merrick Wiessner and Kaya Paz stayed with this after the term ended. Their summer work brought the real wall into view: We were working around AI’s limits when we should have been designing around them.
If You Can’t Build It, Hire It
I said this last time, too. If you can’t dedicate 20 percent of your own time, or 20 percent of your firm’s time, to building the tools your team needs, hire people who can. I do this myself: I still review the returns, and I make the time to build what makes that review faster. Tax Importer is private for now, but Power Tools for ProConnect, a free extension I built on the Chrome Web Store, adds dark mode, conditional formatting, edit history, and more. If something in your firm came to mind while reading this, I'd love to hear it.
Scott Hoppe, CPA, DBA is founder of Azuma, which provides business strategy and tax advisor services, and a lecturer at Cal Poly San Luis Obispo.


