Inspiration
Most personal finance apps treat you like a spreadsheet. You fill in fields, stare at pie charts, and still don't know what to do. We wanted something different - a platform you could just talk to it.
The real insight came from a simple frustration: figuring out which credit card to use for a Costco purchase while also having a Prime membership, an active cashback card, and a travel rewards card shouldn't require a PhD in personal finance. It should take one sentence.
That's what sparked OptiFi - a chat-first financial assistant where you ask - "what's the best way to buy a standing desk?" and get a ranked answer factoring in your actual cards, memberships, and reward rates.
What We Built
OptiFi is a full-stack multi-agent AI personal finance platform. Every financial domain (budgets, goals, loans, purchases, taxes, weekly reviews) gets its own specialized AI agent. A central orchestrator decides which agent handles each message.
The routing pipeline:
- Fast keyword match (no LLM call needed for clear intents)
- LLM intent classifier fallback for ambiguous messages
- Dispatch to the right agent with the user's full financial context
Key systems:
- Purchase Optimizer - runs a real-time merchant search, then scores every card × merchant combination using the user's actual reward rules and active memberships. The net cost formula:
$$\text{Net Cost} = P \cdot (1 - r_{\text{card}}) - D_{\text{membership}}$$
where \(P\) is price, \(r_{\text{card}}\) is the effective reward rate for that merchant category, and \(D_{\text{membership}}\) is any applicable membership discount.
AI Card Import - paste any credit card URL. The pipeline fetches the page, extracts reward rules with an LLM from raw HTML, presents them for human confirmation, then saves them to the database. No manual data entry.
Weekly AI Review - aggregates your transactions, budget utilization, goal progress, and loan balances, then generates a structured financial summary with specific, actionable recommendations.
How We Built It
Backend: FastAPI with SQLAlchemy 2.0 async, PostgreSQL (Supabase), and the Groq API (LLaMA 3.3 70B) for all LLM inference. Auth is JWT via httpOnly cookies. Each agent lives in its own Python class inheriting from BaseAgent.
Frontend: Next.js 14 App Router, TypeScript, Tailwind CSS, shadcn/ui, TanStack Query for server state, Zustand for client state, and Recharts for data visualization.
The full request lifecycle for a chat message:
Built With
- fastapi
- groq
- jwt
- llama-3.3-70b
- next.js-14
- postgresql
- python
- recharts
- serper-api
- shadcn/ui
- sqlalchemy
- supabase
- tailwind-css
- tanstack-query
- typescript
- zustand
Log in or sign up for Devpost to join the conversation.