All Startup Ideas

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. 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. 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. 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. 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.