For a while I’ve been wondering how often AI tools were quoting my work in their answers. I knew it was happening. Someone would mention having seen one of my pieces in a ChatGPT response, or I’d land on a Perplexity answer that linked back to my site. But I had no real numbers. Was it ten times a month or two hundred?

Most authors I talk to are in a similar place. There’s a vague sense the citations are happening, but they don’t know how often nor if it’s helpful to let AI agents scrape their content.

So I built a small weekly automation that does the checking for me and writes the result straight onto the site.

Same prompt, same time every week, fully auto-generated. ✌️

This piece walks through what it puts on the page, and then, if you’re really curious about the technical details, what’s running behind it.

What you see on the site

Three things, in three places.

The first is a small line at the end of every essay that shows how often that particular article has been cited by AI tools. One small icon per AI, one count per icon. If a tool has never cited a particular article, its icon doesn’t show up on that page. Hover any icon and you see the prompt that triggered the citation when one is available.

Cited byOpenAI ChatGPT ChatGPT4PerplexityPerplexity4Google Gemini Gemini3CopilotCopilot2Google AI Google AI1

The second is a single line on the home page, the about page, and the press section. It’s the cumulative count of every time an AI tool has mentioned my name in their answer. This is a different signal from the per-article citations above: a brand-name mention isn’t the same as a URL citation, so the two counts don’t add up. Both are useful, both only ever go up.

Cited by AI54mentions across AI tools
  • Google Gemini Gemini16
  • PerplexityPerplexity13
  • OpenAI ChatGPT ChatGPT12
  • Google AI Google AI10
  • CopilotCopilot3
What is this?

The third one isn’t visible to readers at all. When a high-quality publication links to me for the first time (a real outlet rather than a random scraper), the automation drafts a small file into the press folder and asks me to take a look with a GitHub PR. I review the proposal, drop in the outlet’s logo, tighten the blurb, and decide whether the piece is worth featuring on the press page.

The first two ship to the live site as soon as I approve the routine’s weekly review. The third sits as a draft until I do the editorial work. Everything sits behind the same review.

How it works behind the scenes

If you’re curious about what’s doing the work, here’s the slightly nerdier walk-through. Skip ahead if it’s not your thing.

The data comes from a tool called Ahrefs Brand Radar. Ahrefs is best known as an SEO tool. Brand Radar is their newer product that watches the major AI chatbots and AI search surfaces and reports back when a configured brand or URL appears in their answers. Six surfaces today: ChatGPT, Perplexity, Gemini, Copilot, Google AI Overviews, and Google AI Mode. Unfortunately, Claude and Grok aren’t available yet, but the list keeps changing as the AI landscape evolves.

The routine that pulls the data is one entry on Claude Code’s /schedule feature. Claude Code is the AI coding tool I use to build most of what’s on this site. The /schedule feature lets a Claude Code session run on a recurring schedule, with the same prompt every time. Once a week, this particular session wakes up, pulls fresh data from Ahrefs, runs three small scripts in the repo, and opens a single review for me to look over.

Each run makes seven calls to Ahrefs in total. Three for the per-article citations, three more for the site-wide counter, and one for the press proposals. The split into three calls per data type is forced on us by the API: Brand Radar refuses to mix Google data sources with each other or with the chatbot sources in a single call. So the routine queries each one separately and stitches the results back together itself.

After the data lands, three small scripts in the repo do the file updates. One walks the citations into the right article. One updates the file behind the site-wide counter. One drafts the press proposals. The Claude Code routine itself is just orchestration: ask Ahrefs, reshape the data, hand each piece to the right script, then bundle everything into one review.

Before any work runs at all, the routine first checks whether it already ran in the last 24 hours. If it did, it exits straight away. That stops the scheduled run and a manual run from doubling up on the same data and burning the Ahrefs quota for nothing.

The two design decisions worth naming

The first is what happens when a number goes down.

Every count on this site is taken as an increment of the existing value.

The same thing applies to individual citations too. Once an article gains an AI citation, it stays in the records. Even if the AI response disappears from Ahrefs the following week, the entry on the article remains. Removing visible social proof retroactively because of an API blip would be misleading.

The second decision is what the routine doesn’t auto-merge. Two of the three signals are derived data with no editorial decision left to make. They could go straight to the live site without my review. They don’t.

Same review surface, single audit trail.

Opening the weekly review to check the changes is also a very good way for me to spot troubles. If I go all of a sudden from 200-mention per week to just 4-mention the following week, I’ll want to understand what happened.

Why the citations are also machine-readable

The visible cited-by line is what a reader sees. Underneath, the same data is also published in a structured format that AI systems and search engines can read directly without parsing the page. I discuss this in more detail in the Colophon.

This is part of how I think about GEO past the dashboard level. Every per-article citation is added to the article’s structured-data block as an entry that names the AI tool that cited it. The site-wide totals are added to the home page’s structured profile block as a per-tool counter. The visible HTML and the structured data carry the same numbers, just in two different formats for two different audiences.

This matters because the citations themselves are the thing AI systems are trying to make sense of. When ChatGPT cites an article and that article publishes a structured record back saying yes, ChatGPT cited me, here is the prompt that triggered it, the citation graph closes.

And it’s a virtuous cycle too: search engines that bias toward websites that are often cited by AI models will get the signal in a form that they can read without parsing the HTML.

I don’t know if this materially changes how often the next ChatGPT or Perplexity response will feature this site’s content. But the structured data costs nothing to generate, so why not make it easier for them to digest?

And while measuring AI’s citations and traffic is good, the more important question, of course, remains to understand what happens to the rest of the publishing business when AI becomes the primary distribution channel.

Where this is going next

The next thing I want is a per-article delta in the weekly review, so I can see which essays are picking up new citations week over week without scanning the whole diff. After that, a small build-time check that flags when the site-wide counter hasn’t refreshed in 14 days, in case the routine ever breaks silently.

If you want to set up the same kind of tracking on your own site, reach out to me and I’ll be happy to share the specs in more details. The Ahrefs piece costs whatever your Brand Radar plan costs; the calls reuse a report you’ve already configured. Everything else is plumbing.

If you’re working on AI citation tracking, GEO measurement, or anything in this neighbourhood, I’d love to hear what you’re seeing.

Find me on LinkedIn, X, or via the contact page.

Ask Simon

Bring your own AI

Pick a model, and your question opens there with this article as context. You use your plan; I never see the conversation.

The byline

Simon Beauloye

Twenty years building digital businesses globally. A decade at Google. An $80M+ media portfolio bootstrapped without VC. Now rebuilding with AI at the core, and writing about what works, what doesn't, and what nobody talks about.