Inspiration

We’ve all been there: staring at a pair of shoes that didn’t fit, only to realize the return window closed yesterday.

Online shopping is frictionless, but the "post-purchase" experience is a mess. We are drowning in fragmented data: receipts buried in email threads, tracking numbers scattered across carrier sites, and return policies hidden in fine print. Our research showed that return rates are hitting 30-40% in apparel, yet the tooling for consumers hasn't evolved beyond a simple inbox search.

We realized that users don't need another dashboard; they need a Personal Shopping Agent. We were inspired by the shift toward Agentic AI, software that doesn't just display data but structures it, understands it, and helps you make decisions. We wanted to build an agent that can answer the question: "Hey, do I still have time to return these sneakers?" instantly.

What it does

Trackable is an AI-first shopping assistant that centralizes your purchase history and return logic.

  • Intelligent Ingestion: Users can securely sync their Gmail or upload screenshots of receipts. Trackable cuts through the noise of marketing spam to identify and extract actual orders.
  • Multimodal Parsing: It doesn't matter if your receipt is a forwarding HTML email or a screenshot from a mobile app, Trackable normalizes it into a unified "Order" database.
  • Policy & Deadline Reasoning: The system doesn't just store dates; it understands them. It parses merchant return policies and cross-references them with delivery dates to calculate the exact "Return By" deadline for every item.
  • Conversational Interface: Instead of digging through filters, users can chat directly with their order history. You can ask natural language questions like "Show me all the electronics I bought last month" or "What is the return policy for this Amazon order?" and get immediate, context-aware answers.

How we built it

We built Trackable as a Python-based web application backed by Google Cloud Platform (Cloud SQL) and Supabase for authentication. The backbone of our intelligence layer is the Google Agent Development Kit (ADK). By utilizing the ADK, we were able to move beyond simple API calls and build a true agentic framework that leverages Gemini 3 for complex reasoning and multimodal data processing.

Gemini 3 & Agent Development Kit (ADK) Integration:

  • Agentic Workflow Orchestration via ADK: We used the Agent Development Kit (ADK) to manage the lifecycle of a user’s order. The ADK allows us to orchestrate how Gemini 3 interacts with different data sources, switching seamlessly between parsing raw email text and analyzing visual receipt data.
  • Multimodal Extraction (Gemini 3 Vision): We utilize Gemini 3’s vision capabilities to process user-uploaded screenshots of receipts. The model identifies merchant names, line items, and total prices from raw images, handling diverse layouts and mobile screenshots with high precision, and converts them into our strict JSON schema.
  • HTML Parsing & Noise Reduction: Email confirmations are notoriously messy. We use Gemini 3 to parse raw email HTML. The model’s long-context window allows us to feed it entire email bodies, effectively distinguishing between shipping notifications, marketing blasts, and actual order confirmations to extract key entities (Order IDs, items, dates).

Challenges we ran into

  • Handling Web-Based Data Ingestion: Since we are building a web platform, creating a seamless flow for users to sync their GMail and upload screenshots required careful architecture. We had to ensure that whether a user triggered a manual sync or uploaded a messy mobile screenshot, the data was normalized quickly so the web dashboard remained responsive and accurate.
  • The "Inbox Noise" Problem: Differentiating between a generic "Your order has shipped" email and the actual "Order Confirmation" (which contains the itemized receipt data) was difficult. Early versions of our agent struggled with marketing noise. We had to refine our prompt engineering within the ADK to leverage Gemini 3's context understanding to accurately classify email types before attempting extraction.
  • Managing Multimodal Variability: Every merchant has a different receipt layout: some are clean HTML, others are text-heavy, and many users only have a mobile screenshot. Ensuring our web app could handle this multimodal variety was a hurdle. We relied on Gemini 3 to act as a "universal translator" for these different formats so they could all be stored in a single unified schema.
  • Hallucinations in Structured Data: When building a database-driven website, accuracy is non-negotiable. An AI cannot "guess" a return date. Initially, the model would occasionally hallucinate a return window if the policy wasn't explicit. We solved this by implementing strict Structured Outputs via the ADK, forcing the model to flag "Unknown" or "Human-in-the-Loop" rather than providing incorrect information to the user.
  • OAuth & Security Friction: Asking users for "Read Email" permissions on a website is a high barrier to entry. We had to focus on building a transparent UI that clearly explains how their data is being used to generate their personal order dashboard, ensuring that the value of the automated tracking immediately outweighs the privacy friction.

Accomplishments that we're proud of

  • Seamless "Magic" Ingestion: Seeing the system successfully ingest a batch of messy HTML emails and instantly hydrate a clean, organized dashboard was a huge win. The speed and accuracy of Gemini 3 in normalizing this data made the "manual sync" feel almost instant.
  • Complex Policy Understanding: We are proud that the agent can answer specific policy questions. It doesn't just say "Here is the link"; it extracts the specific clause (e.g., "You have 30 days for unworn items") relevant to the user's specific item.
  • Hybrid Data Handling: Successfully merging data streams from both Vision (screenshots) and Text (emails) into a single, unified Order object in our database.

What we learned

  • Structured Output is King: We learned that for Agentic AI, the ability to generate reliable JSON is just as important as generating text. Gemini's ability to adhere to a schema allowed us to bridge the gap between "Generative AI" and reliable application logic.
  • Context implies Value: Users don't care about the date they bought an item; they care about the time left to return it. AI adds value not by retrieving data, but by computing the relationship between data points (Purchase Date vs. Policy).

What's next for Trackable

  • Background Monitoring: Currently, we rely on a user-triggered sync. The next phase is to implement a background worker that automatically ingests new emails and sends push notifications (e.g., "Return window closing in 48 hours") without the user opening the app.
  • Automated Execution: We plan to move from "Information" to "Action", giving Trackable the ability to not just find the return label, but to proactively email it to the user or schedule a pickup.
  • Deal Monitoring: Since we already know what you bought, we plan to add "Price Drop Protection," alerting you if an item you purchased goes on sale within the price-adjustment window.

Built With

Share this project:

Updates