Skip to main content

AutoAccru case study: a fractional CTO for a bookkeeping automation startup

A Northshore Bank business chequing statement for February 2025 on the left, and on the right the transactions read from it, each with a date, description, withdrawal, deposit and balance and a tick box, above Add Transaction and Save buttons.The Transactions table for Harbourline Design Co.: credit card charges flagged Low confidence, each with a suggested entity, a category such as Entertainment, Motor Vehicle, Travel or Subscriptions, and a tax code. Some categories read Uncategorized in red.
On the laptop: a bank statement beside the transactions AutoAccru read from it. On the tablet: those transactions with a suggested category for each.

DevToDollars stepped in as AutoAccru's fractional CTO: a lean platform, three accounting integrations, and a team that ships fast.

  • 3

    accounting platforms: QuickBooks Desktop, QuickBooks Online and Xero

  • 4

    sources matched automatically, from receipts to bank statements

  • 1,000s

    of confidential financial rows handled

The screens are the AutoAccru app. Every client, bank, amount and name on them is dummy data.

On this page10 min read

At a glance

Client
AutoAccru, bookkeeping automation for accounting firms
CEO
Kevin Wu
Location
Toronto, Ontario
Stage
Pre revenue, with its first customers
Team
Two in house engineers, no senior technical leader
Engagement
Fractional CTO, with extra engineers added sprint by sprint
What DevToDollars did
Technical direction, architecture, AI benchmarking, two accounting integrations, a security assessment, team leadership
Accounting platforms
QuickBooks Desktop, QuickBooks Online, Xero
  • 3

    accounting integrations: QuickBooks Desktop, plus QuickBooks Online and Xero, built by DevToDollars

  • 4

    sources matched automatically: receipts, invoices, credit card statements and bank statements

  • 1,000s

    of confidential financial rows from client statements and documents

It was an amazing experience working with Amirali. He helped us to build a strong foundation for our application to be ready for scale. While helping us to stay up to date with the latest trends in AI and increasing speed, he also used his extensive software development knowledge to make sure the system is ready for scale.

Kevin Wu CEO, AutoAccru

The challenge AutoAccru had engineers who could build, and a business team that knew what to test. Nobody stood between the two.

AutoAccru automates bookkeeping for accounting firms. When DevToDollars met the company, it was pre revenue, with its first customers, two in house engineers and an architecture left by a previous CTO.

  • Two teams, little conversation

    The business team decided what to build and the engineers built it. Nobody checked a task's effort or running cost, or looked for a simpler version.

  • Built for later

    The previous CTO built for scale before the product had found its customers. The startup needed to ship and test many features quickly.

  • Platform calls with no owner

    Document reading, AI and the accounting integrations all ran on outside platforms. Nobody was choosing them with both the workload and the roadmap in mind.

The engineers also needed someone to turn business goals into technical priorities, day to day. And some sprints needed more hands than the team had.

The first weeks Before changing anything, DevToDollars mapped where the company stood. Then it fixed the one system that mattered most.

The map covered where AutoAccru was and where it wanted to go, in four parts.

  1. The infrastructure

    Everything already in place and running.

  2. The product

    What the engineers had already built.

  3. The vision

    Where the founders wanted the product to go.

  4. The requirements

    The business needs behind that vision, such as keeping years of financial history for every client.

From there, the team flagged the one issue that mattered most, given the tools AutoAccru already had, and changed that system first. The map also showed there were no success metrics. With no way to tell whether a change made the AI better or worse, the engineers were building and rebuilding in circles.

The solution A lean platform two engineers could ship on quickly. Built to hold up once the customers arrive.

DevToDollars led the work as AutoAccru's fractional CTO: a part time senior technical leader instead of a full time hire. The aim was a system lean enough to test many features cheaply, and sound enough to keep.

A lean architecture, so every feature could be tested cheaply

On the old DynamoDB setup, separate environments for testing and production made the cost add up. DevToDollars moved AutoAccru to Supabase and used its branching: every feature now gets its own low cost copy of the database to be tested in first.

Search client history by meaning

A vector database makes years of client history searchable by meaning. When a new transaction arrives, the system looks at how that client's similar transactions were handled, and categorizes it the same way.

Queues and rate limits

Customers upload months or years of documents at once. Queues now process them steadily in the background, and rate limits stop any one customer or outside service from bringing the system down.

Success metrics, so the AI stopped going in circles

Experiments found which financial verticals the AI's embeddings, the numeric fingerprints behind search by meaning, should be built around. Then a benchmark pipeline measured the two core AI features: categorization and entity assignment.

  1. Clean the history

    An accounting firm's past data, already categorized by its own bookkeepers, was processed and cleaned.

  2. Set the answers

    That history became the benchmark: the correct answer for every transaction.

  3. Score the system

    The same statements ran through AutoAccru, and its categories were compared with the benchmark.

