Inspiration

Most people learn math in school—but not personal finance in a way that sticks. Bank apps show transactions; they rarely teach patterns, tradeoffs, or one concrete next step. I wanted something that felt closer to a tutor: structured feedback (a “report card”), short lessons, and a coach that could reason about my numbers—not generic advice.

West Hacks’s Fintech & Education theme was a natural fit: financial literacy plus an educational presentation layer (grades, narratives, practice questions via chat).

What I learned

  • Grounding matters: LLMs feel smartest when they’re constrained to real inputs (monthly snapshot or linked data) and tool-backed math for scenarios and totals—otherwise finance chat becomes confident fiction.
  • Product shape beats raw model: turning analysis into cards (DNA, watch list, “one move”) makes the same model dramatically more usable than a wall of text.
  • Shipping paths for everyone: not every region has the same bank-linking APIs—so a no-bank /try flow is as important as optional Plaid for demos and US sandbox users.

How I built it

FinLens is a Next.js (App Router) app with TypeScript, Tailwind CSS, and React 19. The UI includes dashboards built with Recharts and motion on intake using Framer Motion.

On the backend, route handlers power analysis and chat. Long-running analysis streams over SSE where it helps the UX stay honest about progress. The FinLens Coach uses the Anthropic SDK with tool use so the model can pull structured slices of the user’s financial context (scenarios, categories, merchants) instead of guessing.

Optional Plaid integration handles link token creation, token exchange, and httpOnly cookies for access tokens—plus webhook verification for production hygiene. The app deploys on Vercel; GitHub Actions runs lint/build/audit checks on pushes and PRs.

Challenges

  • Latency vs trust: financial “brain scans” can take long enough that UX and hosting timeouts become part of the design problem—not an afterthought.
  • Streaming + tools: getting SSE chat to feel smooth while still allowing tool rounds without breaking the client parser took careful iteration.
  • Security at the edge: anything involving bank linking means treating cookies, session signing, rate limits, and webhook verification seriously—even for a hackathon-quality prototype.

A little math (why the 5-year view matters)

Small recurring changes compound. If growth is modeled in discrete steps with per-period return (r), a one-time principal (P) scales like:

$$A = P(1 + r)^t$$

FinLens doesn’t ask users to do this by hand—it visualizes tradeoffs so intuition can catch up to the spreadsheet.

(If you submit as a team, change “I” to “we” where it reads better.)

Built With

Share this project:

Updates

Submission history