NOW LET US – AI RAG SaaS Studio TP.HCM
NOW LET US
Digital Product Studio
Back to news
DEV-TOOLS...3 min read

Improving personal tax filing with Claude CLI and Obsidian

Share
NOW LET US Article – Improving personal tax filing with Claude CLI and Obsidian

A detailed guide on leveraging Claude Code CLI and Obsidian to automate and audit personal tax filings using Python-based data extraction and AI analysis.

Improving personal tax filing with Claude CLI and Obsidian

Recently, I found myself in the same part of the year when I do my wife’s and my personal taxes here in Canada. Personal income tax filing deadline for most Canadians is usually end of April each year.

It turns out this was also the first year where I had amazing AI tools at my disposal to help me with personal income taxes.

Apart from work, I have been using both ChatGPT and Claude for my personal life as well, which has included varied prompts and workflows such as looking up what engine oil my car takes, or using Notion MCP to create a shopping list for building a deck in my backyard. In short, most of my personal usage has been rather rudimentary compared to my extensive and detailed workflow at work.

I would not call my personal tax situation a complex one, however, given that I manage it for both me and my wife, I would want to optimize it as much as possible.

While collecting all our tax related documents, forms and emails, I came up with a workflow based on Claude Code CLI and Obsidian that I found very useful in trying to get a detailed picture of my tax situation — backed by strong personal context and deterministic calculations using Python.

I set up a working directory for my tax related documents and opened that as a vault in Obsidian.

If you are unfamiliar with Obsidian, you are missing out a lot on what markdown can do for you especially for the agentic world so I highly recommend you familiarize yourself with this amazing tool today.

Obsidian also has excellent support for viewing PDFs which I found very useful for reviewing my tax forms without leaving the app.

Folder structure

Here is a sample structure that I came up with:

obsidian_vault
├── main.py
├── pyproject.toml
├── README.md
├── taxation
│ ├── Currency Rates
│ │ ├── 2024.md
│ │ ├── 2025.md
│ │ └── 2026.md
│ ├── Pasted image 1.png
│ ├── Pasted image 2.png
│ ├── PersonalTax
│ │ └── 2026
│ │ ├── Wife
│ │ │ ├── CLAUDE.md
│ │ │ ├── Etrade Misc Docs
│ │ │ ├── FILED.md
│ │ │ ├── Forms
│ │ │ │ └── T4_2025.pdf
│ │ │ ├── Payroll
│ │ │ │ ├── PayrollEarningStatementReport_JanFeb_2025.pdf
│ │ │ │ └── PayrollEarningStatementReport_MarchDec_2025.pdf
│ │ │ ├── PLAN.md
│ │ └── Rafay
│ │ ├── ESPP.md
│ │ ├── Charles Schwab Docs
│ │ ├── CLAUDE.md
│ │ ├── Contribution Receipts
│ │ │ └── rsp-contribution-receipt.pdf
│ │ ├── FILED.md
│ │ ├── Forms
│ │ │ └── T4_2025.pdf
│ │ ├── PLAN.md
│ └── References
│ └── Definitions for capital gains Canada.md
├── uv.lock
└── Welcome.md

As you might have noticed, I also set up a Python virtual env with uv and installed the following libs to help Claude extract relevant information from PDFs along with a custom bash function for quick invocations by Claude.

Python libraries and tools

Libs

markitdown[all] - an open source library from Microsoft to extract information in markdown format, excellent for LLMS since they work well with those. ocrmypdf - for OCR support on scanned PDFs.

Bash function

pdf2md() {
local input="$1"
local venv_markitdown="/Users/rafaypersonal/Documents/obsidian_vault/.venv/bin/markitdown"
local venv_ocrmypdf="/Users/rafaypersonal/Documents/obsidian_vault/.venv/bin/ocrmypdf"
# Try direct conversion first
if "$venv_markitdown" "$input" 2>/dev/null; then
return 0
fi
# Fall back to OCR for scanned PDFs
local output="${input%.pdf}_ocr.pdf"
"$venv_ocrmypdf" --skip-text "$input" "$output" && "$venv_markitdown" "$output"
}

Providing context to Claude Code CLI

I used the CLAUDE.md file to seed the financial context such as where to find currency rates for ACB calculations, tax forms, RRSP receipts, etc. and asked Claude to update the PLAN.md for what I need to do next along with checklists to mark each step as completed once done. I cross checked all the ACB calculations and corrections that it made against an online ACB calculator to make sure it did not hallucinate on my tax filing.

With this setup, Claude was actually able to find issues with my wife’s last year’s ACB calculations where we mistakenly used the discounted purchase price instead of the FMV to report capital gains.

I found Claude Code CLI much more convenient and flexible compared to the Claude desktop app. Combined with Obsidian, managing personal life stuff with Claude Code CLI becomes a breeze once you get the hang of it. Overall, I was pretty happy with how this turned out. It did not replace my own judgement — I still reviewed every number — but it made the whole process a lot more organized and less stressful.

© 2026 Now Let Us. All rights reserved.

Source: Hacker News

Advertisement
Ad slot ready: 5887729102

More in this category

EXPLORE TOPICS

Discover All Categories

Deep dive into the specific technology sectors that matter most to you.