For the first time, every change could be judged against a number instead of a feeling, and the team stopped going in circles.

A roadmap first, then QuickBooks Online and Xero

AutoAccru had one integration, QuickBooks Desktop, and wanted to reach firms that work in QuickBooks Online and Xero. The team did not know those platforms' data models, and its own system lacked some it would need.

DevToDollars mapped each platform against AutoAccru's system and wrote a roadmap: how to build each integration, what had to change, and how to shape the database so later integrations need no rebuild. Then it built both.

  1. Adding a client

    Pick the platform

    The firm chooses QuickBooks Desktop, Xero or QuickBooks Online. The cloud platforms connect through OAuth, a secure sign in that never shares a password.

    The Client Information form open over the All Clients list: company name, other business identifiers, province, industry and books due, with the Integration Type list open on QBD, XERO and QBO.
  2. Connecting

    Link the account

    The client's Xero organisation is linked, with the time of its last sync. QuickBooks Online works the same way.

    The Integration tab for Harbourline Design Co.: one integration, Xero, marked Connected, with the company name and the time it was last active.
  3. Setting up

    Bring in the chart of accounts

    Accounts, types and tax rates come in from Xero. Each account gets an AI written description of what belongs in it, which later guides categorization.

    The chart of accounts imported from Xero for Harbourline Design Co.: a client description at the top, then accounts such as Accounts Payable, Accounts Receivable, Advertising, Bank Fees and Bank Revaluations, each with its type, tax rate and a written description of what belongs in it.
  4. QuickBooks Desktop

    Upload a file instead

    QuickBooks Desktop has no cloud API, so its chart of accounts arrives as an exported .iif file.

    The Upload dialog for Kestrel Freight Ltd.: an area to drop a QuickBooks Desktop .iif file holding the chart of accounts, and a link explaining how to export one.
The Client Information form open over the All Clients list: company name, other business identifiers, province, industry and books due, with the Integration Type list open on QBD, XERO and QBO.
The Integration tab for Harbourline Design Co.: one integration, Xero, marked Connected, with the company name and the time it was last active.
The chart of accounts imported from Xero for Harbourline Design Co.: a client description at the top, then accounts such as Accounts Payable, Accounts Receivable, Advertising, Bank Fees and Bank Revaluations, each with its type, tax rate and a written description of what belongs in it.
The Upload dialog for Kestrel Freight Ltd.: an area to drop a QuickBooks Desktop .iif file holding the chart of accounts, and a link explaining how to export one.
The Integration tab for Northfield Dental Group: QuickBooks Online, shown as QBO, marked Connected, with the time it was last active.

QuickBooks Online, connected for another client.

The chart of accounts imported from QuickBooks Online for Northfield Dental Group: each account with its type, a GST tax code and a description of its purpose, the transactions it holds and its rules.

The QuickBooks Online chart of accounts, with its own tax codes.

Leading the team, so two engineers could move fast

DevToDollars brought in lean sprint planning: the business team set the tasks and their priority, and the engineers took them in that order. Not a corporate process, just enough to keep everyone coordinated.

No overlap

Each engineer owned a clear piece of the work. Nobody blocked anyone else, and nothing was built twice.

Retrospectives

A regular, open place to say what was working and what was not, before small frictions grew.

Postmortems

When something went wrong, the team worked out why and what to change, so the same mistake was not made twice.

When a sprint needed more hands, DevToDollars added engineers from its own team, so AutoAccru got capacity exactly when needed without hiring before it was ready.

Confidential financial data Bank statements, receipts and ledgers are as sensitive as data gets. So every layer was assessed, then locked down.

AutoAccru holds this data for accounting firms and their clients. DevToDollars ran a complete security assessment, then wrote a roadmap for adding each security measure.

Closed gateways

Document processing, categorization and the integrations run on AWS Lambda behind API gateways, which now answer only to the application itself.

A tenant on every row

Every firm and every client is a separate tenant, enforced on each row of the database, not only in the application code.

Row level security

A user can read only their own firm's and clients' rows, and nothing can be reached from outside the application.

Guards against prompt injection

Any uploaded document could hide instructions meant to manipulate the AI model. Text in a document is treated as data, never as instructions, so a malicious file cannot change how transactions are categorized.

The product Statements go in and a finished ledger comes out. In between, the app reads, categorizes and matches every transaction.

