AEO Content Skill (Free)
Source: github.com/psyduckler/aeo-skills
Part of: AEO Skills Suite — Prompt Research → Content → Analytics
Create or refresh content that AI assistants want to cite — using zero paid APIs.
Requirements
web_fetch — analyze currently-cited sources and existing content
web_search — find competing content (Brave free tier, optional)
- LLM reasoning — research, brief, draft, and evaluate
Mode Detection
- Create mode — User provides a target prompt but no existing URL → write new content
- Refresh mode — User provides an existing page URL (+ optional target prompt) → audit and update
Input
- Target prompt (required for create, optional for refresh) — the AI prompt this content should win
- Brand/domain (required) — who the content is for
- Existing URL (refresh mode) — the page to update
- Topic context (optional) — additional info about the brand's angle
- Content type (optional) — guide, comparison, how-to, explainer
Create Mode Workflow
Step 1: AI Landscape Research
Search the target prompt and close variants to understand the current answer landscape:
- Web search the exact prompt — search engines show similar sources to what AI cites
web_fetch the top 5-10 results — these are the pages AI models draw from
web_search for "[topic]" site:reddit.com — find real user questions and discussions
For each top-ranking page, extract:
- Main points and structure
- Unique data, frameworks, or insights
- Gaps — what they miss or get wrong
- Freshness — when was it last updated?
Step 2: Build the Content Brief
Use the template in references/content-brief-template.md to structure research.
Key decisions:
- Mandatory topics — every sub-topic the AI currently covers in its answer
- Unique value angle — what will this content add that no current source provides? (Most important decision.)
- Content structure — outline with H2/H3 headings that mirror question phrasing
- Target specs — word count, format, tone
Step 3: Write Citation-Worthy Content
Draft following citation signals from references/citation-signals.md. Key principles:
- Lead each section with a direct, quotable 1-2 sentence answer
- Use descriptive headings that match question phrasing
- Include original data, frameworks, or expert perspective
- Name specific tools, companies, people, statistics
- Cover every sub-question the AI currently answers, then go deeper on 2-3 areas
- Cut fluff — every paragraph earns its place
Step 4: Self-Evaluate
Before delivering, check the draft against currently-cited sources:
- Coverage — addresses every topic the top sources cover?
- Depth — goes deeper on at least 2-3 areas?
- Uniqueness — offers something no current source has?
- Extractability — AI can pull a direct answer from each section?
- Entity richness — specific names, tools, numbers throughout?
- Freshness — examples, data, references are current?
Step 5: Deliver with Publishing Guidance
Output final content plus title, meta description (150-160 chars), and:
- Add publication date + author byline with credentials
- Ensure page is indexable (no noindex, no paywall)
- Add schema markup if applicable (FAQ, HowTo, Article)
- Internal link from existing related content
- Re-check target prompt in AI models 2-4 weeks after indexing
Refresh Mode Workflow
Step R0: Audit the Existing Page
Before any landscape research, analyze the current page:
web_fetch the existing URL — get the full content
- Extract current structure: headings, topics covered, depth per section
- Note: publication date, last updated date, author info
- Check freshness: outdated stats, old tool names, expired examples, stale references
- Identify what's already strong (keep these sections)
Step R1: AI Landscape Research
Same as Create Step 1 — research what AI models currently cite for the target prompt. If no target prompt was provided, infer it from the page's topic and title.
Step R2: Gap Analysis (Diff)
Compare existing content against the competitive landscape:
- Missing topics — sub-topics AI covers that the page doesn't → flag for addition
- Outdated info — old statistics, discontinued tools, expired examples → flag for replacement
- Missing entities — competitors, tools, people the AI mentions that the page doesn't → flag for inclusion
- Structural issues — buried answers, vague headings, no clear extractable statements → flag for restructure
- Freshness gaps — old dates, prior-year references → flag for update
- Strengths to preserve — sections already well-written, potentially already cited → keep as-is
Output: a prioritized list of changes with rationale for each.
Step R3: Edit (Not Rewrite)
Apply changes surgically:
- Add new sections for coverage gaps (place them logically in the existing structure)
- Update outdated data points, examples, tool names, statistics
- Restructure weak sections — add extractable lead sentences, improve headings
- Weave in missing entities naturally (don't keyword-stuff)
- Preserve sections that are already strong
- Update publication/modified date
Output the refreshed content with clear markup showing changes:
[ADDED] — new sections or paragraphs
[UPDATED] — modified existing content
[RESTRUCTURED] — reorganized for better extractability
[UNCHANGED] — kept as-is (note why it's strong)
Step R4: Before/After Summary
Provide a clear comparison:
- What was added (new sections, topics, entities)
- What was updated (stats, examples, references)
- What was restructured (headings, lead sentences)
- What was removed (outdated info)
- Expected impact on citation-worthiness
Step R5: Self-Evaluate + Deliver
Same 6-point evaluation as Create Step 4, plus:
- Does the refresh maintain the page's existing voice and style?
- Are all internal/external links still valid?
- Is the updated date reflected?
Deliver with the same publishing guidance as Create Step 5.
Tips
- The unique value angle is make-or-break for both modes
- For refresh: resist the urge to rewrite everything. Surgical edits that add missing pieces are more efficient and preserve existing authority
- First-party data is the strongest citation signal — if the brand has relevant data, use it prominently
- For comparison prompts ("X vs Y"), be balanced — AI models avoid citing biased sources
- Shorter, sharper content that directly answers the prompt beats long rambling pieces
- This skill pairs with
aeo-prompt-research-free which identifies target prompts
1---2name: aeo-content-free3description: Create or refresh AEO-optimized content that gets cited by AI assistants (Gemini, ChatGPT, Perplexity) using only free tools. Two modes: CREATE new content targeting a specific prompt, or REFRESH existing content to improve AI citation-worthiness. Researches what AI models currently cite, builds a competitive brief, and produces citation-worthy content. Use when a user wants to: write content optimized for AI citations, create articles that show up in AI answers, refresh/update existing content for better AI visibility, build authority content for answer engines, or produce AEO content without paid tools. No API keys required — uses web_fetch, web_search (free tier), and LLM reasoning only. Pairs with aeo-prompt-research-free (which identifies WHAT to write about; this skill handles HOW to write or refresh it).4---5
6# AEO Content Skill (Free)
7
8> **Source:** [github.com/psyduckler/aeo-skills](https://github.com/psyduckler/aeo-skills/tree/main/aeo-content-free)
9> **Part of:** [AEO Skills Suite](https://github.com/psyduckler/aeo-skills) — [Prompt Research](https://github.com/psyduckler/aeo-skills/tree/main/aeo-prompt-research-free) → Content → [Analytics](https://github.com/psyduckler/aeo-skills/tree/main/aeo-analytics-free)
10
11Create or refresh content that AI assistants want to cite — using zero paid APIs.
12
13## Requirements
14
15- `web_fetch` — analyze currently-cited sources and existing content
16- `web_search` — find competing content (Brave free tier, optional)
17- LLM reasoning — research, brief, draft, and evaluate
18
19## Mode Detection
20
21- **Create mode** — User provides a target prompt but no existing URL → write new content
22- **Refresh mode** — User provides an existing page URL (+ optional target prompt) → audit and update
23
24## Input
25
26- **Target prompt** (required for create, optional for refresh) — the AI prompt this content should win
27- **Brand/domain** (required) — who the content is for
28- **Existing URL** (refresh mode) — the page to update
29- **Topic context** (optional) — additional info about the brand's angle
30- **Content type** (optional) — guide, comparison, how-to, explainer
31
32---
33
34## Create Mode Workflow
35
36### Step 1: AI Landscape Research
37
38Search the target prompt and close variants to understand the current answer landscape:
39
401. **Web search the exact prompt** — search engines show similar sources to what AI cites
412. **`web_fetch` the top 5-10 results** — these are the pages AI models draw from
423. **`web_search` for `"[topic]" site:reddit.com`** — find real user questions and discussions
43
44For each top-ranking page, extract:
45- Main points and structure
46- Unique data, frameworks, or insights
47- Gaps — what they miss or get wrong
48- Freshness — when was it last updated?
49
50### Step 2: Build the Content Brief
51
52Use the template in `references/content-brief-template.md` to structure research.
53
54Key decisions:
55- **Mandatory topics** — every sub-topic the AI currently covers in its answer
56- **Unique value angle** — what will this content add that no current source provides? (Most important decision.)
57- **Content structure** — outline with H2/H3 headings that mirror question phrasing
58- **Target specs** — word count, format, tone
59
60### Step 3: Write Citation-Worthy Content
61
62Draft following citation signals from `references/citation-signals.md`. Key principles:
63
64- Lead each section with a direct, quotable 1-2 sentence answer
65- Use descriptive headings that match question phrasing
66- Include original data, frameworks, or expert perspective
67- Name specific tools, companies, people, statistics
68- Cover every sub-question the AI currently answers, then go deeper on 2-3 areas
69- Cut fluff — every paragraph earns its place
70
71### Step 4: Self-Evaluate
72
73Before delivering, check the draft against currently-cited sources:
74
751. **Coverage** — addresses every topic the top sources cover?
762. **Depth** — goes deeper on at least 2-3 areas?
773. **Uniqueness** — offers something no current source has?
784. **Extractability** — AI can pull a direct answer from each section?
795. **Entity richness** — specific names, tools, numbers throughout?
806. **Freshness** — examples, data, references are current?
81
82### Step 5: Deliver with Publishing Guidance
83
84Output final content plus title, meta description (150-160 chars), and:
85- Add publication date + author byline with credentials
86- Ensure page is indexable (no noindex, no paywall)
87- Add schema markup if applicable (FAQ, HowTo, Article)
88- Internal link from existing related content
89- Re-check target prompt in AI models 2-4 weeks after indexing
90
91---
92
93## Refresh Mode Workflow
94
95### Step R0: Audit the Existing Page
96
97Before any landscape research, analyze the current page:
98
991. **`web_fetch` the existing URL** — get the full content
1002. Extract current structure: headings, topics covered, depth per section
1013. Note: publication date, last updated date, author info
1024. Check freshness: outdated stats, old tool names, expired examples, stale references
1035. Identify what's already strong (keep these sections)
104
105### Step R1: AI Landscape Research
106
107Same as Create Step 1 — research what AI models currently cite for the target prompt. If no target prompt was provided, infer it from the page's topic and title.
108
109### Step R2: Gap Analysis (Diff)
110
111Compare existing content against the competitive landscape:
112
113- **Missing topics** — sub-topics AI covers that the page doesn't → flag for addition
114- **Outdated info** — old statistics, discontinued tools, expired examples → flag for replacement
115- **Missing entities** — competitors, tools, people the AI mentions that the page doesn't → flag for inclusion
116- **Structural issues** — buried answers, vague headings, no clear extractable statements → flag for restructure
117- **Freshness gaps** — old dates, prior-year references → flag for update
118- **Strengths to preserve** — sections already well-written, potentially already cited → keep as-is
119
120Output: a prioritized list of changes with rationale for each.
121
122### Step R3: Edit (Not Rewrite)
123
124Apply changes surgically:
125
126- **Add** new sections for coverage gaps (place them logically in the existing structure)
127- **Update** outdated data points, examples, tool names, statistics
128- **Restructure** weak sections — add extractable lead sentences, improve headings
129- **Weave in** missing entities naturally (don't keyword-stuff)
130- **Preserve** sections that are already strong
131- **Update** publication/modified date
132
133Output the refreshed content with clear markup showing changes:
134- `[ADDED]` — new sections or paragraphs
135- `[UPDATED]` — modified existing content
136- `[RESTRUCTURED]` — reorganized for better extractability
137- `[UNCHANGED]` — kept as-is (note why it's strong)
138
139### Step R4: Before/After Summary
140
141Provide a clear comparison:
142- What was added (new sections, topics, entities)
143- What was updated (stats, examples, references)
144- What was restructured (headings, lead sentences)
145- What was removed (outdated info)
146- Expected impact on citation-worthiness
147
148### Step R5: Self-Evaluate + Deliver
149
150Same 6-point evaluation as Create Step 4, plus:
151- Does the refresh maintain the page's existing voice and style?
152- Are all internal/external links still valid?
153- Is the updated date reflected?
154
155Deliver with the same publishing guidance as Create Step 5.
156
157---
158
159## Tips
160
161- The unique value angle is make-or-break for both modes
162- For refresh: resist the urge to rewrite everything. Surgical edits that add missing pieces are more efficient and preserve existing authority
163- First-party data is the strongest citation signal — if the brand has relevant data, use it prominently
164- For comparison prompts ("X vs Y"), be balanced — AI models avoid citing biased sources
165- Shorter, sharper content that directly answers the prompt beats long rambling pieces
166- This skill pairs with `aeo-prompt-research-free` which identifies target prompts