What it does
Treasure Dive finds currently settlements, matches them to you, and tells you in plain words when you may qualify.
- Capital One connect and live scan. You agree to read-only access, and your real accounts and purchases come in from Capital One's Nessie API. You watch the scan happen: messy bank lines ("WHOLEFDS P ST 10180") become real store names, then 26 stores are checked against 44 open settlements.
The reveal and your Treasure. A pixel-art chest opens on what you may be owed, clearly labelled an estimate. The Treasure tab lists every match with its deadline countdown, match strength and a verified or unverified badge.
Receipts. Paid cash, or did a friend pay? Snap a receipt. Gemini vision reads the store, date and items, and the scout checks them against open settlements.
Claims map. Your purchases on a map, with gold tags for claims limited to one state. Tap a state or ask the scout about a place.
The daily dive. Every day the scout searches for newly opened settlements, checks each official claim site in code, and matches the new finds to your history. A sonar sweeps and a Search → Verify → Match pipeline lights up as it works.
I got paid records a real Nessie deposit, and your chest fills with money recovered.
How we built it
- App: Expo SDK 58 with Expo Router and React Native Paper. One codebase runs on the iOS Simulator and the web. Animations use Reanimated. The pixel art is drawn from letter grids. The claims map uses react-native-maps (Apple Maps). Notifications, speech and the camera come from Expo's libraries.
- Every color, spacing value and font lives in one tokens file, and a script checks every text color pair against WCAG AA.
- Server: Node, Express 5, TypeScript and SQLite (better-sqlite3), with node-cron running the daily dive. Every external payload is validated with zod.
- Scout agent (Gemini):
- Discovery runs with Google Search grounding, then a second call turns the prose into structured JSON.
- Our own code then verifies each claim site: the page loads, it isn't an aggregator, and it names the company and the deadline.
- When a site blocks bots, Gemini reads it through URL context. Our code checks that Google really fetched the page and that the quoted company and deadline match. That earns a Checked via Google ✓ badge.
Challenges we ran into
- Bot-walled claim sites. Many official settlement sites block automated checks with a bare 403. We didn't want to trust the AI's word, or bypass anything. So Gemini reads the page through Google's URL context, and our code checks the quotes it returns before showing a verified badge.
- Keeping the AI honest about money. Language models love saying "you qualify!" We made "may qualify" a rule in code: summaries pass through a rewrite step in English and Spanish, and every total is labelled an estimate.
Accomplishments that we're proud of
- It runs end to end on real APIs: real Nessie accounts and deposits, real Google-grounded Gemini research, and real verification of official claim sites. It also has a full mock mode for offline demos.
- An agent you can watch think, with every search and source visible, that says "no" when a settlement doesn't fit.
- Responsible design enforced in code: no filing for users, no fees, "may qualify" wording, sources on every settlement, and scam tips everywhere.
- Accessibility: English and Spanish, a simple reading level, read aloud, Dynamic Type plus a Larger text option, Reduce motion, screen-reader labels and WCAG AA contrast.
- 145 automated tests covering the matcher, scout parsing, verification, dedupe, scam rules, nudges, receipts and Nessie.
What we learned
- Grounding is only half of trust. The other half is code that checks the AI's claims before a user sees them.
- Showing the agent's work (plan, searches, sources) made it feel far more trustworthy than a polished one-line answer.
- Hard product rules ("never file for the user", "never promise money") are easiest to keep when they live in code and tests, not just in prompts.
What's next for Treasure Dive
- Real sign-in and connecting real bank accounts beyond the Nessie sandbox.
- Remote push alerts when a new settlement matches your history, plus deadline reminder.
Credits and acknowledgements
- Google Gemini API. It powers the scout and the Ask agent: Google Search grounding, structured output, URL context and vision. Models:
gemini-3.8-flashandgemini-4-argon, through the@google/genaiSDK. - Capital One Nessie API. Sandbox banking data (customer, accounts, merchants, purchases) and deposits.
Log in or sign up for Devpost to join the conversation.