marketing-skill/skills/aeo/SKILL.md
Answer Engine Optimization (AEO) skill — optimize content to be cited by AI language models (ChatGPT, Perplexity, Claude, Gemini, Mistral) as authoritative sources. Distinct from SEO — AEO optimizes for citation in LLM-generated responses, not search rankings. Use when planning content for AI-first search audiences, auditing existing content for E-E-A-T signals, tracking which pages get cited by which LLMs, or building a citation-friendly content strategy. Triggers — 'AEO audit', 'optimize for ChatGPT', 'get cited by Perplexity', 'LLM citation strategy', 'answer engine optimization', 'content for AI search', 'E-E-A-T audit'. Output is a markdown audit report (default) or JSON for pipeline integration. Stdlib-only Python tools.
npx skillsauth add alirezarezvani/claude-skills aeoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Get your content cited by ChatGPT, Perplexity, Claude, Gemini, and Mistral as the authoritative source.
AEO is the practice of optimizing content for citation in LLM-generated responses — distinct from SEO, which optimizes for search rankings. This skill audits, optimizes, and tracks AEO performance.
| | SEO | AEO | |---|---|---| | Optimizes for | Click-through rankings | Being cited as authoritative source | | Audience | Humans browsing search results | LLMs answering questions | | Success metric | Position 1-10, organic traffic | Citation count across LLMs | | Key signals | Backlinks, keywords, page speed | E-E-A-T, structured data, factual density | | Update cadence | Weeks-to-months | Days-to-weeks (LLM training cycles) |
Both can coexist — the same content can rank #1 on Google AND get cited by Perplexity. But the techniques differ: SEO rewards keyword density + backlinks; AEO rewards primary-source signals + structured facts.
marketing-skill/skills/seo-audit insteadThe auditor (aeo_audit.py) scores content across 4 dimensions:
Composite score 0-100 with per-dimension breakdown. Output: markdown report with specific fix recommendations.
The optimizer (aeo_optimizer.py) generates AEO-improved variants:
[1]-style references with sourcesThree modes: conservative (touch <10% of words), balanced (touch <30%), aggressive (rewrite for maximum AEO).
The tracker (citation_tracker.py) maintains a local ledger of citations:
Stores in ~/.aeo-data/citations.json (local, no telemetry).
references/aeo_eeat_canon.md — E-E-A-T methodology, industry thresholds, anti-patternsreferences/llm_citation_patterns.md — per-LLM citation selection heuristics (Perplexity, ChatGPT, Claude, Gemini, Mistral)references/aeo_vs_seo.md — when to invest in AEO vs SEO vs bothreferences/bot_access_and_monitoring.md — AI crawler robots.txt matrix (the prerequisite check: a blocked bot zeroes that platform), Google Search Console AI Overviews monitoring, manual testing protocols, citation-drop diagnostic (merged from the former ai-seo skill)references/extractable_content_patterns.md — 7 copy-ready block templates (definition, steps, table, FAQ, attributed stat, expert quote, summary box) that answer engines reliably extract (merged from the former ai-seo skill)0. Pre-flight: bot access
Check robots.txt against the crawler matrix in references/bot_access_and_monitoring.md
→ a blocked GPTBot/PerplexityBot/ClaudeBot/Google-Extended is the first fix, always
1. Audit existing content
$ python3 scripts/aeo_audit.py --url https://example.com/blog/post
→ markdown report with composite score + 4-dimension breakdown
2. Apply optimization recommendations
$ python3 scripts/aeo_optimizer.py --input post.md --mode balanced --output post-aeo.md
→ optimized variant with citations + schema + structural fixes
3. Publish + monitor
$ python3 scripts/citation_tracker.py --action add --url https://example.com/blog/post \
--llm perplexity --query "what is AEO" --date 2026-05-17
→ adds entry to local citations.json ledger
4. Report
$ python3 scripts/citation_tracker.py --action report --url https://example.com/blog/post
→ per-page citation stats: count, LLMs, queries, velocity
The skill is industry-aware via per-run --industry flag. Supported: saas, healthcare, finance, legal, ecommerce, b2b, media, education.
Industry affects:
Example:
python3 scripts/aeo_audit.py --url <url> --industry healthcare
# → stricter E-E-A-T thresholds; flags any health claim without primary citation
# AEO Audit Report — [Page Title]
**URL:** https://example.com/blog/post
**Date:** 2026-05-17
**Industry:** saas
**Composite Score:** 72/100 (B+)
## Dimension Breakdown
| Dimension | Score | Verdict |
|---|---|---|
| Experience | 80/100 | Strong — first-person case study present |
| Expertise | 65/100 | Author bio missing credentials |
| Authoritativeness | 75/100 | 4 backlinks from authority domains |
| Trustworthiness | 68/100 | No corrections policy linked |
## Top 3 Fixes
1. Add author bio with credentials (Expertise +15)
2. Link to corrections policy from footer (Trustworthiness +12)
3. Inject FAQ schema for the 5 questions implicit in H2s (Authoritativeness +8)
## All Recommendations
[...]
## Audit Trail
[3-count of analysis steps, sources cited, time taken]
python3 scripts/aeo_audit.py --url <url> --output json
Returns full structured data for integration with content management workflows.
| Industry | Min Composite | Critical Signals | |---|---|---| | Healthcare | 85 | Medical reviewer byline, peer-reviewed citations, FDA disclosure | | Finance | 85 | Author CFA/CPA credentials, "not investment advice" disclaimer, dated examples | | Legal | 85 | Jurisdiction disclosed, attorney bio, "not legal advice" disclaimer | | SaaS | 70 | Product manager byline, case study with metrics, ROI calculator | | E-commerce | 65 | Product reviews aggregated, return policy, schema.org Product | | B2B | 70 | Industry analyst quotes, customer logos, ROI data | | Media | 70 | Editorial policy, fact-check link, original reporting | | Education | 75 | Instructor bio, learning outcomes, accreditation if applicable |
pip install requiredrequests + beautifulsoup4 if --url mode used (otherwise pass markdown via --input for file-based audits)query_research mode (currently scaffold-only — full LLM-driven query research is roadmap)All data is local-first:
~/.aeo-data/citations.json — citation ledger~/.aeo-data/patterns.json — success patterns library~/.aeo-data/audits/<hash>.md — saved audit reportsNo telemetry. No cloud sync. Export to CSV anytime via citation_tracker.py --action export.
marketing-skill/skills/seo-audit — traditional click-through SEOmarketing-skill/skills/programmatic-seo — template-driven SEO at scalemarketing-skill/skills/content-strategy — broader content planningmarketing-skill/skills/copywriting — voice + tonemarketing-skill/skills/schema-markup — structured data implementationVersion: 2.7.3
Source: Ported from alirezarezvani/aeo-box (answer-engine-optimization/ skill, 2,464 LOC across 9 modules). This port distills the 9-module Python toolkit into 3 stdlib CLI tools per the claude-skills convention; preserves the E-E-A-T scoring methodology, citation-tracking schema, and industry-aware thresholds verbatim.
License: MIT (matches upstream + this repo).
development
Use when someone wants to run a weekly review, close open loops, audit stalled projects and commitments, get their system back to trusted, restart a lapsed review habit, or says "/cs:weekly-review". Walks David Allen's three-phase loop — GET CLEAR, GET CURRENT, GET CREATIVE — with deterministic scripts that inventory open loops, gate the checklist with named gaps, and score commitment health 0-100.
development
Use when someone wants to decide whether a meeting is worth calling, price a meeting in dollars, build a timeboxed agenda with desired outcomes, or turn messy meeting notes into owned action items — or says "should this be a meeting", "/cs:meeting-prep", or "/cs:meeting-actions". Runs a cost gate (ASYNC / NOT-READY / MEET), builds a decision-first agenda, and extracts an owner + due-date checklist that flags every orphan.
development
Convert a rambling description of a desired outcome into one polished, autonomous /goal prompt ready to paste into a fresh session. Use when the user says "/fable-goal", "turn this into a goal prompt", "write me a fable prompt", "write the prompt that builds X", or rambles about something they want made and asks for the prompt that makes it happen. The output is a single copy-paste prompt, never the build itself. Do NOT use when the user wants the thing built right now in this session — only when they want the PROMPT that will make it happen in a fresh session.
development
Use when someone wants to plan a deep work day, time-block their calendar or task list, budget or cut shallow work, protect focus hours, track deep-work sessions and streaks, run an end-of-day shutdown ritual, or says "/deep-work" or "/time-block". Classifies tasks deep vs shallow, builds an energy-first time-blocked schedule that refuses deep demand past the 4-hour ceiling, batches shallow work into at most two windows, and logs focus sessions against a weekly target.