Aidan HoltAidan Holt

Free skills, prompts and PDF. No signup.

Build your own AI bookkeeper

The exact setup from my video, in 5 steps: statements in, sort the write-offs, a Notion Money HQ, a phone receipt bot, and a monthly close. For self-employed Canadians, Ontario first.

Estimates and organizing, not tax advice. Your accountant still files.

What you need

  • Claude Code runs in your terminal and does the work (needs a paid Claude plan). Any coding agent that can run Python will do.
  • Your bank and card statements CSV downloads from January to now. The agent can download them in your own logged-in Chrome, or you do it by hand.
  • Notion (free plan works) where everything lands: the Money HQ. Optional, but it is what makes it easy to read.
  • Google Calendar (optional) read-only, so the agent can say what you were doing the day of each charge.
  • A phone AI bot (optional) for step 4. I used Grok Bot. Anything that can read a photo and write to Notion and Google Drive works.

The 5 steps

Paste the prompts into Claude Code in order. Swap anything in [brackets] for your own.

1

Statements in

Every dollar in one place first. Every bank and card, January to now. The agent only downloads: you log in yourself, and it never touches transfer, pay or settings buttons.

Make the plan first
First, for my taxes, what's the plan? I need to find everything I spent this year, download all my statements, and get all my receipts organized. Give me the plan step by step until we're done.
Download statements
Go to Chrome, go into my [BANK]. I'm logged in. Download all the CSVs from January [YEAR] to now. Only download. Don't do anything else. Then do the same for [NEXT BANK].
Amazon (optional)
/amazon-orders for [YEAR]. Read only. Every order, the HST on each, and which card it was charged to. Then go through them with me one at a time so I can tell you business or personal.

No Chrome automation? Download the CSVs yourself and drop them in the inbox folder. Same result.

2

Sort it, find the write-offs

The engine puts every charge in one ledger, counts each dollar once (card payments and transfers between your own accounts are not spending), and tags business charges with a CRA T2125 line. Then it asks you only about the ones it is not sure of.

Sort everything
/bookkeeper books. Then show me the charges you're not sure about, biggest first, 10 at a time, and I'll tell you business or personal and why.
The receipt trick
/receipt-match calendar. Match my card charges to my Google Calendar so every business expense has a reason. For example, parking on days I had [CLIENT MEETINGS / JOB SITES]. Show me the ones you can't match and I'll explain them.
Subscriptions (optional)
/subscription-audit. A subscription is a fixed monthly or yearly plan, not credit top-ups. Tell me which ones to cancel, one by one, which email each is on, and how to cancel it. I'll do the clicking.

Every business charge needs a reason: who and why. No reason means personal. The agent never makes one up.

3

Build the Notion Money HQ

One private Notion page with four tables: Transactions, Income, Subscriptions and Mileage. Each charge links to its receipt, its card and its reason, so if the CRA ever asks, the trail is already there.

Build it
Build my Notion Money HQ from bookkeeper/notion/money-hq.md, then put all the transactions in Notion. Keep the page private.
Receipt photos
/receipt-match photos. My receipt photos are in [FOLDER]. Match each one to its charge, file it, and put the picture on the Notion row.

4

Add the phone receipt bot

Snap a receipt and it logs itself: it reads the photo, saves it to Google Drive, finds the matching bank charge in Notion, and asks you who and why. It also keeps your car log when you text it the odometer.

Set up the bot
/phone-receipt-bot. Fill in the bot prompt for me and copy it to my clipboard.

Paste the prompt into your phone bot and send it one real receipt to test. In my test it read a Canadian receipt as USD. The fix is to tell it again, then ask Claude Code to put the fix in the prompt so it sticks.

5

Close the month

First weekend of every month: new statements in, receipts linked, one short table of questions for you, Notion updated, and how much to move to your tax savings account. The goal is about 10 minutes of your time.

Every month
/money-close
When it stops early (the real one I used)
I don't want to be 95% done. I want 100% done with what we can do today. What's left, and what do you need from me?