A bookkeeper uploads statements, checks what AutoAccru has read and sorted, and sends the ledger back to the firm's accounting platform.

  1. Upload

    Statements wait for review

    Each PDF is read automatically: the bank, account number, statement period and linked ledger account are detected.

    The Statements list for Harbourline Design Co.: three Northshore Bank statements, two business chequing and one Visa, each marked Requires review, with its account number, period, file name and upload date.
  2. Read

    Every row pulled from the page

    The statement sits beside its transactions. The bookkeeper can fix a row, add one or untick rows before submitting.

    A Northshore Bank business chequing statement for February 2025 on the left, and on the right the transactions read from it, each with a date, description, withdrawal, deposit and balance and a tick box, above Add Transaction and Save buttons.
  3. Categorize

    A category for every transaction

    Each one arrives with an entity, a ledger category and a tax code filled in. Rows the system is unsure about are flagged for review.

    The Transactions table for Harbourline Design Co.: credit card charges flagged Low confidence, each with a suggested entity, a category such as Entertainment, Motor Vehicle, Travel or Subscriptions, and a tax code. Some categories read Uncategorized in red.
  4. Assign

    The right vendor, customer or employee

    Raw bank descriptions are matched to a clean entity, and a new one can be created on the spot.

    The entity picker open on a transaction: Add Entity at the top, then the client's entities, from Air Canada and Anthropic to Bank Charge, CIBC and Credit Card Payment.
  5. Export

    A preview before anything is sent

    The export lists how many contacts, invoices, bills and transactions will be created in Xero.

    The Export Preview for Xero: 34 contacts, 0 sales invoices, 0 bills and 32 transactions or payments to be created, each with a Review link, under an Export to Xero button.
The Statements list for Harbourline Design Co.: three Northshore Bank statements, two business chequing and one Visa, each marked Requires review, with its account number, period, file name and upload date.
A Northshore Bank business chequing statement for February 2025 on the left, and on the right the transactions read from it, each with a date, description, withdrawal, deposit and balance and a tick box, above Add Transaction and Save buttons.
The Transactions table for Harbourline Design Co.: credit card charges flagged Low confidence, each with a suggested entity, a category such as Entertainment, Motor Vehicle, Travel or Subscriptions, and a tax code. Some categories read Uncategorized in red.
The entity picker open on a transaction: Add Entity at the top, then the client's entities, from Air Canada and Anthropic to Bank Charge, CIBC and Credit Card Payment.
The Export Preview for Xero: 34 contacts, 0 sales invoices, 0 bills and 32 transactions or payments to be created, each with a Review link, under an Export to Xero button.
A Visa business statement for February 2025 beside the rows read from it: transaction date, posting date, description and amount, for charges such as Air Canada, Cursor and Anthropic.

Credit cards too. The same flow for a credit card statement.

The category picker open on a transaction, listing the client's own accounts: Accounts Payable, Accounts Receivable, Advertising, Bank Fees, Business Chequing and more.

One click corrections. The picker lists the client's own chart of accounts.

The All Entities table: Air Canada with three different statement descriptions grouped under it as variations, then Anthropic, Aroma Espresso Bar, Bank Charge and more, each typed as Vendor or Other.

One entity, many spellings. Three Air Canada descriptions, collected under one vendor.

The Customers tab: ten customer entities such as Sunrise Freight, Kapila Transport and Road Champs Express, each with the descriptions it appears under on statements.

Customers, vendors, employees. The type decides how each entity is exported.

Transactions and payments being exported to Xero: dates, the operating account, descriptions, deposits, the category Sales and tax rates such as Tax on Sales (0%).

Bound for Xero. The exact rows, with category and tax rate, that will be written.

Transactions and payments being exported to QuickBooks Online: BMO and credit card rows with entities, categories such as Meals and entertainment and Other Ordinary Income, and HST or GST tax rates.

Bound for QuickBooks Online. The same preview.

The QuickBooks Desktop export dialog: start and end dates, the accounts to export, whether to include transactions exported before, the starting journal entry number, individual or grouped entries, and the file type to export.

QuickBooks Desktop. Pick dates, numbering and grouping, then download a file to import.

The Export Review tab for Northfield Dental Group: two transactions marked Failed, each because its date falls inside a closed accounting period in QuickBooks Online, beside a Retry Export button.

Export review. Rejected rows, here for a closed period, are listed with the reason and can be retried.

Click or tap any screen to see it larger.

Where it fits Engineers with nobody leading them is a common place for a startup to be. It is also a fixable one.

Before

  • Two sides apart: the business decided, the engineers built what they thought was needed
  • A heavy architecture: built for scale before the customers came
  • No metrics: every change to the AI judged by feel

After

  • Lean sprints: business priorities, worked in order
  • A lean platform: a low cost test branch for every feature
  • A benchmark: every change to the AI judged against a number

AutoAccru had the profile a fractional CTO suits best: first customers, engineers of its own, and a previous CTO whose architecture was too heavy for its stage. If that sounds like your company, CTO consulting may fit better than another full time hire. In Toronto, the DevToDollars team works in person, not only on calls.

Interested in chatting with us?

Get a free assessment of your business and an estimate of your project scope.