Inspiration

We drew the domain ghost.reviews from name.com's Domain Roulette — and the name was the entire product. A "ghost" review is one written by a phantom AI ghostwriter, not a real customer; ".reviews" is exactly the medium being haunted. The name handed us the thesis: expose the ghosts hiding in a product's reviews.

Because online reviews don't work anymore. A product shows 4.6★, you buy it, and it's junk — a wave of AI-generated 5★ reviews quietly propped the rating up. In 2026, anyone can spin up hundreds of fluent, human-sounding fake reviews in minutes, and the old "spot the typo" tricks are dead. So ghost.reviews answers one honest question: how much of this product's hype is real humans vs. AI ghostwriters — and which way is the AI trying to steer me?

What it does

Paste a product (e.g. an Amazon listing). ghost.reviews:

  1. Pulls its reviews (Nimble-powered live web; the public demo ships with sample reviews so you can try it with zero keys).
  2. Runs an adversarial teardown on each one — scoring how likely it was written by AI vs. a real human, with the specific red flags that drove the call.
  3. Surfaces the payoff most checkers miss: the rating gap. e.g. "Listed 4.1★ — but the real human reviews average 3.2★, and the AI reviews are all 5★. The AI is inflating the score → AVOID."
  4. Gives a one-glance trust verdict: Looks genuine ✅ / Be careful ⚠️ / Avoid 🚫 — plus whether the AI is inflating (astroturfing) or bombing (attacking a competitor).

How we built it

One analyzing AI, three sponsor technologies, one cohesive product:

  • name.com (the concept): the product is the domain. ghost = the AI ghostwriter; .reviews = the medium. The name isn't a label on top of the app — it's the thesis the whole app proves.
  • The teardown engine (Claude + a model-behavior knowledge base): one analyzer scores each review. It's primed with a knowledge base of how the major model families tend to write (model_profiles.py), and it writes its own reference reviews of the product — one a genuine human would write, one an AI ghostwriter would — then compares each real review against both baselines. Runs free on a transparent rule engine; upgrades to Claude (Haiku) when an API key is set.
  • Tower (pipeline + lakehouse): the whole crawl → score → store flow is deployed as a serverless Python app on Tower and runs on a daily schedule. Each scan upserts a row into an Apache Iceberg table (ghost_scans) in Tower's lakehouse — building a history of how a product's Ghost Score moves over time.
  • Nimble (the live-web input layer): nimble_client.py integrates Nimble's Search API as the review source — the pipeline flips from sample data to real-time web extraction the instant NIMBLE_API_KEY is set. The public demo runs in sample mode (clearly badged) so anyone can try it with zero keys; the detection, scoring, and storage are identical either way.
  • Dashboard: a Streamlit app turns a scan into the trust verdict, the rating gap, the flagged reviews, and the AI's "mirror" baselines.

Challenges we ran into

  • Telling AI from human is genuinely hard — so we refused to fake certainty. We ship an honest probability with explainable red flags, not a black-box "fake/real" stamp.
  • Resisting over-claiming on attribution. Naming the exact model that wrote a review isn't scientifically reliable, so we deliberately ship model-family attribution as a clearly-labeled, low-confidence preview / roadmap feature — never a claim.
  • Hardening. We ran an adversarial multi-agent review over the codebase, which surfaced 16 issues; we fixed the real ones — including two silent failures that could have shown a falsely reassuring verdict.

Accomplishments that we're proud of

  • A real, deployed product: serverless pipeline live on Tower with a daily schedule and lakehouse storage — not a localhost prototype.
  • The rating-gap insight ("humans say 3.2★, AI faked it to 4.1★") that turns detection into an actual decision.
  • Honest engineering: explainable scoring, no fake certainty, a transparent free mode, and a $0 path so anyone can run it.

What we learned

  • AI-generated text detection is best framed as calibrated probability + evidence, not a verdict.
  • The real value isn't "is this fake" — it's "is the rating being manipulated, and which way."
  • A good data model (one row per product per day) turns a hackathon demo into the start of a real dataset.

What's next for ghost.reviews

  • The data flywheel: every scan + user feedback grows a labeled dataset of AI-vs-human reviews. As it grows, we sharpen the model-family attribution preview into a real, calibrated signal.
  • Browser extension that overlays a Ghost Score directly on Amazon / Yelp / app stores.
  • Alerts on review-bombing and astroturfing spikes for sellers and shoppers.

Built With

Share this project:

Updates