Inspiration
Every process we know has either gotten incredibly revamped by AI or rendered obsolete in the recent tech climate. Except for receipts. From getting them to throwing them away after every purchase, this process is and has remained extremely primitive. Even when stores email you their receipts - you want to keep them in case something happens and you need the receipt but 9 times out of 10, thy just sit there, taking up space and making things messy. More than that, if you ever need to go back, return processes are always vague as ever and it honestly never works out.
What it does
Cycle is an AI powered hub for those receipts. After authorizing it with your gmail, it is able to scrape your whole inbox for any type of receipt, give you real time data in the dashboard, including all the relevant information for your purchase, as well as automated returns. All you need to do is press return and our program does the rest. Except maybe drop the physical product off at the end, that is.
How we built it
We have a web app and chrome extension. The tech stack to build our product is below.
Tech Stack: Frontend: Next.js 14 + TypeScript + Tailwind CSS Backend: FastAPI (Python) + PostgreSQL/Supabase AI: Anthropic Claude (Sonnet 4.5) for receipt parsing and instruction generation Web Scraping: BrightData proxy network + Playwright for return policy scraping Automation: Chrome Extension with content/injected scripts for retailer automation APIs: Gmail API for email scraping, Google OAuth for authentication
Challenges we ran into
1) Chrome extension timing. Automation needed to wait for dynamic content to load. The solution was to implement retry logic with exponential backoff and MutationObserver for DOM changes. 2) AI Classification Accuracy. The initial version had false positives (marketing emails classified as receipts). The solution was to implemented strict two-step classification with explicit rejection criteria. 3) Return Policy Scraping. Many stores use dynamic JavaScript-rendered content. The solution was to implement BrightData's unblocking proxy + Playwright for JavaScript execution.
Accomplishments that we're proud of
We're proud of having end to end automation, smart classification, and live automation.
What we learned
We learned about chrome extension architecture, web scraping at scale, and about full-stack skills such as Pydantic.
What's next for Cycle
We want to transition the web app to also be a mobile app as well.
Built With
- brightdata
- chromeextension
- claude
- fastapi
- google-gmail-oauth
- playwright
- postgresql
- react

Log in or sign up for Devpost to join the conversation.