Inspiration
I want the best price everywhere I shop, so I built tools for passive price crowdsourcing and easy retrieval.
What It Does
Delphi is a shopping assistant. Its flagship experience is in-person: wear camera glasses/point your phone at products in a store and Delphi watches silently, proactively alerting you to great deals without prompting.
You can ask it questions and it researches live, citing certifications and testing. It integrates with WhatsApp video calls, so you can stream through smart glasses and get a hands-free shopping copilot.
Online, it also works as a browser extension across 50+ retail sites, showing color-coded deal ratings with unit comparisons and budget/similar/premium alternatives.
Both online and in-person shopping share the same data sources, allowing you to seamlessly compare prices across both platforms.
How We Built It
The server is TypeScript with Express and SQLite. It stores price observations, fuzzy-matches products with Gemini visual understanding on screenshots as fallback, computes verdicts, and generates price-tiered alternatives using Gemini with Google Search grounding for live prices.
On the online side, the browser extension tries a bunch of methods to get the price and product name: JSON-LD, cached selectors, site-specific CSS, Open Graph, then vision fallback. When selectors break, it self-heals by screenshotting the page, identifying the product via Gemini 3's multimodal capabilities, and learning new stable selectors which are then cached for 7 days.
The live assistant runs two concurrent Gemini instances in Python: one as a silent recorder processing video at 1fps with fuzzy deduplication to prevent repeated recognition of the same product, and one on the Live API for real-time voice. When the recorder spots a deal, it injects an alert into the voice session. BlackHole audio routing enables WhatsApp integration.
Challenges
Self-healing selectors needed strict validation to prefer semantic classes over generated/utility classes. Dual-Gemini coordination required careful deduplication and async injection to avoid interrupts. Unit normalization across formats like "2x1L" vs "500ml" vs "48 count" was nontrivial. WhatsApp audio routing needed correct sample rates (16kHz in, 24kHz out).
Accomplishments
Delphi autonomously adapts when retailers redesign sites, proactively alerts you mid-shopping without prompting, and supports 50+ sites with universal JSON-LD fallback. All extraction uses structured JSON schemas with zero regex, and tiered alternatives maintain bidirectional relationships in the database, creating a natural product graph over time.

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