Inspiration

Search is splitting in two: engines that rank (Google) and engines that answer (ChatGPT, Gemini, Perplexity, AI Overviews). Every week, clients at our agency asked the same question — "why doesn't AI cite us?" — and every answer was guesswork. Existing SEO tools measure rankings; nothing credibly measures readiness for answer engines. We wanted a tool that produces evidence, not AI-generated opinions.

What it does

Tenten Search Inspector (BotScore) audits any public URL across three dimensions:

  • SEO — HTTP behavior, redirects, robots policies, indexing directives, canonicals, sitemaps, initial HTML, structured data.
  • AEO (Answer Engine Optimization) — answer summaries, section structure, definitions, sources, authors, dates: the semantics agents can act on.
  • GEO (Generative Engine Optimization) — AI-crawler access (GPTBot, Claude-SearchBot, PerplexityBot), citable evidence, brand entities, summary control, server-rendered content.

A durable job queue dispatches an independent worker that fetches both raw and rendered HTML via headless Chromium. Every finding is deterministic and reproducible, backed by a versioned rules engine — an LLM layer may narrate findings but never decides pass/fail. The public results page gives real free value; a lightweight email gate unlocks the full prioritized fix plan (HubSpot sync, hashed 7-day report tokens) — so the tool doubles as a qualified-lead funnel for agencies.

How we built it

The entire product was built with Codex running GPT-5.6 (gpt-5.6-sol), across three sessions on July 14 — inside the Build Week window. Codex worked top-down: it first wrote a product strategy document and a versioned audit-rules spec (both in the repo under docs/), then implemented the Next.js app, the PostgreSQL + pg-boss queue, the Playwright/Chromium audit worker, the animated results design system, the Docker Compose + Caddy production stack, and the vitest suite. Codex session IDs are listed in the README.

Challenges we ran into

  • Making audits credible: separating deterministic evidence from LLM narration so the tool never hallucinates a pass/fail.
  • Rendering vs. raw HTML: many GEO failures only show when you compare what crawlers get with what browsers render.
  • Making a heavyweight pipeline (queue + worker + headless browser) run as one docker compose up.

Accomplishments that we're proud of

A production-grade stack — not a demo: durable jobs that survive restarts, atomic quotas, rate-limit salting, health endpoints, backup/restore docs. And a rules engine you can version and audit.

What we learned

GPT-5.6 with Codex can carry architecture, not just code completion — the strategy docs it wrote first made every later implementation session dramatically more coherent.

What's next for Tenten Search Inspector (BotScore)

Observed-visibility measurement (does ChatGPT actually cite you for a prompt set), multi-language rule packs (zh-TW first), and scheduled re-audits with diff alerts.

Demo videos: English https://youtu.be/lXHMuYjV_FI · Chinese https://youtu.be/2k-hiPKae10

Built With

Share this project:

Updates