Inspiration

We realized how many people (ourselves included) forget about silent subscriptions draining money every month. We wanted to build something that not only tracks your subscriptions, but actually helps you take action — from canceling ghost charges to switching to smarter plans.

What it does

SubLens is your AI-powered subscription tracker. It analyzes your bank statement from a csv file, detects recurring charges as subscriptions, identifies ghost or overlapping subscriptions, and gives smart suggestions to save money. You can view insights, neat visualizations, get alerts, and chat with an AI assistant to learn more about your spending.

How we built it

Backend: Flask Database: SQLite AI: OpenAI API (GPT-3.5) Frontend: React

Challenges we ran into

PDF extraction accuracy was initially inconsistent so we moved to CSV. Data synthesis process was done multiple times to create a more realistic and representative dataset. Interpreting recurring patterns and inferring frequencies needed multiple refinements. Working with OpenAI's API required prompt tuning for reliable, short-form answers. Time crunch meant we scoped features tightly to stay functional.

Accomplishments that we're proud of

Full end-to-end system: upload bank statement as a csv file → get clean subscription insights Custom AI agents that are actually useful (and fun to talk to!) Dashboard-ready JSON output with categories, next billing dates, and ghost flags Codebase ready for expansion: swap in real LLM or connect to Plaid-style API

What we learned

Prompt design is half the battle when working with LLMs Simplicity wins — good UI and clear insights beat raw data Fast prototyping with Flask + SQLite = MVP-friendly stack It's possible to ship useful, working AI tools in a single day!

What's next for SubLens

Plug in real PDF parsing (like PyMuPDF + regex + LangChain extraction) Integrate OAuth with Plaid or banking APIs for real-time data Add auto-email or SMS reminders for renewals or overlapping services Fine-tune LLM behavior with real usage examples and feedback Connect cancellation pages with API and integrate/onboard more subscription brands.

Built With

Share this project:

Updates