The set-aside number only appears once you put a percentage from your accountant (or last year's return) in your tax profile. It never guesses your tax rate.

Skip the build. Use my skills.

The whole system as Claude Code skills, stripped of my personal details. Paste this in the Terminal to install them and run the built-in tests:

Install the skills
curl -fsSL https://aidanholt.ca/guides/ai-bookkeeper-pack.zip -o /tmp/ai-bookkeeper.zip && unzip -oq /tmp/ai-bookkeeper.zip -d /tmp/ai-bookkeeper && mkdir -p ~/.claude/skills && rsync -a --exclude README.md --exclude SETUP.md /tmp/ai-bookkeeper/AI-Bookkeeper/ ~/.claude/skills/ && python3 ~/.claude/skills/bookkeeper/scripts/tests/run_tests.py | tail -1

Then start Claude Code and paste:

Set it up
/bookkeeper setup. I'm self-employed in [PROVINCE]. My business is [WHAT YOU DO]. I bank with [BANKS AND CARDS]. Ask me what you need one question at a time.

Using ChatGPT or the Claude app instead? Paste this with your statements:

Any AI
You are my bookkeeper. I'm self-employed in [PROVINCE]. I'll paste my bank and card statements (CSV). Put every transaction in one table, count each dollar once (card payments and transfers between my own accounts are not spending), and mark each charge business or personal with a CRA T2125 line. Ask me who and why for anything that could be business; never invent a reason. Then give me totals by line and by spending category. Tell me which rules you used and link the CRA page for each. These are estimates, not tax advice.

Can't open a zip? Get every skill in one text file.

What is in the pack

/bookkeeperthe engine: statements into one ledger, sorting rules, CRA rules sheet, Notion layout, tests
/bank-statementsdownloads statements in your logged-in Chrome, download only
/receipt-matchcalendar reasons for charges, receipt photos filed and attached
/money-closethe monthly routine, in order
/amazon-ordersAmazon.ca orders, HST and card per order (optional)
/phone-receipt-botthe phone bot prompt, filled in for you (optional)
/subscription-auditKeep / Downgrade / Cancel table, you click cancel (optional)
/budgetspending by category, how much you need to bring in (optional)
/mileage-logthe car logbook by text or dashboard photo (optional)

The CRA rules it follows

Checked against canada.ca on October 25, 2026. Rules change, so open the link before you rely on one.

  • Meals and entertainment: claim at most 50%, and write down who and why. CRA, line 8523
  • Car logbook: date, destination, purpose and km for each business trip, plus the odometer at the start and end of the year. CRA, Motor vehicle records
  • Home office: only if it is your principal place of business, or used only for business and regularly to meet clients. CRA, Business-use-of-home
  • Parking tickets and other fines are not deductible, even on a business trip. CRA Folio S4-F2-C1
  • Keep records and receipts for six years from the end of the tax year they relate to. CRA, Keeping records
  • Self-employed: file by June 15, but any balance owing is due April 30. CRA, Due dates

The honest part

  • It sorts, matches and estimates. It does not file your return or calculate your tax bill. Your accountant still reviews it.
  • The AI makes mistakes. Check the Needs review list every month.
  • Bank websites change. If a download breaks, grab that CSV by hand.
  • A car log rebuilt from your calendar is an estimate, not a logbook. Start a real one today.
  • Built for 2026 and Ontario (13% HST). Other provinces change one setting. Quebec needs a Quebec accountant to adapt it.

Questions

Is this tax advice?

No. It organizes your records and gives estimates. Every rule it uses links to a CRA page, and your accountant should review your return before you file.

Do I have to give the AI my bank password?

No, and you shouldn't. You log in to your bank yourself in your own browser. The agent only clicks download, and the skills list the buttons it must never press. It never stores passwords, your SIN or full card numbers.

Does it work outside Ontario?

Yes for the sorting and the T2125 lines, which are federal. Set your province's sales tax rate in the tax profile (check the current rate on canada.ca). Quebec has its own return and QST, so get a Quebec accountant to adjust it.

Do I need Notion?

No. The engine writes plain CSV files you can open in any spreadsheet. Notion just makes it easy to read and lets the phone bot add receipts.

What if I'm not registered for HST?

Set hst_registered to false in the tax profile. The HST you pay then stays in the expense instead of being estimated as an input tax credit. You generally have to register once your taxable revenue goes over $30,000 in a quarter or over four quarters.

How is a write-off decided?

You decide, the agent asks. A business charge needs a reason (who and why). Mixed-use things like a phone or a car get a business percentage from real records. Meals with clients are capped at 50%. Fines are never deductible.

What does it cost?

The skills, prompts and PDF are free. You need a paid Claude plan for Claude Code. Notion has a free plan. The phone bot is optional.

Stay in touch (optional)

A short email when I share a new free skill. No spam.

Built and tested on a Mac with Claude Code in October 2026. CRA rules checked against canada.ca on October 25, 2026. General education, not tax, legal or financial advice: talk to an accountant about your own return. Not affiliated with the Canada Revenue Agency, Anthropic, Notion, Google, Amazon, Grok, Wealthsimple, Tangerine or MBNA.