Live Case Study

The Loop Closing on Itself: How ChatGPT and Claude Started Citing Us (and Bringing Real Users)

A documented, end-to-end case study of running our own AEO playbook on AIExposureTool. We took our score from 56 to 91, shipped 8 technical reference docs, and ChatGPT then Claude started citing them — bringing real, fully-attributed users back to our product. This is the complete circle, with real data.

By AIExposureTool teamPublished on April 16, 2026Updated on June 24, 202615 min read
On this page

TL;DR — what happened, in one paragraph

We built AI Exposure Tool to help products get cited by AI engines. The honest first move was to use it on ourselves. In April 2026 we audited aiexposuretool.com, found a 56/100 score, and rebuilt the AEO posture from scratch — robots.txt, llms.txt, JSON-LD, FAQPage schema, EEAT pages, the whole stack. Score climbed to 91. Then we shipped 8 deep technical reference docs at /docs/*. Two weeks later, ChatGPT started citing our docs in its answers, and real users — exactly our ICP — clicked through and signed up. Three ChatGPT-attributed signups followed (April 25, May 6, May 11); one ran 5 audits and set up project tracking on day one. Then in June it generalized: our first Claude-attributed user landed straight on our /security tool from a claude.ai conversation. Two different AI engines — ChatGPT and Claude — are now sending us real, fully-attributed users. The loop closed: the playbook the platform sells, demonstrated on the platform itself.

The headline

Score 56 → 91. 8 technical reference docs shipped. 4 confirmed AI-attributed signups — 3 from ChatGPT (firstReferrer chatgpt.com) and 1 from Claude (firstReferrer claude.ai). Real users finding us through two different AI engines citing the exact pages we wrote to be cited. The flywheel works on us — which is the whole pitch.

56 → 91

Score gain

8

Technical docs shipped

4

AI-attributed signups (3 ChatGPT · 1 Claude)

2

AI engines now citing us (ChatGPT + Claude)

Act 1Auditing ourselves — 56 to 91 in 4 weeks

On March 15, 2026, we ran our own tool on aiexposuretool.com. Score: 56/100. For a tool that promises to fix AEO, the result was humbling.

The audit found:

  • robots.txt did not explicitly allow AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended)
  • No llms.txt — AI had no first-party brief to read
  • No JSON-LD structured data — no SoftwareApplication, Organization, or FAQPage
  • No FAQ schema markup
  • No comparison pages
  • Zero social proof visible to crawlers

We had 870 Google Search impressions and growing. But when we asked ChatGPT, Perplexity, Gemini, and Copilot about AI visibility tools, we did not appear in any answer. SEO traction without AEO traction.

Over four weeks (March 15 → April 16), we worked through every category. The score climbed, dipped on redesigns, recovered, and peaked at 91 on April 16 after a focused 4-hour fix session.

Score timeline

56

Mar 15

Day 1

First scan. No llms.txt, no JSON-LD, no FAQ schema. AI crawlers not explicitly allowed. Starting from scratch.

66

Mar 15

Day 1+10 pts

Added robots.txt rules for GPTBot, ClaudeBot, PerplexityBot, Google-Extended. +10 points in 5 minutes.

86

Mar 15

Day 1+20 pts

Deployed llms.txt + JSON-LD structured data. +20 points. From 56 to 86 in one afternoon.

79

Mar 20

Day 5-7 pts

Homepage redesign broke content structure. React components replaced crawlable text. Score dropped.

89

Mar 21

Day 6+10 pts

Fixed content, added FAQ schema, created comparison pages. Recovery + improvement.

91

Mar 23

Day 8+2 pts

Peak score. Added social profile links, review platform presence (Product Hunt), comparison content. All AI crawlers allowed.

84

Apr 1

Day 17-7 pts

Major feature launch — new React components increased JS ratio, dropped text-to-HTML ratio to 1%. Score dipped.

78

Apr 9

Day 25-6 pts

More features shipped. Trust signals section removed during redesign. Score dropped further.

78

Apr 16 (AM)

Day 32

Starting point for the fix session. 870 Google impressions, 0 confirmed AI mentions. Identified 7 failing checks worth 29 points.

91

Apr 16 (PM)

Day 32+13 pts

Back to peak in one afternoon. +13 points by fixing 7 checks: testimonials, metrics, trust line, integrations page, case study, FAQPage schema, dense answer-first content.

91

Apr 25

Day 41

First ChatGPT-attributed signup. firstReferrer=https://chatgpt.com/. Landed on the homepage with utm_source=chatgpt.com.

91

May 6

Day 52

Second ChatGPT-attributed signup. Landed on /docs/llms-txt directly from a ChatGPT answer. Ran 5 audits, set up project tracking. The loop fully closes.

91

May 7

Day 53

Shipped 5 additional /docs reference pages: llm-json, json-ld-for-aeo, per-llm-citation-behavior, ai-exposure-score, answer-engine-glossary. More citation surface area.

91

May 11

Day 57

Third ChatGPT-attributed signup. firstReferrer=https://chatgpt.com/, landed on the homepage. A marketer at an 11-50 person team — a new ICP segment arriving via ChatGPT.

91

Jun 13

Day 90

First CLAUDE-attributed signup. firstReferrer=https://claude.ai/, landed directly on /security from a Claude conversation and ran an audit. A second AI engine now sends us real, attributed users.

Every fix, with time and impact

FixTimeImpact

Allowed AI crawlers in robots.txt

Added GPTBot, ClaudeBot, PerplexityBot, Google-Extended, meta-externalagent. Went from blocked to fully accessible.

5 min+10 pts

Deployed llms.txt

Auto-generated from our audit, then edited for accuracy. 3,211 characters covering product name, features, pricing, audience.

10 min+8 pts

Added JSON-LD structured data

SoftwareApplication schema with real pricing and feature list. Organization schema with sameAs links. (A hard-coded aggregateRating was removed in June — self-serving review markup violates Google's policy.)

15 min+12 pts

Created FAQ schema

10 questions covering pricing, features, competitors, free plan. FAQPage JSON-LD in the homepage head.

20 min+5 pts

Built comparison pages

Created /compare/otterly, /compare/peec-ai, /compare/evertune with feature tables and honest pros/cons.

2 hrs+3 pts

Added social profile links

Twitter/X, LinkedIn, GitHub, Product Hunt in footer and Organization schema sameAs.

5 min+3 pts

Listed on Product Hunt

Free launch listing. Gets indexed by Google and cited by AI as third-party validation.

30 min+3 pts

Added testimonials in crawlable HTML — then removed them

Apr 16 — added testimonial markup to satisfy the social-proof check. CORRECTION (June): those quotes weren't from verified customers, so we deleted them. Lesson learned the hard way: only publish social proof you can prove — the FTC fines fake testimonials, and Google penalizes self-serving review markup. We'd rather lose 5 score points than your trust.

30 min+5 pts, reversed

Added quantifiable metrics

Apr 16 — product metrics in plain text headings. CORRECTION (June): an unverifiable usage figure ('1,000+ sites scanned') was replaced with repo-verifiable facts (33 free tools, 25+ signals, 7 platforms, 60s).

10 min+5 pts

Added customer mention trust line

Apr 16 — 'Trusted by founders, agencies, and growth teams building with Cursor, Claude, and Lovable' in crawlable HTML.

15 min+5 pts

Created /integrations page

Apr 16 — Full integrations page listing all 7 AI platforms and 7 infrastructure services with descriptions.

30 min+3 pts

Created /case-study page (this page)

Apr 16 — Living case study documenting the journey. EEAT signal + meta proof that the process works.

1 hr+2 pts

Created /about page with EEAT content

Apr 16 — Dedicated About page with AboutPage JSON-LD, ~800 words of crawlable EEAT content.

45 minincluded

Added FAQPage schema to homepage FAQ

Apr 16 — FAQ now renders with FAQPage JSON-LD and answers always present in HTML so AI crawlers extract them without JavaScript.

15 minincluded in +5

Added answer-first intros to all sections

Apr 16 — Dense fact-first paragraphs to Problem, HowItWorks, WhatYouGet, WhoItsFor.

30 min+4 pts

Shipped /docs/llms-txt technical reference

Apr 18 — Deep technical reference with TechArticle + BreadcrumbList + FAQPage JSON-LD. Started getting cited by ChatGPT within 7 days.

2 hrscitation surface

Shipped /docs/ai-crawlers + /docs/robots-txt-for-ai

May 6 — Two additional reference docs covering crawler IPs, user-agent strings, and robots.txt directives.

3 hrscitation surface

Shipped 5 new /docs reference pages

May 7 — llm-json spec, json-ld-for-aeo, per-llm-citation-behavior, ai-exposure-score, answer-engine-glossary. Each with full TechArticle + FAQPage JSON-LD.

4 hrscitation surface

Act 2Shipping citation-bait technical docs

A 91 score is hygiene. Hygiene is necessary but not sufficient — AI engines also need something to cite. The next move was to publish technical reference content in the exact format ChatGPT and Perplexity prefer to surface in answers: deep, comprehensive, with structured data.

Between April 18 and May 7, 2026, we shipped 8 technical reference docs at /docs/*:

Every doc shipped with three JSON-LD blocks: TechArticle (or with proficiencyLevel), BreadcrumbList, and where applicable FAQPage. Every doc was internally cross-linked at the footer. Every doc led with the answer in the first paragraph (answer-first content is the single highest-citation factor).

Total time investment: roughly 18 hours. Total citation surface area created: 8 deep, structured pages aimed precisely at how ChatGPT structures answers about technical AEO topics.

Act 3ChatGPT and Claude cite us — and bring users back

On April 25, 2026, the first ChatGPT-attributed signup landed.

We track this by writing firstReferrer, firstReferrerDomain, utmSource, and firstLandingPath to every UserLead record in our database. When a user signs up, we know exactly where they came from. The first one had:

firstReferrer:        https://chatgpt.com/
firstReferrerDomain:  chatgpt.com
utmSource:            chatgpt.com
firstLandingPath:     /?utm_source=chatgpt.com

ChatGPT cited our content in an answer. The user clicked through. They signed up. Eleven days later, on May 6, 2026, the second ChatGPT-attributed signup arrived — this one landing directly on /docs/llms-txt:

firstReferrer:        https://chatgpt.com/
firstReferrerDomain:  chatgpt.com
utmSource:            chatgpt.com
firstLandingPath:     /docs/llms-txt?utm_source=chatgpt.com

That one is the proof point. ChatGPT got asked something about llms.txt, cited our docs page in the answer, the user clicked the citation, landed on the page, and signed up. The exact outcome we promise customers — happening to us, demonstrably, with full attribution.

It kept going. On May 11 a third ChatGPT-attributed signup arrived — this time a marketer at an 11-50 person team, a different ICP segment than the first two developers, again with firstReferrer=https://chatgpt.com/.

Then, on June 13, 2026, the loop widened beyond a single engine. Our first Claude-attributed signup landed — and it didn't come through ChatGPT at all:

firstReferrer:        https://claude.ai/
firstReferrerDomain:  claude.ai
firstLandingPath:     /security
acquisitionSource:    ai

This user asked Claude something, Claude surfaced our /security tool, and they clicked straight through to it and ran an audit — no homepage, no Google, no detour. Two distinct AI engines, ChatGPT and Claude, are now independently citing us and sending real, attributed users. That's the difference between "a ChatGPT fluke" and "a repeatable channel."

The users who came through

All four users are anonymized below for privacy. Every one is real, in the database, and squarely in our target ICP — developers, marketers and agencies who needed AEO help. Three came through ChatGPT, one through Claude.

ChatGPT · User 1

April 25, 2026
Landed on: /
Referrer: https://chatgpt.com/
UTM: utm_source=chatgpt.com
Profile: Agency category

Activity: First-ever AI-attributed signup. Ran an audit on their domain and set up tracking for it.

ChatGPT · User 2

May 6, 2026
Landed on: /docs/llms-txt
Referrer: https://chatgpt.com/
UTM: utm_source=chatgpt.com
Profile: Solo developer · agency category

Activity: Landed directly on /docs/llms-txt from a ChatGPT answer. Our most active AI signup: ran 5 audits and 1 security scan, and created a project for tracking — all on day 1.

ChatGPT · User 3

May 11, 2026
Landed on: /
Referrer: https://chatgpt.com/
UTM: utm_source=chatgpt.com
Profile: Marketer · 11-50 person team · other category

Activity: Third ChatGPT referral, and a new ICP segment — a marketer rather than a developer. Signed up and ran an audit on their domain.

Claude · User 4

June 13, 2026
Landed on: /security
Referrer: https://claude.ai/
UTM: — (self-reported source: AI)
Profile: Came via Claude

Activity: Our first Claude-attributed signup. Landed directly on our /security scanner from a claude.ai conversation and ran an audit — proof a second AI engine is now surfacing us.

Every one of them skipped Google entirely. They asked an AI assistant — ChatGPT or Claude — the assistant cited us, and they came directly. The single reason they exist as users is that the AEO playbook worked.

Why this is the complete circle

Most product companies talk about AEO as a thing they do for customers. We can show it as a thing the platform does to itself:

  1. 1.The product measures how AI engines see and describe a website.
  2. 2.The audit on ourselves found everything broken (56/100). We fixed it (91/100).
  3. 3.The docs we wrote (the AEO playbook itself) became the citation surface ChatGPT could see.
  4. 4.ChatGPT and Claude cited those docs and tools when users asked AEO questions — exactly as the playbook says they would.
  5. 5.Users clicked through the ChatGPT and Claude citations, signed up, and started auditing their own sites — bringing them into the same flywheel we just demonstrated.

The platform is the proof. The proof is the platform.

How to replicate this for your product

This is the playbook in five lines:

  1. Audit yourself. Run your AI Exposure Score. Most sites land 50-70. Whatever the gap is, fix it before doing anything else.
  2. Ship the hygiene. robots.txt allows AI crawlers, llms.txt deployed, JSON-LD on every page (Organization + the relevant content type), FAQPage where you have Q&As. This alone gets you to ~85.
  3. Build citation surface area. Write technical reference docs about your category in the format AI engines cite — deep, comprehensive, with TechArticle + FAQPage JSON-LD. Cross-link them. Lead every page with the answer.
  4. Wait 1-2 weeks. AI engines re-crawl on a 7-14 day cycle. That's your indexing window. Don't evaluate before week 3.
  5. Track who comes through. Write firstReferrer, firstReferrerDomain, and utmSource on every signup. When ChatGPT, Perplexity, or Claude cites you, you'll see it in your data immediately.

That's exactly what we did. It worked on us. It will work on your product.

Current state — what is working, what is not

Passing (10 checks)

  • AI Crawl Access: 27/27 — all major AI crawlers explicitly allowed
  • Structured Data: 33/33 — SoftwareApplication, Organization, and FAQPage JSON-LD deployed
  • llms.txt, llm.json, and llms-full.txt all deployed at site root
  • 8 technical reference docs at /docs/* with TechArticle + BreadcrumbList + FAQPage JSON-LD
  • Sitemap present, robots.txt allows all AI crawlers, no WAF blocking
  • Product Clarity: 13/15 — clear H1, features described, pricing page crawlable
  • Trust & Social Proof: verifiable product metrics and trust line in crawlable HTML (early placeholder testimonials were removed in June — see the correction below)
  • EEAT: comparison content at /compare, /about page, /case-study page, /integrations page, social profiles linked
  • Answer-first content: dense intro paragraphs on Problem, HowItWorks, WhatYouGet, WhoItsFor sections
  • Confirmed AI citation traffic: 4 attributed signups — 3 from ChatGPT (Apr 25, May 6, May 11) with firstReferrer chatgpt.com, and 1 from Claude (Jun 13) with firstReferrer claude.ai

Still working on (2 items)

  • Text-to-HTML ratio still on the low side (React-heavy homepage) — targeting further improvement
  • Customer logos (image logos of named customers) — pending real customer permissions

What we are shipping next

Continue shipping new /docs reference pages monthly

4 hrs each · Expected: more citation surface

Ongoing

Track which docs ChatGPT cites most via firstLandingPath

5 min weekly · Expected: data → strategy

Ongoing

Add Bing Webmaster Tools sitemap (ChatGPT search uses Bing)

10 min · Expected: +10-15 ChatGPT pickups

This week

Further reduce text-to-HTML ratio (more SSR content)

2 hrs · Expected: +2-3 pts

This month

Collect permissioned customer logos

ongoing · Expected: +5 pts

When customers agree

Key learnings

  1. Hygiene gets you to 85. Citation surface gets you cited. A perfect technical AEO posture without quality reference content gives you visibility but not citations. The docs are what ChatGPT actually quotes.
  2. llms.txt + JSON-LD = instant 20+ point jump. The two highest-ROI changes any site can make. Five-minute, 12-minute fixes.
  3. Redesigns kill scores. Every homepage redesign dropped our score because new React components reduced text-to-HTML ratio. Ship content alongside code.
  4. Trust signals are the hardest to earn. Technical fixes take hours. Social proof takes weeks of real customer relationships. Worth investing in early.
  5. Score fluctuates and that is normal. We have been between 78 and 91. Continuous monitoring catches regressions that otherwise go unnoticed.
  6. Google impressions ≠ AI mentions. We had 870 Google impressions before our first AI citation. SEO and AEO are different games with different signals.
  7. Track firstReferrer or you won't see the wins. Without referrer tracking, all four AI signups — three from ChatGPT, one from Claude — would have looked like "direct traffic" — invisible.

FAQ

Did ChatGPT and Claude really cite your docs?

Yes. We track AI referral traffic by checking firstReferrer, firstReferrerDomain, and utmSource on every signup. Four confirmed users came in from AI assistants: three with firstReferrer https://chatgpt.com/ (landing on the homepage and on /docs/llms-txt) and one with firstReferrer https://claude.ai/ that landed directly on our /security tool — meaning ChatGPT and Claude surfaced our pages in their answers and the users clicked through.

Are you getting users from Claude too, not just ChatGPT?

Yes. On June 13, 2026 our first Claude-attributed signup arrived with firstReferrer https://claude.ai/, landing directly on our /security page from a Claude conversation and running an audit. ChatGPT was first (April 25), and Claude is now the second distinct AI engine sending us real, attributed users — confirmation the playbook generalizes beyond a single assistant.

How long did it take from publishing the docs to ChatGPT citing them?

Roughly 7-14 days from publish to first citation. We shipped /docs/llms-txt in mid-April 2026; the first ChatGPT-attributed signup arrived April 25. The second arrived May 6, the day we shipped 5 additional /docs reference pages.

What kinds of users came through ChatGPT and Claude?

All four are squarely in our ICP — developers, marketers and agencies evaluating AI visibility. Our most active ChatGPT signup ran 5 audits and a security scan and set up tracking on day one. The Claude signup landed directly on our /security tool and ran an audit. Most selected agency or developer roles during onboarding — the exact audience our content targets.

What did we do differently to get cited?

Three things. (1) Wrote technical reference docs at /docs/llms-txt, /docs/ai-crawlers, /docs/robots-txt-for-ai etc. — the exact format ChatGPT prefers to cite. (2) Shipped TechArticle + BreadcrumbList + FAQPage JSON-LD on every doc. (3) Hosted on a domain with strong AI crawler access (no GPTBot/ClaudeBot/PerplexityBot blocks) and a current llms.txt and llm.json.

How can my product earn the same outcome?

Run an AI Exposure Score audit, fix crawl access first, ship llms.txt and JSON-LD, then publish technical reference content in the format AI engines cite (deep, comprehensive, with FAQ schema). Track which pages ChatGPT cites by monitoring firstReferrer in your analytics.

Run the same playbook on your product

Free AI visibility audit in 60 seconds. Score, blockers, and auto-generated llms.txt + JSON-LD. The exact starting point we used on ourselves.

Share this article

Free newsletter

AI visibility tactics, every Tuesday

One email a week — what's moving the needle in ChatGPT, Perplexity, and Gemini. No fluff, no spam.

Join founders building visibility in AI search. Unsubscribe anytime.

AI

Track your visibility

See if ChatGPT recommends you — in 60s

Free 25-signal scan + auto-generated llms.txt, JSON-LD, and FAQ schema. No card required.

Run free audit

Used by 1,000+ teams to improve AI search visibility.