Inspiration

We've all been there, you want to buy a new pair of headphones. So you open YouTube. One review becomes five. Five becomes twelve. Then you start reading blogs. Then Reddit threads. Three hours later, you have 47 browser tabs open and you're more confused than when you started.

The average consumer spends 4+ hours researching a single tech purchase. That's not shopping, that's a part-time job.

I built ShopLens because I was tired of the cycle: watch a 20-minute video for one opinion, read a 3,000-word article for another, and still not feel confident clicking "Buy." The information exists, it's just scattered across dozens of sources, buried in hours of content, and impossible to compare side-by-side.

What it does

ShopLens is a conversational AI that does your product research for you. Instead of watching 12 YouTube reviews and reading 8 blog articles, you just ask:

"Best noise-canceling headphones under $400?"

ShopLens instantly aggregates reviews from trusted sources like MKBHD, Dave2D, The Verge, and Tom's Guide. It extracts every reviewer's opinion, compares products across categories like sound quality, comfort, and battery life, and gives you a clear, citation-backed answer, in seconds, not hours.

  • Ask, don't search — Natural language questions replace hours of browsing
  • Multi-source analysis — YouTube reviews and tech blogs, unified into one view
  • Side-by-side comparisons — Score breakdowns across every dimension that matters
  • Pros & cons at a glance — See what reviewers love and hate, instantly
  • Go buy it — Find marketplace listings on Amazon and eBay directly from the conversation

No more tab overload. No more conflicting opinions with no resolution. One question, one answer, one click to buy.

How I built it

The stack is designed around one goal: turn unstructured review content into structured, queryable intelligence.

  • FastAPI: backend handles the conversational API and review pipeline
  • Google Gemini: powers the AI, I use function calling to let the model decide when to search for reviews, analyze content, or compare products
  • Firecrawl: discovers and scrapes YouTube and blog URLs via its search API
  • Gemini video/text analysis: processes each review, extracting opinions, ratings, pros/cons from both video transcripts and article text
  • PostgreSQL: stores products, reviewers, reviews, and extracted opinions
  • Qdrant: vector database enables semantic search, find products by meaning, not keywords
  • Redis: caches frequent queries for instant responses

The review pipeline runs in 7 automated steps: cache check, YouTube search, YouTube ingestion, blog search, blog ingestion, summary generation, and marketplace listings. The AI orchestrates this entire flow through function calling — it decides what to search, what to analyze, and when it has enough information to answer.

Challenges I ran into

Gemini function calling with thought signatures. Gemini 3 models return thought signatures that must be preserved when sending function results back. Missing this caused silent failures that took hours to debug.

Firecrawl response format inconsistency. The search API returns two different JSON structures depending on the query — sometimes a flat array, sometimes nested by source type. I had to handle both gracefully.

Review quality variance. Not every YouTube video or blog post is a proper review. I built filtering logic to distinguish genuine product reviews from unboxings, comparisons, and tangential content, so the AI only synthesizes opinions from credible, in-depth sources.

Keeping responses fast. A full pipeline run (search + scrape + analyze + summarize) touches multiple external APIs. I implemented Redis caching, circuit breakers, and rate limiting to keep the conversational experience feeling instant for repeat queries.

Accomplishments that I'm proud of

The 7-step autonomous pipeline. The AI doesn't just answer questions, it independently decides to search YouTube, find blogs, ingest reviews, and synthesize results, all through Gemini's function calling. Watching it chain together 7 tool calls to build a comprehensive answer from scratch feels like magic.

Real citations, not hallucinations. Every claim ShopLens makes traces back to a specific reviewer and source. When it says "MKBHD rated battery life 9/10," that came from an actual analyzed video, not a fabricated opinion.

Sub-minute answers for cached products. For popular products that have already been analyzed, responses come back in seconds. What used to take hours of manual research now takes less time than typing the question.

The comparison engine. Asking "Compare Sony WH-1000XM5 vs Bose QC Ultra" produces a detailed, multi-category breakdown with per-reviewer attribution and a clear winner , the kind of analysis that would take an afternoon to compile manually.

What I learned

The biggest insight: people don't want more information, they want less, but better. Every design decision came back to this. Strip away the noise, surface the signal, cite your sources, and get out of the way.

I also learned that AI is at its best when it's not generating opinions, it's synthesizing real ones. ShopLens doesn't tell you what to buy. It tells you what MKBHD, Dave2D, and The Verge think, finds where they agree and disagree, and lets you decide with confidence.

What's next for ShopLens

  • More product categories — Expanding beyond tech into home appliances, fitness gear, and everyday purchases
  • Real-time price tracking — Integrating live pricing from Amazon, Best Buy, and other retailers so you can buy at the best price the moment you decide
  • Personalized recommendations — Learning your preferences over time to surface products that match your priorities (budget-conscious, performance-first, eco-friendly)
  • Browser extension — A companion that summarizes reviews while you're already shopping on Amazon or Best Buy, right on the product page
  • Community consensus — Aggregating Reddit and forum discussions alongside professional reviews for a complete picture of real-world ownership experience
  • Better Information Gathering — For now i did a limit on how many youtube video or article we could gather, i hope i could increase this number and give more better and complete review

Built With

Share this project:

Updates