Marketing tech · SaaS · 2026 · Live, soft launch

CiteReady

An AI audit that shows businesses how ChatGPT, Gemini and Perplexity read and cite their site, with fixes ranked.

0:47
average ARS gain after shipping fixes
+21
sites audited since launch
1,800
median time to a full audit
5 min
of audits complete without errors
97%

The problem

AI answer engines such as ChatGPT, Gemini and Perplexity now answer customers’ questions and cite a few sources. Apart from Google’s, AI crawlers don’t run JavaScript, so client-rendered pages are invisible to them, and site owners couldn’t see whether they were cited, or why not.

Who it’s for
Site owners, marketing teams and agencies who want their pages cited in AI answers, each working in their own workspace.
My role
Built end to end: AI/ML and backend
Team
1 full-stack AI engineer, 1 UI/UX designer

Stack

Agent

  • DeepAgents
  • CopilotKit

Models

  • OpenAI GPT-5.4
  • Gemini 3.5 Flash
  • Perplexity Sonar

Pipeline

  • FastAPI
  • Celery
  • Playwright
  • Python 3.14

Data

  • PostgreSQL + pgvector
  • Redis
  • MinIO

Web & infra

  • Next.js
  • Docker
  • Hetzner
  • Caddy

How it works

Interface

  • Next.js app
  • Agent chat

Agent

  • Orchestrator agent
  • Approval gate
  • Celery queue

Audit

  • Polite crawler
  • Headless render
  • Analyzers
  • Rubric scoring

Citations

  • Prompt library
  • Engine probes
  • Citation rates

Delivery

  • Report and PDF
  • Postgres + pgvector
  • Push and email
  1. 01 A site comes in

    The user adds a URL. The agent estimates pages, LLM cost and duration, and waits for approval before anything is crawled.

  2. 02 Crawl it like an AI bot

    A Celery worker fetches each page as raw HTML under robots.txt rules, renders it in Playwright and diffs the two.

  3. 03 Score against a fixed rubric

    Analyzers run the 36-check rubric. An LLM only labels answer capsules and quotable lines, at temperature 0, so scores repeat.

  4. 04 Ask the engines directly

    Approved prompts go to ChatGPT, Gemini and Perplexity three times each; a pair counts as cited if one sample cites the site.

  5. 05 Report, store and notify

    Findings land in a report ranked by impact, with PDF and share link, and a push or email when the job ends.

Decisions

01

Deterministic scoring

Chose A published rubric that does the arithmetic over letting an LLM score each page.

A score that changes between runs on identical content destroys trust. LLMs only label content, at temperature 0, cached by content hash.

Trade-off: A new classifier version shifts scores, so it is versioned and regression-gated like a rubric change.

02

Citations through official APIs

Chose Sampling the engines’ official APIs over scraping the consumer chat apps.

APIs are stable, within the terms of service and cheap enough. Three samples per prompt and engine damp the noise.

Trade-off: API answers can differ from what people see in the apps, so every result is labelled “API sampling”.

03

The agent dispatches, workers run

Chose A Celery pipeline that the agent dispatches over running the crawl inside the agent loop.

Audits take minutes, must survive a lost chat thread, and the REST button and the agent run the same pipeline.

Trade-off: Two execution worlds: progress has to be relayed from the workers to the chat over Redis.

What I’d do next

  • I’d test against the real model from day one. A scripted mock hid an agent-started audit that sat at “Queued” for ever, and only a live run caught it.
  • I’d test streaming with real clocks: fake-clock unit tests passed while live progress was arriving once every 50 seconds.
  • Next I’d move the golden-score gate into CI, add Google AI Overviews, and calibrate the rubric weights against measured citation rates.

Results

  • Average AI-Readiness Score, re-audited sites

    Before: 54After: 75

  • Prompts where the site is cited

    Before: 7%After: 21%

  • Live progress updates during an audit

    Before: 1 per 50sAfter: 1 per second

  • First-load JavaScript on app pages

    Before: 717 kBAfter: 185 kB

More work