Inspiration

The top of every search result is marketing. The real opinions — the "I've owned this 2 years and here's what broke," the downvoted-but-honest Reddit comment, the niche blog teardown — are buried pages deep. And when you ask ChatGPT, it confidently summarizes the same shiny surface. We kept getting burned: great star ratings, miserable reality.

We drew the Domain Roulette domain hidden.reviews and it was instantly the product: a place where the hidden reviews aren't hidden anymore.

What it does

Search any product, place, company, restaurant, or movie. A research agent:

  1. Plans 4–5 search angles tailored to what you searched (a product → Amazon review pages + Reddit + long-term blogs; a movie → Letterboxd + IMDb + film subs; a restaurant → TripAdvisor + Yelp + local subs; a company → Glassdoor + G2 + Trustpilot).
  2. Searches the live web on all angles in parallel via Nimble — lite for breadth, and a deep full-page extraction on the long-form angle — pulling ~35 candid sources.
  3. Assesses what came back, names the biggest coverage gap, and re-searches to fill it.
  4. Synthesizes an honest verdict: a 0–100 trust score, "what the marketing doesn't tell you," marketing-vs-reality gaps, and buried-review quotes — each linked to its real source.

You watch every step stream live — including the actual Nimble queries firing — then it files a dossier whose cover answers everything at a glance: trust score, consensus, the things they don't tell you, and the stat strip of receipts. Buried quotes load redacted and declassify as you read, each linked to its real page. The home page is an archive of case files you can browse, and every investigation lives at its own shareable hidden.reviews/<slug> URL. Because it's also a remote MCP server, your AI assistant (Claude, Cursor, ChatGPT) can call it as a tool.

Unlike a Perplexity answer or a Fakespot score, every claim here is a quote with a link: the agent runs a multi-angle live-web investigation with a feedback loop, and by construction it cannot cite a source that doesn't exist.

How we built it

  • Next.js 16 + TypeScript + Tailwind v4 on Vercel.
  • Nimble Search API as the agent's eyes on the live web — multi-angle, domain-targeted (include_domains), parallel, resilient, with adaptive depth: lite for the breadth angles, deep (full-page markdown extraction) for the long-form angle.
  • Claude for the planning, the coverage-assessment feedback loop, and the structured synthesis (messages.parse + Zod schemas).
  • Anti-hallucination by construction: Claude cites every source by index; the real URL is rebuilt in code, so the model can never invent a source.
  • Server-Sent Events stream the agent's trace to the UI.
  • mcp-handler exposes it as a Streamable-HTTP MCP server (/api/mcp, tool get_hidden_reviews).
  • Showcase queries are served from pre-captured real digs so demos are instant; everything else runs fully live, rate-limited per IP so the credits survive the judges.

Challenges we ran into

  • Hard-to-scrape sources. Reddit returns no full-page content even on deep scrapes; we lean on its rich snippets and let Nimble's deep extraction handle long-form sources.
  • Choosing the right Nimble tool. We evaluated the WSA focus modes and custom agents (amazon_serp, google_maps_search, shopping, location): they return merchant listings and place data, not candid review text — so the agent instead aims targeted Search at the review-bearing pages themselves (amazon.com review pages, TripAdvisor, Glassdoor) via include_domains, where the honest words actually live.
  • Latency vs. the serverless cap. A genuine multi-step agent that finishes inside Vercel's function limit meant careful bounding: parallel searches, per-search timeouts, one capped deep extraction, and a graceful fallback that returns raw sources instead of ever erroring.
  • Honesty. It's easy to make an "AI reviews" toy that hallucinates. Grounding every quote and URL to a real Nimble result — and labelling live vs. demo — was a core design constraint, not an afterthought.

Accomplishments that we're proud of

  • A real agentic loop — plan → search → assess → re-search → synthesize — not a single API call with a prompt.
  • Zero hallucinated sources by design.
  • A declassified-archive UI that makes the idea legible at a glance: a wall of redacted case files that reveal on hover, and dossiers whose buried quotes declassify as you read.
  • It hits two prizes with one project, and the product is the domain: we drew hidden.reviews on Domain Roulette and designed the entire experience around those two words — the wordmark, the case-file archive, the redactions, and every investigation already living at a shareable /slug URL, ready for the day the domain is registered. (The live demo runs at hidden-reviews.vercel.app.)

What we learned

How to turn a single web-search API into an actual research agent: planning diverse angles, fanning out in parallel, and — crucially — reading the results to decide what to search next.

Could this be a company?

Yes. A dig costs cents (5–7 Nimble searches + three bounded Claude calls) and is cached forever after, so a modest subscription clears the unit economics with margin. Review-trust is a proven market — Fakespot was acquired by Mozilla, yet it and ReviewMeta only re-score star ratings on retail pages; nobody owns "what real people actually said, with receipts." And distribution is built in: every dossier is a shareable URL, and the MCP server puts hidden.reviews inside Claude, Cursor, and ChatGPT — where buying questions are increasingly being asked.

What's next

Register hidden.reviews and launch. A freemium tier (a few free digs a day; unlimited + API for subscribers), the MCP server as the B2B channel — AI assistants get clearance to the honest web per tool call — and a true multi-turn agent loop (keep digging until confidence is high) with per-source credibility weighting.


Live: https://hidden-reviews.vercel.app · MCP server: https://hidden-reviews.vercel.app/api/mcp — add it to Claude/Cursor and ask for any product.

Built With

  • anthropic
  • claude
  • domain-roulette
  • model-context-protocol
  • name.com
  • next.js
  • nimble
  • server-sent-events
  • tailwindcss
  • typescript
  • vercel
  • zod
Share this project:

Updates

Submission history