Why doesn't ChatGPT recommend my company?
By Saroj Jha · August 3, 2026 · 8 min read
Ask an AI engine this and you get a visibility checklist: fix your Google Business Profile, get consistent NAP details, collect reviews, earn backlinks, add schema. All true, all worth doing, and none of it explains the actual failure.
The checklist ceiling
out of 100 — agent-readiness score
"Contact us" is a non-answer to a machine.
You can complete every item on that checklist and still score 52 out of 100 on whether an AI agent can do anything with you.
That is not a rhetorical number. It is what the agent-readiness engine returns when you pass every visibility and markup check and nothing else.
The reason the checklist tops out so low is that roughly half the score has nothing to do with being found. It is about what your business has decided to publish, and what it will let a stranger do without talking to a human. No amount of structured data fixes a pricing page that says "contact us."
None of this is specific to ChatGPT — the same gap applies to Perplexity, Claude and Google's AI Overviews. Here is the arithmetic, run on a real audit, with the output shown, using the same reproducible engine-output method as My LTV:CAC is bad. Which number do you actually fix? The same discipline applied to quarterly reporting metrics is in How do I know if marketing is working?
The visibility half of the problem
The engine scores fifteen checks across five dimensions. Eight of them are things the standard advice already covers — findability and machine-readability:
- Content renders without JavaScript — 14 points
- Structured data on key pages — 8
- llms.txt published — 5
- Clean heading hierarchy — 3
- Organization schema, consistent identity — 6
- AI crawlers permitted in robots.txt — 6
- No blanket bot-blocking at the edge — 4
- Key actions aren't CAPTCHA-walled — 6
That is 52 points. Every one of them is on every "get recommended by AI" listicle published in the last year, and they are all worth doing.
The other 48 points are different in kind:
- Pricing published and parseable — 12
- Self-serve path exists — 8
- Specs and features in structured form — 7
- Comparison facts available — 6
- Public API or documented integration — 6
- Claims sourced and verifiable — 5
- Facts consistent across surfaces — 4
None of those are visibility. Publishing your prices is a commercial decision. Offering a route that completes without a sales call is a go-to-market decision. Documenting an API is a roadmap decision. No amount of directory listings or review volume moves any of them.
What a perfect visibility score actually looks like
Pass all eight findability checks, fail everything else:
AAJ · AGENT READINESS ────────────────────────────────────────────────────────────────── Score █████░░░░░ 52/100 WEAK — An agent can read the site but can't reliably evaluate or transact. BY DIMENSION Machine-readable content 30/30 ██████████ Evaluable facts 0/25 ░░░░░░░░░░ Action surface 6/20 ███░░░░░░░ Identity & trust 6/15 ████░░░░░░ Agent access policy 10/10 ██████████
Two dimensions at full marks. The verdict is still WEAK, and the engine's one-line summary is the whole problem: an agent can read the site but can't reliably evaluate or transact.
Being found is the part everyone optimises. It is also the part that no longer differentiates anything, because it is the part that is easy.
The single most expensive line item is your pricing page
The largest deduction in the entire rubric is not schema, or reviews, or backlinks. It is twelve points for pricing a machine cannot parse. The engine's reasoning is blunt:
An agent comparing options cannot include you. 'Contact us' is a non-answer to a machine — it will return your competitor's number instead.
That is worth sitting with, because it explains the original question better than any visibility answer does. An agent asked to shortlist three vendors does not pause at a contact form. It does not email you. It returns the two vendors whose numbers it could read — and you are not rejected or ranked lower. You are simply absent.
Publishing prices moves the same site from 52 to . One change, no code, worth more than server-side rendering and structured data combined.
Our own site scores 75
We ran this on aajconsult.com. Prices are published, specs are in tables, facts are consistent across pages. Here is the result, unedited:
{
"score": 75,
"verdict": "PARTIAL",
"blocked": false,
"dimensions": [
{ "id": "readable", "name": "Machine-readable content", "earned": 30, "possible": 30 },
{ "id": "evaluable", "name": "Evaluable facts", "earned": 19, "possible": 25 },
{ "id": "actionable", "name": "Action surface", "earned": 6, "possible": 20 },
{ "id": "trust", "name": "Identity & trust", "earned": 10, "possible": 15 },
{ "id": "access", "name": "Agent access policy", "earned": 10, "possible": 10 }
],
"gaps": [
{ "id": "selfServe", "label": "Self-serve path exists", "points": 8 },
{ "id": "comparisonData", "label": "Comparison facts available", "points": 6 },
{ "id": "api", "label": "Public API or documented integration","points": 6 },
{ "id": "claimsSourced", "label": "Claims are sourced and verifiable", "points": 5 }
]
}Action surface: 6 out of 20. That is the number that matters, and it is the worst score on our own site.
Every one of the four remaining gaps is a business-model decision. A consultancy selling sprints has no self-serve path because the product is a person's attention. There is no public API because there is nothing to call. Those are defensible choices — but they are choices, and the engine correctly refuses to let markup compensate for them.
The closing summary is the part worth printing out:
WHAT AN AGENT CAN DO TODAY Read your content yes Compare you on price yes Take an action no — every path needs a human Reach you at all yes
Three out of four. The one that fails is the one where revenue happens.
The comparison gets built whether you supply the facts or not
The six-point deduction for missing comparison data carries the sharpest line in the rubric:
Agents build comparisons whether or not you supply the facts. Absent yours, they use a competitor's framing.
This inverts the usual instinct. The conventional reason not to publish comparison pages is that you would rather not draw attention to alternatives. In an agent-mediated market that stops working, because the comparison happens regardless — assembled from whatever the agent can find, which will be your competitor's page about you, not your page about you.
The same logic applies to unsourced claims. An agent that cannot verify "3.2× pipeline growth" does not simply believe it less. It discounts it against a source it trusts more, and that source is rarely you. This is also why review volume and backlinks help less than the checklist implies: they establish that you exist, not what you cost or what you do.
Run it on your own site
Two commands, no configuration, no account:
npx skills add sarojkjha/aaj-marketing-skills --skill agent-readiness-audit node .agents/skills/agent-readiness-audit/resources/agent-readiness.js --help
Then add one flag for each check you pass. To reproduce the 52-point visibility-only score above:
node .agents/skills/agent-readiness-audit/resources/agent-readiness.js \ --ssr --schema --llms-txt --clean-headings \ --org-schema --allows-ai-crawlers --no-agent-blocking --no-captcha
Add --json for machine-readable output, or --all to see what a perfect score looks like.
One caveat the engine states about itself: this is a self-assessment. Verify each answer against the live site — view-source for rendering, robots.txt for access, and an actual agent attempt for the action surface. To measure the reach, read and understand layers on a live URL instead of self-reporting them, use the SEO & GEO Readiness Scorer.
What to do with the result
If you scored in the fifties with good visibility, you do not have a discoverability problem. You have a publishing problem, and the order is:
- Publish prices. Twelve points, and the only gap that removes you from comparisons entirely rather than ranking you lower within them.
- Structure your specs. Seven points. Tables with consistent labels. Say what it does, not how transformative it is.
- Open one self-serve path. Eight points. A trial, a purchase, or a booking that completes without a human.
- Publish your own comparison facts. Six points, including what you don't do.
The first two are copy changes. The third is a real decision, and for some businesses the right answer is to accept the deduction knowingly — which is a different thing from not knowing it exists. Our own published rates, including the AI visibility work, are on the pricing page — which is the first fix in this list, applied to ourselves.
Saroj Jha runs AAJ, a marketing consultancy for Seed–Series B startups. The agent-readiness-audit engine is part of AAJ's open skills catalog. Every figure in this post is real output, reproducible with the commands above.
Sources & Further Reading
The insights in this article draw on research and thinking from these reputable sources:
Anthropic — Agent Skills (open standard)
The open skill format the agent-readiness engine ships in, including how a skill's resources are installed and run locally.
https://www.anthropic.com/news/skills →
Anthropic — Model Context Protocol specification
The open protocol agents use to call tools and read structured data — the mechanism behind 'can an agent actually do something with you'.
https://modelcontextprotocol.io/specification/latest →
schema.org — Offer
The vocabulary for publishing a machine-parseable price, currency and unit, which is the single largest deduction in the rubric.
https://schema.org/Offer →
schema.org — Product
Reference for putting specifications, features and limits into structured form rather than prose.
https://schema.org/Product →
Google Search Central — AI features and your website
Google's own documentation on how AI Overviews and AI Mode use your pages, and what controls you have.
https://developers.google.com/search/docs/appearance/ai-features →
Google Search Central — Structured data general guidelines
Requirements for structured data eligibility, including that marked-up facts must match visible page content.
https://developers.google.com/search/docs/appearance/structured-data/sd-policies →
llmstxt.org — the /llms.txt proposal
The proposed convention for publishing a machine-readable site summary, worth five points in the rubric.
https://llmstxt.org/ →
AAJ — SEO & GEO Readiness Scorer
Browser tool that measures the reach, read and understand layers on a live URL, with the methodology published alongside it.
https://aajconsult.com/tools/seo-geo-readiness-scorer →
AAJ Marketing Skills — agent-readiness-audit engine (MIT)
The open-source, runnable engine that produced the 52, 64 and 75 scores quoted in this post.
https://skills.aajconsult.com →
AAJ — My LTV:CAC is bad. Which number do you actually fix?
Companion post applying the same reproducible engine-output method to unit economics.
https://aajconsult.com/blog/ltv-cac-which-number-to-fix →
More in AI Search & Agent Readiness
Part of the AI Search & Agent Readiness hub - see all 13 resources on this topic.
- AI agent skill: Agent Readiness Audit
- Free tool: Agent Readiness Quick Check
- Free tool: AI Answer Share-of-Voice Tracker
- Article: How AI Agents Are Changing Marketing: What Small Businesses Must Do to Stay Discoverable in 2026