Skill 32 / 47 · AEO, LLM SEO, GEO
Best-of list inclusion
Get a fair, accurate place on the "best X" and comparison articles that AI engines quote when buyers ask for recommendations.
Romeo’s ruleAn editor owes you accuracy, not a place on the list, so ask for the first and earn the second.
- You need
- Your category and competitors
- You get
- A target list of cited articles, a pitch kit, and an outreach log.
- File
best-of-list-inclusion/SKILL.md· 205 lines- Works with
- Claude Code, Codex, Claude.ai, ChatGPT · DataForSEO (optional)
- License
- MIT · free · v3.0.0
Install this skill
Or install all 47curl -fsSL --create-dirs -o ~/.claude/skills/best-of-list-inclusion/SKILL.md https://romeoseo.com/skills/best-of-list-inclusion/SKILL.mdThen ask Claude to “use the best-of-list-inclusion skill”, or type /best-of-list-inclusion.
curl -fsSL --create-dirs -o .claude/skills/best-of-list-inclusion/SKILL.md https://romeoseo.com/skills/best-of-list-inclusion/SKILL.mdRun it in your project folder. Commit .claude/skills and everyone on the repo gets the skill.
curl -fsSL --create-dirs -o ~/.codex/skills/best-of-list-inclusion/SKILL.md https://romeoseo.com/skills/best-of-list-inclusion/SKILL.mdRestart Codex, then ask it to use the best-of-list-inclusion skill.
In Claude.ai, open your settings, find Skills, and upload the ZIP. It works in the Claude desktop app too.
Paste it into a chat, attach the file, or add it to a ChatGPT project’s instructions. Then give it the first task below.
Use it when
- The citation-source map from
ai-search-visibilityshows the same few listicles cited across money prompts, and the brand is missing from them or described wrongly. - ChatGPT, Perplexity or AI Overviews recommend competitors for "best [category] for [segment]" and the cited sources are other people's lists, not vendor sites.
- A widely cited list shows the brand with an old price, a dead plan, the wrong category or a product it no longer sells.
- A launch, new segment or new integration needs to appear in the roundups buyers and engines already read.
What your agent needs
- The citation-source map or the raw prompt runs behind it: prompt, engine, run date and every cited URL. Without it, run at least 10 money prompts ("best X", "best X for [segment]", "alternatives to [competitor]", "[A] vs [B]") on the 2 or 3 engines the audience uses, 2 to 3 times each, before choosing targets.
- Brand facts: one-line description, category, current plans and prices with the date checked, free plan or free trial, main limits, and what the product does not do.
- The segment the brand is genuinely best for, with a reason a stranger could verify.
- Any commercial relationships already in place: affiliate programme, paid listings, partner deals.
- The named person who will send outreach and answer replies. Pitches come from a real human, not "the team".
No tools? Run the money prompts by hand in each engine's free tier in a private or logged-out window, open every cited link and paste it into a spreadsheet with prompt, engine and date. Search Google for "best [category]" and "best [category] for [segment]" in a private window and add the top 10 list articles. Read each page in the browser for position, wording and disclosures; find contacts from author bios, the publication's contact or corrections page, or a "suggest a product" form. The spreadsheet doubles as the outreach log.
Not the right skill if…
- Building the prompt set, running the baseline and making the citation-source map →
ai-search-visibility. - Writing your own "best X", "X vs Y" or "alternatives" page →
comparison-page-writer. - Deciding whether to pay for a sponsored post, guest post or paid "featured" slot →
sponsored-placement-vetting. - Wrong facts that trace back to your own site, Wikipedia or a data aggregator →
ai-brand-facts; review platforms such as G2 or Trustpilot →reviews-for-ai-answers.
Give it a first task
Install it. Then say this.
Use the best-of-list-inclusion skill for <your brand>. Find the "best X" and comparison articles AI tools cite for my category, rank them by value, and draft the pitch for each.
Swap the parts in angle brackets for your own. The skill tells the agent to ask for anything else it needs before it starts.
The whole file
Read it before you run it.
# Get onto the best-of lists AI engines cite
Find the third-party "best X", comparison and review articles that AI engines cite when buyers ask the brand's money prompts, record where the brand stands on each one, sort out which can be influenced at all, and earn a fair, accurate place on the ones that can: with a factual pitch, a correction request, or a disclosed commercial arrangement the user chooses. You hand back a scored target list with current positions, a pitch kit, draft pitches and corrections ready for a human to send, an outreach log, and a monthly re-test plan.
> **Romeo's rule:** An editor owes you accuracy, not a place on the list, so ask for the first and earn the second.
## Use this when
- The citation-source map from `ai-search-visibility` shows the same few listicles cited across money prompts, and the brand is missing from them or described wrongly.
- ChatGPT, Perplexity or AI Overviews recommend competitors for "best [category] for [segment]" and the cited sources are other people's lists, not vendor sites.
- A widely cited list shows the brand with an old price, a dead plan, the wrong category or a product it no longer sells.
- A launch, new segment or new integration needs to appear in the roundups buyers and engines already read.
## Don't use this for
- Building the prompt set, running the baseline and making the citation-source map → `ai-search-visibility`.
- Writing your own "best X", "X vs Y" or "alternatives" page → `comparison-page-writer`.
- Deciding whether to pay for a sponsored post, guest post or paid "featured" slot → `sponsored-placement-vetting`.
- Wrong facts that trace back to your own site, Wikipedia or a data aggregator → `ai-brand-facts`; review platforms such as G2 or Trustpilot → `reviews-for-ai-answers`.
## What you need
### Required
- The citation-source map or the raw prompt runs behind it: prompt, engine, run date and every cited URL. Without it, run at least 10 money prompts ("best X", "best X for [segment]", "alternatives to [competitor]", "[A] vs [B]") on the 2 or 3 engines the audience uses, 2 to 3 times each, before choosing targets.
- Brand facts: one-line description, category, current plans and prices with the date checked, free plan or free trial, main limits, and what the product does not do.
- The segment the brand is genuinely best for, with a reason a stranger could verify.
- Any commercial relationships already in place: affiliate programme, paid listings, partner deals.
- The named person who will send outreach and answer replies. Pitches come from a real human, not "the team".
### Helpful
- Proof: third-party ratings with review counts and dates, customer case studies with permission, original data with method and sample size, real awards.
- A screenshot library of the current product, logo files and a press or media page you can link to.
- Past outreach history (who already said no, who added you before) so nobody is pitched twice by accident.
- An AI visibility tracker or backlink-tool export of cited pages (examples: Ahrefs Brand Radar, Semrush, Profound, Peec AI). Optional; spot-check it by hand.
### No tools?
Run the money prompts by hand in each engine's free tier in a private or logged-out window, open every cited link and paste it into a spreadsheet with prompt, engine and date. Search Google for "best [category]" and "best [category] for [segment]" in a private window and add the top 10 list articles. Read each page in the browser for position, wording and disclosures; find contacts from author bios, the publication's contact or corrections page, or a "suggest a product" form. The spreadsheet doubles as the outreach log.
## Ground rules
- Work the lists engines already cite. A list nobody cites is a backlink project, not an AEO one. Rank targets by how often and how widely they're cited, not by domain authority: in Ahrefs' December 2025 study of 750 prompts, "best X" lists were 43.8% of cited page types and 35% of cited lists sat on low-authority sites (vendor data, directional).
- Position on a list matters. The same Ahrefs study found higher list position goes with being recommended in the answer. Record position for every target, but ask for the slot you honestly fit ("best for agencies under 10 staff"), never for first place.
- Most top citations can't be pitched. About 67% of the top 1,000 ChatGPT citations in an Ahrefs study (October 2025) were pages outreach can't move: Wikipedia, homepages, educational and reference pages. Classify before you write a single email.
- Accuracy comes before inclusion. A correction with a source link is easy for an editor to say yes to, and it removes a wrong fact the engines may be repeating from that page.
- Make the author's job small: facts they can verify in five minutes, links to your own pricing page, current screenshots, a free account. No adjectives, no attachments-only pitches, no press-release prose.
- Money changes the rules. Paid inclusion is acceptable only when the page discloses it next to the listing and the links carry `rel="sponsored"`. Google's spam policies treat paid links without `sponsored` or `nofollow` as link spam and list "attempting to manipulate generative AI responses in Google Search" as spam. In the US, the FTC's Endorsement Guides (16 CFR Part 255) treat payment, free product and affiliate commission as material connections that must be disclosed, and the advertiser can be liable too. Elsewhere, check local law.
- One person, one tailored pitch, one follow-up. No mail-merge blasts, automated sequences, fake personas, guessed or scraped email addresses, or offers of money for a better verdict.
- Your own "best X" page is not a shortcut. Engines do cite self-promotional listicles (about 10% of AI citations in Peec AI's March 2026 study of 232,000 citations, vendor data), but readers and editors discount a list where the author ranks itself first. Honest pages only, through `comparison-page-writer`.
- AI answers change run to run. Judge progress by mention rates over repeated runs, and expect a lag between a list changing and engines re-reading it.
## Steps
1. **Pull the candidate pages from the source map.** Keep the money prompts only (best, best-for-segment, alternatives, vs, "is [brand] worth it").
- List every cited URL that is a list, comparison, roundup or review article. Normalise URLs: strip `utm_source=chatgpt.com` and other tracking parameters and `#:~:text=` fragments, follow redirects, and merge duplicates under the canonical URL.
- Keep Google AI Overviews and AI Mode as separate engines: they share only about 13.7% of citations (Ahrefs, December 2025).
- Add the top 10 Google results for the 3 to 5 head "best [category]" queries as a second tier; cited AI Overview sources often rank there too (`inferred`).
2. **Score each target.** Two plain counts, no weighted formula:
- Citation frequency: how many runs cited the page, also shown as a rate (runs citing it ÷ all money-prompt runs on that engine).
- Prompt reach: how many distinct money prompts it was cited for, and on how many engines.
- Sort by prompt reach, then citation frequency. Tier A: cited for 3+ money prompts or on 2+ engines. Tier B: cited for 2 prompts, or repeatedly on one engine. Tier C: cited once; watch, don't pitch yet.
3. **Record where the brand stands on each page.** Open every Tier A and B page and note:
- Listed or not; position as "k of N"; any segment label ("best for freelancers"); whether the name, category, price, plan names and key features are correct today. Quote wrong lines word for word.
- Which competitors appear, their positions, and who holds the slot you would honestly fit.
- Last updated date, named author, stated criteria or testing method, disclosure wording, and link types: `rel="sponsored"` or `nofollow`, redirect paths such as `/go/` or `/recommends/`, affiliate-network domains or `ref=` parameters.
4. **Classify every target.** Exactly one class each:
- **Editorial (pitchable):** a publication or independent writer with a named author, stated criteria, real updates and no vendor ownership. Action: pitch or correction. Creator review videos work the same way (→ `youtube-for-ai-answers`).
- **Affiliate:** monetised mainly by affiliate links. Often pitchable, but inclusion may depend on having an affiliate programme. Joining one is a commercial decision for the user; if they do, the publisher must disclose it and mark links `sponsored` or `nofollow`.
- **Competitor self-promo (skip):** a vendor in the category ranking itself first. Don't pitch. Send a correction only if it states something false about the brand, and route anything that looks defamatory to the user.
- **User-generated:** Reddit and forum threads, Q&A answers, review-platform category pages, launch sites. Not pitchable; route threads to `reddit-quora-answers` and review platforms to `reviews-for-ai-answers`.
- **Reference (not influenceable):** Wikipedia, government and standards bodies, educational pages, vendor homepages and docs. No outreach; factual errors go to `ai-brand-facts` (Wikipedia only through its conflict-of-interest process).
5. **Choose the ask for each pitchable target.**
- Not listed and a genuine fit → inclusion pitch for a specific segment. `Fix next`, or `Fix now` for Tier A.
- Listed with wrong facts → correction request. `Fix now` when the wrong fact also appears in AI answers.
- Listed, accurate, low position → send only news the author can use (new plan, new proof) and let them decide placement. `Worth doing`.
- Still cited but over a year old → offer a short update pack. Cited pages skew fresher than ordinary search results (Ahrefs, July 2025), so a refresh helps the author as much as you.
- Not a fit (a "best free X" list and no free plan, wrong segment, enterprise list for a solo tool) → `Leave it`, and say why.
- Pay-to-list or "featured spot" offers → pause and route to `sponsored-placement-vetting`; never accept undisclosed.
6. **Build the pitch kit once, then tailor it.** Host it at a stable URL, dated "facts as of [date]".
- Fact sheet: exact product name, one-line description, category, who it's for, plans and prices with currency, billing basis and the pricing-page link, free plan vs free trial in your own exact wording, platforms, integrations, limits, founding year and location, and a named press contact.
- The segment you're best for: one sentence plus the evidence, and who should pick something else. An honest "not for" line makes the rest of the pitch believable.
- Proof: third-party ratings with count and check date, a case study with numbers and permission, original data with method. Nothing unverifiable.
- Free account or sample: full access for long enough to test properly, no conditions on coverage or verdict. Free product is a material connection under FTC guidance, so expect and welcome the author disclosing it.
- Screenshots: 3 to 6 current captures of real screens the criteria care about, captioned and dated, plus logos, with permission to use.
7. **Draft the pitches and corrections; a human sends them.** Never send on the user's behalf without their approval of each message.
- Inclusion pitch, 120 to 180 words: who is writing and their role; the specific article by title; the gap ("your list covers A and B for agencies; neither does X"); the segment you'd fit and why; 2 or 3 facts with links; the free account offer; one honest limitation. No flattery openers, no request for a position, no attachments.
- Correction request: quote the wrong line, give the correct fact with a source link and check date, offer a current screenshot, and keep it to one fact per email where possible.
- Write each pitch for its page. If two pitches could swap recipients unnoticed, rewrite both.
- Time it: check the page's update history (its changelog or the Internet Archive's Wayback Machine) and pitch a few weeks before its usual refresh.
- One follow-up after 7 to 10 days, then stop. Don't re-pitch someone who declined for about six months unless the facts change materially.
- Use published contact routes only. Cold email rules vary by country (for example, EU GDPR and UK PECR); check them for the sender's market.
8. **Handle paid and affiliate placements honestly.** If the user chooses to pay or join an affiliate programme:
- Disclosure visible on the page near the listing, in plain words; links marked `rel="sponsored"` (or `nofollow`).
- The editor keeps control of the verdict. A bought "best overall" label, an undisclosed fee, or a fee tied to rank position is out.
- Keep a record of what was paid, to whom, for which page, and the disclosure as published.
9. **Give honest advice on the brand's own lists.** If the user wants their own "best X" page:
- One honest page per real buyer question, the market leader included, a genuine drawback for the brand, disclosure at the top, and the brand placed where it actually fits. Write it with `comparison-page-writer`.
- No templates that slot the brand in first place across dozens of "best X for Y" pages. Mass-produced pages like that risk being treated as scaled content abuse under Google's spam policies, and readers notice.
- Often a better first move: an honest "[brand] vs [leader]" page and an "alternatives to [leader]" page.
10. **Keep the outreach log and re-test monthly.**
- Log per target: URL, class, tier, citation frequency and prompt reach, position before, ask type, contact route, date sent, follow-up date, reply, outcome (added, corrected, declined, no reply), position after, date the page changed, and any payment, commission or free account.
- Each month, re-check every Tier A and B page and re-run the money prompts with the same method (same engines, same country, 2 to 3 runs each). Report mention rate per prompt group next to the list changes.
- Credit a list change only when the page changed first and the mention rate rose across two or more monthly runs. Otherwise report "no measurable change yet".
## Run it with DataForSEO (optional)
Replaces the manual hunt for cited lists in steps 1 and 2 with database counts. Connect through the official MCP server (`dataforseo-mcp-server`, calling endpoints through its `api_request` tool) or plain HTTPS with Basic auth.
- **Most-cited pages for a category:** `/v3/ai_optimization/llm_mentions/top_mentioned_pages/live`.
- One keyword entity per call: `target: [{"keyword": "best payroll software", "search_filter": "include", "search_scope": ["question"], "match_type": "partial_match"}]`.
- Also send `platform` (`chat_gpt`, or `google` for AI Overviews), `location_code: 2840`, `language_code: "en"`, `limit: 50`, `internal_list_limit: 5`.
- Read `items[].page`, `items[].total.mentions`, `items[].total.ai_search_volume` and the per-platform split in `items[].platform[]`. Mentions stand in for citation frequency; run it per keyword to get prompt reach.
- **Most-cited publishers:** `/v3/ai_optimization/llm_mentions/top_mentioned_domains/live` with the same target, to spot publishers with several cited lists.
- **Google AI Overview sources:** `/v3/serp/google/organic/task_post` then `task_get/advanced`, with `load_async_ai_overview: true`, for the "best [category]" keywords.
- Read `ai_overview.references[]` (`domain`, `url`, `title`, `text`), plus the organic top 10 for list articles that rank.
- **Limits:** LLM Mentions covers only ChatGPT (US, English) and Google AI Overviews, from a pre-collected database with monthly history since August 2025.
- Perplexity, Copilot, Gemini and AI Mode still need manual runs or other endpoints (`ai-search-visibility`).
- Database counts show where a category's citations go; the user's own prompt runs still decide the targets.
- **Example cost at published prices:** 5 keywords × `top_mentioned_pages` at `limit: 50` ≈ 5 × ($0.10 + $0.05) = $0.75; the same 5 × `top_mentioned_domains` at `limit: 20` ≈ $0.60; AI Overview SERPs for 20 keywords on the Standard queue: a few cents plus the AI Overview surcharge (check current prices). About $1.40 in all.
- **Guardrails:**
- Estimate the cost and get the user's OK before any paid call; default cap $2 per run.
- Check `money.balance` with the free `GET /v3/appendix/user_data` first.
- Always set `limit`. Use the Standard queue (`task_post`, up to 100 tasks per POST) for SERP batches.
- Cache results: SERPs 7 days, LLM Mentions 30 days. Test new code on `https://sandbox.dataforseo.com/v3/` first.
- Never print or save the API password in outputs or files.
## What to hand back
Fill in this template. Every action gets a priority label and an evidence label with confidence. Drafts are drafts: nothing is sent.
```markdown
# Best-of list inclusion: [brand], [date]
**What I found:** [one line, e.g. "7 lists drive most money-prompt citations; we're on 2, in positions 6 and 9."]
**What matters most:** [one line, e.g. "The most-cited list, on 3 engines, shows our 2024 pricing."]
**What to do first:** [one line]
## Method
- Source map: [from ai-search-visibility on date / built here]; money prompts: [N]; engines: [list]; runs per prompt: [n]; country/language: [x]
## Targets, in order
| Tier | Page | Class | Cited (runs / prompts / engines) | Our position | Ask | Priority |
|---|---|---|---|---|---|---|
## Corrections to request
- [URL]: says "[quoted line]"; correct: [fact] (source: [URL], checked [date]). [Fix now] ([seen], high)
## Pitch kit
- Fact sheet: [URL or inline, facts as of date]
- Best-for segment: [sentence + evidence]; not for: [sentence]
- Proof: [items with sources]; free account or sample: [terms]; screenshots: [list, dated]
## Draft pitches and corrections (not sent)
### [Page title], to [contact route]
[draft]
## Paid or affiliate offers to decide
- [publisher]: [offer]; disclosure: [yes/no]; link marking: [sponsored/nofollow/none]; recommendation: [action] → `sponsored-placement-vetting`
## Our own lists
- [advice, or "none planned"]
## Leave it
- [target, and why it isn't worth pitching]
## Outreach log
| Page | Class | Tier | Position before | Ask | Sent | Follow-up | Outcome | Position after |
|---|---|---|---|---|---|---|---|---|
## Re-test plan
- Next run [date]: same [N] prompts, [engines], [runs] each; recheck Tier A and B pages; success = [metric]
## What I could not check
- [page, engine or fact not checked, and what would verify it]
```
## Stop and flag if
- The user wants to pay for a place without on-page disclosure, buy "best overall" or first position, have paid links left unmarked, or offer reviewers money for a positive verdict.
- The plan involves mass or automated outreach, fake personas, scraped personal email addresses, or anything aimed at manipulating AI answers rather than informing editors.
- A list makes a claim about the brand that could be defamatory or touches safety, security or legal matters. Send it to the user (and their lawyer), not into a correction email.
- The category is regulated (finance, health, legal, insurance) and pitch claims haven't had compliance review.
- The source map rests on single runs or fewer than 10 money prompts. Present targets as provisional.
- Unacceptable output: invented citation counts or positions, contact addresses you guessed, pitch facts missing from the fact sheet, or any message sent without the user's approval.
## Next step
- Run `comparison-page-writer` for any honest "best X", "vs" or "alternatives" page this work showed the brand needs, with the target list as evidence of what buyers compare.
- Run `reviews-for-ai-answers` for the user-generated targets that are review platforms.
- Re-run `ai-search-visibility` monthly with the same prompt set to measure the change.
Part of the free RomeoSEO skill library: https://romeoseo.com/skills
After this
Where the output goes next.
- ContentComparison page writerWrite "best X", "X vs Y", and "X alternatives" pages that give a straight verdict and stay honest about every option.
- AEO, LLM SEO, GEOReviews for AI answersBuild an honest review presence on the platforms AI engines check before recommending a business in your category.
- AEO, LLM SEO, GEOAI search visibilityFind out whether ChatGPT, Google AI Overviews, Perplexity, and Copilot mention you, and what to change so they do.
Install everything with: git clone --depth 1 https://github.com/RomeoSEO/seo-skills.git && bash seo-skills/install.sh