Freelancer Tax Filing Bot
1099 tax software that keeps the books and e-files Schedule C from Stripe and Plaid — year-round ledger, licensed transmit, not just an estimate.
Tax season turns a working freelancer into an unpaid data-entry clerk. The designer who lived in Stripe all year now has forty-seven payouts, a Venmo side hustle, Cash App reimbursements that might be income, a PayPal 1099-K they did not expect, and Drive receipts named `scan004`. TurboTax wants a spreadsheet. Their “books” are a Notes app. Their CPA wants $1,200 and a shoebox. They spend a weekend reconstructing a year they already lived. The job is split across tools that refuse to finish it. DIY filing giants are April products: import, click, pay per return, leave. Cloud books keep a ledger and stop before e-file. Estimators spit a quarterly number and wish you luck at the IRS portal. This site already has both narrower wedges — Quarterly Tax Estimator for Freelancers owns “what do I pay June 15,” and AI Bookkeeping for Freelancers owns a clean P and L. Neither transmits a return.
Built for Freelancers, Side Hustlers, Solo Founders.
Suggested stack: Next.js 14 (App Router) + Vercel, Plaid + Stripe + PayPal APIs, Supabase (Postgres + Auth), Deterministic form engine, Claude, Licensed e-file transmitter. Weekend scope: about 10 hours.
The Problem
Tax season turns a working freelancer into an unpaid data-entry clerk. The designer who lived in Stripe all year now has forty-seven payouts, a Venmo side hustle, Cash App…
The Solution
MyTaxGuy is tax-prep software for 1099 sole props that keeps the books and assembles the return from those books, then transmits through a licensed e-file partner. It is not a…
Market Research
Global tax management software is $25.09B in 2025, headed to $59.85B by 2034 at a 10.14% CAGR (Precedence Research). That is the broad TAM. You are the freelancer slice.
Competitive Landscape
Intuit TurboTax — Category leader. Free for simple W-2-shaped returns; Self-Employed / Full Service runs to about $120+ per return including state, plus support upsells. Strength…
Business Model
Free ($0) — One connected source, 90 days of categorization, read-only P and L, no e-file. Lead magnet for Reddit and YouTube.
Recommended Tech Stack
Next.js 14 (App Router) + Vercel — Onboarding, review queue, return preview. Server Actions for categorization jobs; never ship bank tokens to the browser.
AI Prompts to Build This
Copy these build prompts into Claude, Cursor, or your AI coding tool. Create a free account to unlock the full research behind them.
1. Project Setup
Build the weekend MVP of "MyTaxGuy": a freelancer imports bank and payout exports, the app keeps a categorized ledger, and a Schedule C worksheet is assembled from it for the person to review. It is bookkeeping and a draft, not tax advice and not a filed return. Stack: Next.js (App Router), TypeScript, Tailwind, Supabase (Postgres, Row Level Security, Auth with email magic link), the Anthropic API to suggest a category for a vendor. All form math is plain code. Deploy on Vercel. Tables (Row Level Security on, each user reads only their own rows): - imports(id, user_id, filename, row_count, created_at) - transactions(id, user_id, import_id, posted_at, description, amount_cents, category, category_source, review_state) category_source is rule, model or user; review_state is posted or needs_user - category_rules(id, user_id, pattern, category) - schedule_c_drafts(id, user_id, tax_year, lines jsonb, reviewed_at, created_at) Screens: /login, /import, /books (the transaction queue), /review/[taxYear] (each line with its source transactions). Env vars (names only): NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, SUPABASE_SERVICE_ROLE_KEY (server only), ANTHROPIC_API_KEY. Do not build: billing, e-filing or any transmit to a tax authority, Plaid, Stripe or PayPal connections, a Social Security number or other identity fields, estimated tax payments, K-1s, employees or rentals. Done when: npm run dev starts, you can sign in, and the four tables exist with Row Level Security on.
2. Core Feature
Build the one feature that proves MyTaxGuy: a ledger that turns into a Schedule C worksheet where every line points at real transactions. 1. Import a CSV with columns date, description, amount (negative is spending). Amounts are stored in cents. Ignore any account number column. Skip a row already imported (same date, description and amount). 2. Categorize: a matching category_rules pattern wins first. Otherwise send up to 50 transactions to the Anthropic API with the fixed category set (income, advertising, software, contractor, meals, travel, home_office, supplies, owner_draw, ignore) and a strict JSON schema { items: [{ id, category, confidence }] }. Apply a confidence of 0.85 or more; set the rest to needs_user. When the user corrects a category, save a rule from the vendor text so it applies next time. 3. Show a monthly profit and loss from posted transactions. Owner draws are never expenses. Meals are marked for the user to confirm; never deduct a percentage on their behalf. 4. Write a pure function that maps category totals to Schedule C lines and net profit, with a table of category to line that you check against the current year's form instructions. Keep the self-employment tax rate and wage base in one constants file labeled with the tax year. Return JSON with the supporting transaction ids for each line, and unit test it. 5. /review shows each line with its amount, an expander listing its transactions and a flag on anything uncertain. The model may write one plain sentence under a flagged line. If its numbers disagree with the function, show the function's. 6. A "I reviewed these numbers" box must be checked to mark the draft reviewed. Rules: say on every review screen that this is a worksheet, not tax advice and not a filed return. Never send a transaction to any outside service other than the classifier. Empty state: with no imports, show the CSV columns and a sample file. Done when: a 100-row sample is categorized, a correction creates a rule that applies to the next import, the draft's line totals equal the sum of their transactions (the unit test passes), and the reviewed box is required.3. Landing Page
Build a one-page landing site for MyTaxGuy, a bookkeeping tool for freelancers that prepares a Schedule C worksheet. Hero: "Your books, ready for tax time." Sub: "Import your bank and payout exports. We keep the ledger and assemble a Schedule C worksheet from it. You review every line. Not a CPA. Not a chatbot guessing your income." One button: Join the waitlist. Sections: a sample worksheet line with its source transactions, one panicked April versus a ledger that stayed current, how it works in four steps (import, categorize, review, hand to your preparer), and an FAQ on what it does not do (no filing yet, no K-1s, employees or rentals), data privacy and why a person still reviews the return. Waitlist: store the email in a waitlist table in Supabase. No other service. Style: Geist, an off-white background, near-black type, one green accent. Done when: the page renders on a phone and a submitted email appears in the waitlist table.
4. Branding Package
Use a design or image tool for this one. A coding agent cannot draw a logo. Brand for MyTaxGuy: a wordmark and an icon that suggest a ledger line with a check at its end. Colors: off-white, near-black and one green. Type: Geist, with tabular numbers for amounts. Deliverables: wordmark, icon, a worksheet line style that shows an amount and a "see transactions" link, and one launch graphic. Three voice rules: never claim to be a CPA, always show the source transactions, always say you review it. Done when: each deliverable is saved in one folder and the worksheet line is readable in black and white.