DEV Community

Axel Freeman
Axel Freeman

Posted on Originally published at axelfreeman.com

Nobody is going to find you in an AI answer by accident

Nobody is going to find you in an AI answer by accident

I run the marketing for a small number of B2B products. Last quarter I did something that most people who sell marketing services will never do: I counted.

Here is what the count looked like on my own site, this week:

  • 74 pages in the sitemap, all with a canonical URL and structured data.
  • 18,495 bytes of llms.txt — a plain-text file that tells an AI crawler which pages matter, what they contain, and what the numbers are.
  • 73 articles published on dev.to, 39 of them with a canonical pointing back to a page I control.
  • IndexNow pings on every page I publish, plus Wayback snapshots so there is a dated public record of each version.
  • Traffic from AI answer engines to the sales page: 7 sessions. Zero of them turned into a conversation.

That last line is the honest one, and it is the reason I am writing this instead of a case study with a hockey stick in it.

The uncomfortable arithmetic of "being cited by AI"

There is a genre of post — I have written a few — that reads: optimize for AI, add Schema, write FAQ blocks, publish llms.txt, and the citations will come. All of that is true and all of it is necessary. None of it is sufficient, and the reason is arithmetic.

When someone asks ChatGPT or Perplexity "who can run outbound for my SaaS", the model does not return a list of 10 links. It returns one answer, with two or three citations. That is a market with, generously, three seats. Compare that to a Google SERP where ten results each get some share of attention.

So AEO is not a traffic channel you switch on. It is a shortlist you either make or don't, and making it takes two things your competitors are also doing:

  1. content structured so a model can lift a whole answer out of it, and
  2. enough third-party mentions that the model believes you exist.

The second one is the part people skip. A model does not trust your About page that you are good at outbound. It trusts that other people, in public, said so.

What actually moved the needle for us

Four things, in the order they were worth doing.

1. One page per question, answered in the first paragraph. We had pages that talked about a service for 800 words before stating what it costs. AI crawlers lift the first confident answer-shaped block they find. Now the price, the timeline, and the definition are in the first 120 words. Human readers also stopped bouncing, which was a nice side effect.

2. llms.txt — with numbers in it. Most llms.txt files are a list of links. That is a sitemap with a different name. Ours carries the facts a model would otherwise have to guess: what the service is, what it costs, what the measured results were, which pages are the canonical source. curl https://axelfreeman.com/llms.txt shows exactly what we feed it.

3. Structured data on every page, not just the landing page. Service, FAQPage, Offer. Written by hand into the HTML, not injected by a plugin at runtime, because crawlers that fetch the raw HTML are the ones we care about.

4. Publishing where the model already reads. This is the dev.to collection you are looking at. Every article here exists so that a page somewhere else on the internet says something specific and checkable about the work — with a canonical link back to the page that has the offer on it.

The part AEO does not solve

AEO answers the question: when someone is already looking for what I sell, does the machine name me?

It does nothing for the question: does anyone know to look?

That gap is filled by outbound — and outbound is not "buy a list and send 5,000 emails". A live check of our own numbers: of the last batch of 4,400 company domains we verified, every single row had to pass a live HTTP check before it entered the database, and the contact had to be visible in the company's own public post. Rows without a company domain in the source get dropped, not guessed.

That constraint is the whole product. A list where 30% of the rows are invented is not a list, it is a reputation event waiting to happen.

If you want both halves done

I do this as a service: the AEO layer (structured pages, llms.txt, Schema, monitoring) and the outbound layer (verified lists, sending infrastructure, replies that are not templates). Entry point is a one-off Sprint at $900 — 30 days, one ICP, measurable outcome. The retainer version, Engine at $1,900/month, is for teams that want the machine running continuously.

Full scope, deliverables, and what you get in writing: axelfreeman.com/marketing-engineer.html

If you would rather check the AEO side first, everything I just described is public and free to inspect:

The one-line version

Structured content buys you a seat on the AI shortlist. Outreach is how you get invited to the meeting. Doing one without the other is a very expensive way to be quiet.

Top comments (0)