Inspiration

Finance students graduate with theory and no proof. You can pass a course on the accounting equation and still freeze when a recruiter asks you to build a budget in Excel or explain why a profitable company ran out of cash.

The gap isn't knowledge — it's evidence. Certificates say you attended. They don't say you can do the work.

FinPilot AI was built around one question: what if learning finance produced a record of demonstrated skills instead of a completion percentage?

## What it does

FinPilot turns finance and accounting fundamentals into short, practical missions. Each mission runs a two-step loop:

  1. Learn — the concept, a worked example in rupees, and the common mistake people make
  2. Assess — you do the actual task and submit your work

Your submission is scored against four explicit rubric criteria. Hit three of four and it's saved as verified evidence. Miss it, and you get told exactly which criterion is missing so you can improve and resubmit.

Alongside this sits Ask FinPilot, an AI coach that answers questions in plain language with worked examples — but only inside the syllabus you're actually studying.

Three beginner missions ship today: building a monthly budget in Excel, explaining profit versus cash flow, and rewriting a resume bullet with evidence.

## How we built it

The entire front end is a single index.html file — no framework, no build step, no dependencies in package.json. Markup, styles, and logic all live in one file. That wasn't laziness; it meant every change was live the instant I saved, and deployment was a git push.

The stack:

  • Front end — vanilla JavaScript, hand-tuned CSS with responsive breakpoints down to 380px and a bottom nav bar on mobile
  • Coach — a single Vercel serverless function at api/coach.js, so the OpenAI key never reaches the browser
  • StatelocalStorage, keeping the MVP account-free
  • Hosting — Vercel, with security headers set in vercel.json

The most interesting engineering wasn't the UI — it was the prompt. The coach's instructions pin it to a fixed curriculum array, require worked examples in rupees, force answers into a consistent structure (Simple explanation → Worked example → Watch out → Quick check), limit it to one check question at a time, and explicitly forbid it from claiming a learner has mastered something without evidence. It also refuses personalized investment, tax, or legal advice and redirects out-of-scope questions back to the nearest syllabus topic.

## Challenges we ran into

The model kept writing LaTeX. Ask about depreciation and you'd get \[ \frac{60000}{3} \] rendered as raw backslashes to a student who has never seen LaTeX. Fixing it took both a hard prohibition in the system prompt and a filter in the renderer, because the instruction alone wasn't reliable.

Markdown had to be rendered from scratch. Pulling in a library would have meant a build step for one feature. So I wrote a ~20-line parser handling headings, nested lists, inline code, bold, and tables — with a small touch I'm fond of: any short line containing = renders as a highlighted calculation block, so Annual depreciation = ₹60,000 ÷ 3 = ₹20,000 visually stands apart from prose.

Assessment was the hard problem, and I chose to ship a compromise. Grading free-text submissions properly is an AI problem. Within Build Week, I built a deterministic rubric checker: pattern matching that verifies whether a budget submission actually mentions income and expenses, contains figures, states assumptions, and interprets a variance. It's fast, free, offline, and gives specific per-criterion feedback. It is also gameable, and I know it. It was the right call for an MVP and it's the first thing on the roadmap.

Every input crossing the network is validated. Question length capped at 800 characters, conversation history truncated to the last six turns, mission fields sliced to fixed lengths, and all user text escaped before it touches the DOM.

## What we learned

Constraining an AI tutor is harder and more valuable than making it capable. An unconstrained model will happily give a student confident investment advice, invent praise for work it never saw, or drift into topics far beyond what they're ready for. Most of the coach's quality came from writing down what it must not do.

I also learned how far vanilla JavaScript actually goes. There's a reflex to reach for a framework before writing a line of code. For an app this size, going without one meant zero build tooling, near-instant iteration, and a page that loads in one request.

## What's next for FinPilot AI

  • Replace the regex rubric with AI-graded assessment, using the same criteria but with real comprehension — the honest limitation of the current build
  • Accounts and server-side persistence, so an evidence record survives a cleared browser
  • Unlock the Intermediate and Advanced tracks — ratio analysis, working capital, valuation, Ind AS
  • Exportable skill evidence, so a demonstrated mission becomes something you can hand to a recruiter

Built With

Share this project:

Updates