Answer engine optimizer
Skill siddiqss/semantic-seo-suite/skills/answer-engine-optimizer
Optimize a brand's mapped content to get cited by AI answer engines — Google AI Overviews, ChatGPT, Perplexity, Gemini. Scores drafts for citation-readiness with aeo_score.py, produces a per-node hardening checklist, and spot-checks live AI answers for whether the brand (vs competitors) is cited. Use whenever the user mentions AEO, GEO, LLM SEO, "getting cited by ChatGPT/Perplexity", AI Overviews, answer engines, AI search visibility, or asks why an AI assistant recommends competitors and not them. The GEO half of seo-performance-tracker. Never invents a visibility score. Triggers on AI-visibility / answer-engine intent broadly.From its SKILL.md
npx -y skills add siddiqss/semantic-seo-suite --skill answer-engine-optimizerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `python ../../scripts/aeo_score.py --draft brands/<slug>/drafts/<slug>.md --schema-dir brands/<slug>/data/schema --json`.
SKILL.md
4.3 KB, 917 tokens by cl100k_base, as published. Nobody here has run it
answer-engine-optimizer
The citation feedback loop. Where seo-performance-tracker measures Google rankings,
this optimizes for being the source an LLM quotes — which, for a tool category whose
buyers research inside ChatGPT and Perplexity, is where a lot of the demand now decides.
It reuses the suite's spine: read the brand workspace, respect the grounding tier, tag every value, and feed results back into the map and calendar. It layers onto the on-page map — same nodes, hardened — it does not replace it.
Read first: ../../framework/answer-engine-optimization.md (the method + the honesty
rules), then ../../framework/macro-micro-semantics.md (the writing tactics it scores).
Preconditions
entity-profile.json+topical-map.jsonexist (run seo-brand-foundation / topical-map-builder first).- Drafts to score live in
brands/<slug>/drafts/. With no drafts yet, the skill still produces the hardening spec and the live-answer probe. - Live-answer probing needs
grounding.sources.web_search: true(T1). Without it, do the offline scoring only and say the probe was skipped — do not guess citations.
Workflow
-
Score citation-readiness (T0, offline). For each draft:
python ../../scripts/aeo_score.py --draft brands/<slug>/drafts/<slug>.md \ --schema-dir brands/<slug>/data/schema --jsonRun it after
validate_draft.pyis clean — AEO is advisory, fabrication is a gate. Collect score, grade, and the specific fixes (DEF / QA / TLDR / LIFT / BREV / SELF / SCHEMA). Scores aremeasured(mechanical), the recommended rewrites areasserted. -
Probe live answer engines (T1, web_search). For the highest-value target queries (core-section, especially comparison/alternative nodes), query them answer-style and record, per query + engine + date: is the brand named? cited with a link? which competitor sources are quoted instead? This is a dated spot check (n=1 per probe), labelled
measured— not a rank tracker. Never aggregate it into a visibility %. -
Write the AEO report →
brands/<slug>/audits/<date>-aeo.md:- Readiness table — per node: AEO score, grade, top fixes (
measured+asserted). - Live citations — per probed query: brand cited? competitors cited? (
measured, dated, with the query text; honest about the tiny sample). - Hardening queue — nodes
<70, ranked, with the concrete edits. - If web_search is off: state the probe was skipped; emit only the readiness table.
- Readiness table — per node: AEO score, grade, top fixes (
-
Feed the loop.
- Nodes scoring
<70→ markneeds-updatein the map; push upcalendar.md. - Apply hardening to drafts via semantic-draft-writer; ensure JSON-LD via linking-and-schema. Re-score to confirm the lift.
- Queries where competitors are cited and the brand isn't → a hardening task on the owning node and a signal for off-page authority (link-opportunities).
- New questions found while probing → query-network additions via topical-map-builder.
- Nodes scoring
Definition of done
- Every existing draft scored; a dated AEO report with the three sections written.
- Hardening queue fed back into map statuses + calendar.
- No invented visibility number anywhere — citations are dated, per-query observations or they are absent. If web_search was off, the report says so.
Grounding ladder
- T0: offline
aeo_score.pyreadiness scoring + hardening spec. Fully useful alone. - T1 (web_search): + live answer-engine spot checks (
measured, dated, per query). - T2: no paid dependency; SERP-feature data from DataForSEO (if on) can corroborate
which queries trigger AI Overviews, labelled
measured.
What ships with it: 1 file
984 B alongside SKILL.md
evals/
- evals.json984 B