Inspiration

70% of fintech users abandon their app within 30 days. We kept asking why. It's not that young adults don't care about money. It's that every finance tool is built backwards: dashboards sit there waiting for you to come to the data. Gamification buys you maybe 4 weeks before the novelty dies. The problem was never usability. It was motivation to open the thing at all.

We believe the future isn't more apps. It's one AI agent that knows you, your finances, your health, your goals, and you just talk to it. No dashboards. No logins. Just a conversation in the tools you already use every day: texts, phone calls, Telegram. You call your agent the same way you'd call a friend.

Leo is the first step toward that future. Instead of building another app people forget about, we built a financial AI agent that lives where you already are. Finance first, everything else next.

What it does

Leo is an AI financial agent that meets you where you already are. Text Leo on Telegram or iMessage. Call Leo on the phone and have a real voice conversation. Or use the web dashboard. Your choice.

Leo connects to your bank via Plaid and becomes your personal finance brain:

  • Spending analysis: "how much did I blow on DoorDash this month?"
  • Subscription auditing: finds overlaps, unused services, student discounts you're missing
  • Micro-goals: sets achievable weekly savings challenges tied to things you actually want (a trip, a laptop, not abstract "savings")
  • Tax Hub: scan W-2s and receipts with your camera, find missed deductions, estimate your refund
  • Cash flow prediction: warns you before your balance goes negative
  • Receipt & document vault: snap a photo, Leo extracts and stores it
  • Purchase advice: send Leo a product photo and it price-checks the web and tells you if it's a good deal
  • Weekly reports: proactive insights pushed to you, not buried in an app

Every feature works across every channel. No app to download. No website to visit. Just ask.

How we built it

  • Next.js 16 webapp with React 19, Tailwind CSS, and Framer Motion for the dashboard
  • OpenAI GPT-4o with function calling as the core agent brain, with 25+ tools the model can invoke autonomously
  • OpenAI Realtime API + Twilio Media Streams for live voice calls over WebSocket
  • Plaid API for bank account linking, transaction data, and recurring charge detection
  • Telegraf for the Telegram bot integration
  • Supabase (Postgres + Auth + RLS) for user profiles, conversations, goals, documents, and tax data
  • ElevenLabs for high-quality voice synthesis
  • Custom tool orchestration loop that handles up to 10 chained function calls per message, with streaming SSE for the webapp

The agent architecture is channel-agnostic: the same tool execution layer powers webapp chat, Telegram messages, and phone calls. Context is preloaded per-user (profile, goals, recent spending, last report) so Leo feels like a friend who remembers everything.

Challenges we ran into

Voice latency was brutal. Bridging Twilio's audio stream to OpenAI's Realtime API over WebSocket while keeping tool calls responsive required careful buffer management and async orchestration. Getting sub-second response times while the model chains 3-4 tool calls was a real engineering puzzle.

Channel parity: making every feature work identically across web, Telegram, and voice. Markdown renders differently everywhere. Voice can't show tables. We had to build format-aware response layers for each channel.

Context window management: Leo preloads user profile, goals, spending data, and past reports into the system prompt. Keeping this rich enough to feel personalized without blowing the token budget required aggressive summarization and smart preloading decisions.

Accomplishments that we're proud of

You can literally call a phone number and have a natural voice conversation with an AI that knows your exact financial situation, pulls live data mid-conversation, and talks like your friend, not a robot reading a script.

The agent doesn't just answer questions. It acts. Ask "how can I save money?" and Leo immediately runs 3 analyzers, finds your $47/week DoorDash habit, and frames it as "that's $2,444/year, literally a trip to Japan." No menus. No clicks. Just answers.

Every channel (web, Telegram, phone) shares the same brain, the same memory, the same tools. Your conversation continues seamlessly across all of them.

What we learned

The best interface is no interface. Users don't want another app. They want answers in the tools they already use. Building an agent that does things instead of describing what it could do required a fundamental shift in how we designed prompts and tool orchestration.

We also learned that personality matters as much as functionality. Leo's casual, friend-like tone (roasting your Starbucks habit, hyping your wins) drives engagement more than any feature list ever could. That's how you beat the 30-day dropout curve: you stop being an app and start being a friend.

What's next for Leo

Leo is the first step toward a bigger vision: one AI agent that knows your entire life. Imagine a personal agent you can call anytime, not just for finances, but for health, career, anything. Each domain has its own data layer, its own specialized tools, but the interface is always the same: just talk.

We're building toward a future where your AI agent has context about your finances, your health records, your calendar, your goals, all stored securely, all personalized. You don't open apps. You don't Google things. You just call your agent. Leo for finance is step one.

Built With

Share this project:

Updates