The Shelf / Growth / AI Visibility Audit
AI Visibility Audit
Do you show up when buyers ask AI engines? Score mention, citation, share-of-voice.
The job: find out whether your brand gets named when a buyer asks an AI assistant instead of typing into Google. "Best tool for [who]." "[You] vs [competitor]." "Is [you] any good?" More of that traffic never reaches a results page anymore — the answer is synthesized, a few brands get named, one gets the citation and the click, and everyone else is invisible. This audit measures exactly where you land, per engine, with evidence.
Why the obvious approaches fail. Guessing is worthless — nobody can eyeball what six engines say about them. Classic SEO tools can't see this surface at all; they rank blue links, not the names inside a generated answer, and building more SEO pages is a different job. And asking ChatGPT the question once yourself is the most tempting trap: AI answers are stochastic, so the same prompt returns different brands and citations on consecutive calls. One query is a single sample of a noisy system dressed up as a finding.
What's on the tag:
- A frozen buyer-intent prompt set across four families — category/"best", problem-first, comparison, and brand-defense — fired N times per engine so every number is a rate with variance, not a lucky screenshot.
- Coverage of the engines that matter: OpenAI, Perplexity, Gemini, and Claude run automatically on your own keys; Google AI Overviews, AI Mode, and consumer Copilot are captured by SERP API or a human paste. Every engine's mode is labeled — nothing is silently skipped or scored zero.
- A scorecard that keeps mention and citation separate (named without a link is "known but not linked" — no click), plus share-of-voice against a named competitor set, sentiment with the exact sentence, and the third-party pages the engines keep quoting.
- A citability grade of your own pages, scored only from what's on them, and an action list that splits "fix your page" from "earn the placement on the source the engines actually cite."
Why not a free prompt? A free prompt gives you one run, one engine, and a number nobody logged. This runs many, across engines, and every figure traces to a logged prompt, response, and timestamp — it never invents a score, and it's honest about which engines are a true API and which are a proxy for the consumer product. Because the config and prompt set are frozen, the whole thing re-runs on a cadence and hands you a diff. That's what turns it from a one-off into a monitoring retainer.
Runs on the engine keys you already have. Nothing invented — the report says only what the queries returned.
FIELD REPORT real output, not a promise
From a documented run of this workflow: a GEO (AI-answer) visibility audit for Tasklet — a fictional project-management SaaS — across three AI answer engines (ChatGPT, Perplexity, Google AI Overview) in assisted-capture mode, against a frozen competitor set (Asana, Trello, Notion, ClickUp), at pilot scale (3 prompts, 2 of 4 intent families, N=1). Excerpted and trimmed to the strongest honest portions of the captured deliverable; the three real out-of-set vendors that surfaced unprompted are anonymized as [Competitor E/F/G].
Report header — provenance + standing caveats
- Brand: Tasklet (tasklet.io) | Named competitors: Asana, Trello, Notion, ClickUp
- Engines this run: ChatGPT — ASSISTED-CAPTURE (manual paste); Perplexity — ASSISTED-CAPTURE (manual paste — no API call happened this run, so it's labeled by actual provenance, not its usual AUTOMATED bucket); Google AI Overview — ASSISTED-CAPTURE (native). Gemini, Claude, Microsoft Copilot — NOT CAPTURED this run (no key, no paste supplied).
- Standing caveats: (1) no engine was queried via API this run — "model-grounded (API proxy)" labeling doesn't apply; all captures are manual pastes of consumer answers. (2) Every cell is N=1, well under the skill's 3-run minimum — every rate below is a single snapshot, not a validated frequency. (3) Only 3 prompts across 2 of 4 required intent families (category, comparison) — problem-first and brand-defense untested. This is a pilot/demo-scale sample, not a production audit.
Visibility scorecard — per-response log
| # | Prompt (family) | Engine | Mentioned? | Cited (linked)? | Competitors named | Sentiment (exact sentence) | Position |
|---|---|---|---|---|---|---|---|
| 1 | A – best PM app (category) | ChatGPT | No | No | Asana, Trello, Notion, ClickUp | — | — |
| 2 | A | Perplexity | Yes | Yes (tasklet.io) | Asana, Trello, ClickUp | Positive, secondary — "Some smaller teams also like Tasklet [tasklet.io] for its lightweight setup." | 4th-named / "also like" framing |
| 3 | A | Google AI Overview | No | No | Asana, [Competitor E], Trello, Notion | — | — |
| 4 | B – Tasklet vs Asana (comparison) | ChatGPT | Yes | No | Asana | Positive — "Tasklet is a lighter, cheaper tool aimed at small teams... For 5 people, Tasklet may be enough; Asana scales further." | First-named |
| 5 | B | Perplexity | Yes | Yes (tasklet.io) | Asana | Positive — "Tasklet [tasklet.io] targets small teams with a simpler UI and lower price; Asana [asana.com] is more powerful but heavier." | First-named |
| 6 | C – affordable Asana alternatives | ChatGPT | No | No | Trello, ClickUp, Notion, [Competitor F] | — | — |
| 7 | C | Google AI Overview | No | No | Trello, ClickUp, [Competitor G], Notion | — | — |
Bracketed competitors ([Competitor E/F/G] — three real PM tools, anonymized here) surfaced unprompted and are outside the frozen named set. Not captured: Perplexity on Prompt C; Gemini/Claude/Copilot on all prompts.
Aggregate rates (single-capture — read as a snapshot, not a frequency)
| Engine | Mode | Captured | Mention rate | Citation rate |
|---|---|---|---|---|
| ChatGPT | ASSISTED (manual paste) | 3/3 | 1/3 (33%) | 0/3 (0%) |
| Perplexity | ASSISTED (manual paste) | 2/3 | 2/2 (100%) | 2/2 (100%) |
| Google AI Overview | ASSISTED (native) | 2/3 | 0/2 (0%) | 0/2 (0%) |
| Gemini / Claude / Copilot | — | NOT CAPTURED | — | — |
Blended (7 responses): mentioned 3/7 (43%), cited 2/7 (29%) — a single-capture cross-engine snapshot, not a repeated-run frequency; do not treat as a trend point.
Share-of-voice (brand ÷ brand + named-competitor mentions, per prompt)
| Prompt | Tasklet | Asana | Trello | Notion | ClickUp | Tasklet SoV |
|---|---|---|---|---|---|---|
| A | 1 | 3 | 3 | 2 | 2 | 1/11 ≈ 9% |
| B | 2 | 2 | – | – | – | 2/4 = 50% |
| C | 0 | 0 | 2 | 2 | 2 | 0/6 = 0% |
| Blended | 3 | 5 | 5 | 4 | 4 | 3/21 ≈ 14% |
Competitor-dominance flags (≥60% competitor, ≤20% brand, same prompt)
- Prompt C — Trello/ClickUp/Notion each 100% (2/2); Tasklet 0%. Flag clears cleanly.
- Prompt A — Asana/Trello each 100% (3/3); Tasklet 33% (1/3) — just above the literal ≤20% bar, and that one appearance is a secondary "also like" mention. Directionally identical pattern, flagged as near-dominance rather than overstating a hard flag.
Sentiment + citation honesty
Positive: 3 (Perplexity ×2, ChatGPT ×1). Neutral/Negative: 0. No hallucinated or negative claims surfaced — but the brand-defense family (the one built to catch that) wasn't run this cycle, so this is absence-of-signal, not evidence of a clean bill of health. Only Perplexity returned links (all brand-owned: asana.com, trello.com, clickup.com, tasklet.io — no third-party listicle/review-site citations). ChatGPT and Google AI Overview show zero links for anyone — could be real product behavior or a lossy paste, so their 0% citation reading is flagged unconfirmed until the next capture explicitly checks for citation chips.
Citability grade — DEFERRED, not run
Tasklet has no live URL in this sample. Step 5 requires fetching and grading only what's on the actual page — a score here would be invented, which the skill explicitly forbids. No grade given. What the scorecard already implies without grading the page: Prompt B's ChatGPT response is a textbook "mentioned but not linked" case (favorable, zero citation) — sourced-stats/FAQ fixes are the standard first move for that pattern, to be confirmed against the real page once a URL is supplied.
Conversational summary
Headline: Tasklet is essentially invisible on both discovery-stage prompts (9% and 0% SoV, both near/clear dominance flags) and only competitive on its own-brand "vs Asana" comparison (50% SoV) — "the model only knows you when you name yourself," plus one classic "known but not linked" case (ChatGPT, Prompt B). Top 3 actions: go after the broad "best PM app" / "alternatives" prompts where competitors sweep 100%; build out Trello/ClickUp/Notion comparison pages to match the working Asana page; re-capture ChatGPT/Google AI Overview with explicit citation-chip logging. Open questions: add Gemini/Claude/Copilot next run? add the recurring out-of-set tool ([Competitor E]) to the named cohort? can we get a live tasklet.io URL to run the deferred citability grade?
SERVICE RECORD living gear — updated as the factory learns
v1.0.0 — 2026-07-17
First issue. Ported from the factory's internal skill: sanitized for general use, methodology intact, field report captured from a real run.
Every update ships free to owners — your locker always serves the latest version.
QUESTIONS
Isn't this just an SEO audit?›
No. Classic SEO fights for a blue link on a results page; this measures whether you're named and cited inside the AI's synthesized answer — a surface classic SEO tools can't see, and a different job from building SEO landing pages. Plenty of what moves AI visibility overlaps with fundamentals; the value here is measuring and prioritizing against that surface, honestly, not a claim of secret levers.
Do I need API keys?›
At least one of OpenAI, Perplexity, Gemini, or Anthropic runs the automated engines on your own keys — more keys means broader coverage. A SERP API key (SerpApi / DataForSEO) or a human paste captures Google AI Overviews, AI Mode, and consumer Copilot. Whatever you can't capture is reported 'not captured', never faked. Perplexity is the most representative of its own consumer product, so it's the highest-value single key.
Can it inflate or fabricate a score?›
No, by design. Every figure traces to a logged prompt, response, and timestamp. A non-queried engine is reported 'not captured this run', never scored zero, and a single run is treated as noise — mention is a frequency over N runs with the variance shown.
Why not just ask ChatGPT the question myself once?›
One prompt is one sample of a stochastic system — the same question returns different brands and citations on consecutive calls. This runs a frozen prompt set N times across multiple engines, scores citation separately from mention, and produces a diff you can re-run on a cadence. That's the part a single manual query can't give you.