Inspiration
Managing personal finances in India is messy at UPI payments, unclear SMS alerts, unknown merchant names, and zero context after a transaction. Most expense apps expect users to manually log everything, which breaks instantly in real life. We wanted to build something that understands transactions the way humans do, without adding friction.
What it does
FinPulse is an AI-powered personal finance assistant that automatically understands transactions, categorizes them, learns user behavior, and provides actionable insights. Using Gemini, it resolves unknown merchants, supports multimodal inputs (text, voice, receipts), tracks budgets and goals, and proactively alerts users when they deviate from disciplined spending—all through a conversational interface.
How we built it
We built FinPulse using a three-layer transaction ingestion system: screen reading, SMS & notification listeners, and the Account Aggregator (AA) framework. Gemini is used at the core for natural language understanding, merchant resolution, categorization learning, insight generation, and conversational reasoning. The system is designed to be local-first and real-time.
Challenges we ran into
Handling unstructured and ambiguous merchant names
Reducing notification fatigue while keeping tracking accurate
Designing AI explanations that are clear, not overwhelming
Mapping financial data into meaningful user insights
Accomplishments that we're proud of
Accurate auto-categorization that improves with use
India-first handling of UPI and SMS transactions
Conversational insights that explain why spending changes
A system that feels proactive, not reactive
What we learned
Good financial AI isn’t about more data—it’s about better context, timing, and trust. Users engage more when AI explains decisions and adapts to their habits instead of forcing manual effort.
Built With
- android-studio
- antigravity
- dart
- drift
- flutter
- gemini
- geminiapi
- javascript
- ocr
- prompt
- python
- speech-to-text-api
- sqlite
- stitch
Log in or sign up for Devpost to join the conversation.