Inspiration

Plenty of stores will refund the difference if something you bought drops in price within a set window, but almost nobody goes back to re-check old purchases. That money just sits there, and the retailers win.

What it does

Refund Hunter checks the prices of things you've already bought and tells you, right inside an ASI:One chat, when you could get money back.

You can get purchases in three ways:

  • 📸 Upload a receipt photo in the chat
  • 📧 Connect Gmail (read-only) to pull recent order confirmations
  • 🔗 Paste a product link and the price you paid

Refund Hunter compares what you paid with today's price:

If the price dropped, it checks the store's price-adjustment policy using our policy agent. Our claims agent is then able to draft a refund request for you to send.

Everything happens in ASI:One with Interactive Cards: a menu, a review card to confirm what we read from your receipt, a carousel of everything you're tracking, and a detail card for each item.

How we built it

Refund Hunter is five Fetch.ai uAgents, each registered on Agentverse with its own address and mailbox. They talk to each other with typed messages, so each agent has exactly one job:

Agent What it does
Coordinator The only agent you talk to. Implements the Agent Chat Protocol, runs the cards, and saves your items
Parser Reads receipt photos and order emails with ASI:One's asi1 model into store, date, order number, and line items
Price agent Gets live prices from Bright Data's Scraper API for Amazon and Walmart, and searches for the product when a receipt has no link
Policy agent Checks whether the store offers price adjustments or not
Claim writer Drafts the refund request for you to send

Gmail, done safely: Connect Gmail uses Google OAuth with the read-only gmail.readonly scope. We request online access only, with no refresh token, read up to 10 order emails from the last 30 days, then revoke the token. The sign-in link is signed, so it can only connect to your ASI:One account. We only keep purchase details (item, price, store, date, order number); receipt photos and email bodies are read once and discarded.

Stack: Python 3.13, uAgents, Agentverse, ASI:One (Chat Protocol, Interactive Cards, asi1), Bright Data Scraper API, Google OAuth / Gmail API, FastAPI, SQLite

Challenges we ran into

  • Slow scrapes vs. a responsive chat. uAgents runs an agent's handlers one at a time, so one slow scrape blocked every other request. We moved price checks into background tasks. Walmart searches take about a minute, so we start searching while you're still reading the review card.
  • Bright Data's API surface. Tool names in older guides didn't exist in the current MCP, so we switched to the Scraper API for structured prices (final_price straight from Amazon and Walmart). We handle its 1-minute sync limit by polling snapshots. Free credits are shared and repeated rate-limit errors can block your IP, so we cache prices for 10 minutes and never retry in a loop.
  • Receipts without links. Paper receipts have product names, not URLs, so the price agent searches Amazon and Walmart and lets you pick the right match from a carousel.
  • Email intake, round two. We first forwarded emails through Pipedream, but setup was clunky for users. Gmail OAuth in testing mode got us real inbox access in a weekend without Google's weeks-long review.

Accomplishments that we're proud of

  • A working multi-agent system where five agents each own one job and pass typed messages to each other
  • Receipt photo → parsed items → live Bright Data prices, entirely inside an ASI:One chat
  • Real Gmail integration that's read-only and keeps nothing it doesn't need

What we learned

  • Agents are a design pattern, not just a buzzword. Splitting work by cost and failure mode (scraping, LLM calls, chat) made everything easier to debug and kept the chat fast.
  • Agree on the contract first. Writing models.py together on Friday night let us build in separate times without stepping on each other.

What's next for Refund Hunter

  • One-tap claims, sent straight to the retailer
  • More stores beyond Amazon, Walmart, Target, Best Buy. Utilize BrightData's MCP functionality fully
  • A business model that only earns when you do: a small cut of recovered money through Fetch.ai's Payment Protocol
  • Google verification to open Gmail beyond test users

Built With

  • agentverse
  • asi:one
  • bright-data
  • fetch.ai
  • gmail-api
  • python
  • uagents
  • vercel
Share this project:

Updates

Submission history