Content Gap Finder

Content gap analysis

by aaron-he-zhu · Apache-2.0 license · ★ 2,858 on GitHub · v20.1.0

Content gap analysis cover

Use when the user asks to "find content gaps", "竞品写了什么", or "还应该写什么"; builds a competitor-relative coverage map of missing topics, keyword gaps, and editorial-calendar opportunities. Not for raw keyword demand discovery — use…

---
name: content-gap-analysis
slug: content-gap-analysis
displayName: "Content Gap Analysis · 内容缺口"
summary: "内容缺口/选题规划"
description: 'Use when the user asks to "find content gaps", "竞品写了什么", or "还应该写什么"; builds a competitor-relative coverage map of missing topics, keyword gaps, and editorial-calendar opportunities. Not for raw keyword demand discovery — use keyword-research. 内容缺口/选题规划'
version: "20.1.0"
license: Apache-2.0
compatibility: "Claude Code and compatible agent-skill hosts"
homepage: "https://github.com/aaron-he-zhu/aaron-marketing-skills"
when_to_use: "Use when finding content gaps between two domains, discovering missing topics, or identifying coverage holes versus competitors."
argument-hint: "<your domain> <competitor domain>"
metadata: {"author": "aaron-he-zhu", "version": "20.1.0", "discipline": "seo-geo", "phase": "survey", "geo-relevance": "medium", "hermes": {"tags": ["marketing", "seo-geo", "survey"], "category": "seo-geo"}, "openclaw": {"emoji": "🔍", "homepage": "https://github.com/aaron-he-zhu/aaron-marketing-skills"}}
---

# Content Gap Analysis

Identifies content opportunities by comparing your site against competitors and scoring the gaps worth closing first.

Overview

Identifies content opportunities by comparing your site against competitors and scoring the gaps worth closing first.

Manual install (npx, ZIP)
Claude Codenpx skills add aaron-he-zhu/aaron-marketing-skills --skill content-gap-analysis -g -a claude-code
Claude Code (degit)npx degit aaron-he-zhu/aaron-marketing-skills/seo-geo/survey/content-gap-analysis#main ~/.claude/skills/content-gap-analysis
Claude.ai / desktopZip the folder and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md7.1 KB
Read SKILL.md here
aaron-he-zhu/main1 file shown
SKILL.md
Show the full text118 lines

Content Gap Analysis

Identifies content opportunities by comparing your site against competitors and scoring the gaps worth closing first.

Quick Start

Find content gaps between my site [URL] and [competitor URLs]
What content am I missing compared to my top 3 competitors?

Skill Contract

Expected output: a prioritized gap brief plus the standard handoff summary for memory/research/.

  • Reads: your domain, competitor domains, topic/content-type focus, audience, business goals, and any user-provided or tool content inventory.
  • Writes: a user-facing analysis and reusable summary.
  • Promotes: durable keyword priorities, competitor facts, and pending strategy decisions to memory/hot-cache.md, memory/open-loops.md, and memory/research/.
  • Done when: each prioritized gap names the competitor(s) that cover it and you don't; gaps are bucketed into Quick Wins / Strategic Builds / Long-term; and the deliverable includes a dated content calendar entry per Quick Win.
  • Primary next skill: content-writer when the prioritized gap list is approved.
Handoff Summary

Emit the standard shape from skill-contract.md §Handoff Summary Format.

Data Sources

Optional integrations: ~~SEO tool, ~~search console, ~~analytics, ~~AI monitor. Without tools, ask for site URL, content inventory, competitor URLs, and business goals. See CONNECTORS.md.

Trend-scout as a gap-discovery input (keyless): feed the multi-source trend scout — Google Trends RSS plus Hacker News and Reddit, via scripts/connectors/rss_monitor.py — to surface rising topics your competitors and you may both miss. Treat each hit as a candidate gap, then check it against your and competitor coverage in steps 5-7. Mark these signals Estimated. See CONNECTORS.md ~~trend database.

Keyless competitor-coverage inventory: python3 "${CLAUDE_PLUGIN_ROOT}/scripts/connectors/firecrawl.py" map <competitor-domain> --search "<topic>" --limit 1000 lists a competitor's URLs ordered by relevance to the topic — a fast Measured coverage inventory for steps 5-7 — and firecrawl.py scrape <url> reads any candidate page as rendered markdown. robots.txt is pre-flighted locally; a Disallow is refused per SECURITY.md §Scraping Boundaries. Firecrawl keyless free tier (~1,000 credits/mo). See scripts/connectors/README.md.

Decision Gates

Stop and ask — gap analysis is competitor-relative and cannot run on demand alone:

  1. No competitor domains given and none inferable from CLAUDE.md or prior research → ask the user to name 1-3 competitors, OR offer to switch to keyword-research for demand-side discovery instead.
  2. Your own domain/content inventory is unavailable and cannot be fetched → ask for the site URL or a content list, since "gap" requires knowing current coverage.

Continue silently — do not stop for: which 3-5 named competitors to deep-dive (pick the closest); missing optional tool data (mark Estimated/N/A and proceed); ambiguous topic scope (analyze the full overlap and flag the broadest clusters).

Instructions

When a user requests content gap analysis:

  1. Define Analysis Scope — confirm your site, competitors, topic focus, content types, audience, and business goals.
  2. Audit Your Existing Content — map indexed pages, content types, topic clusters, winners, and weaknesses.
  3. Analyze Competitor Content — compare content volume, traffic, type mix, topic coverage, and unique assets.
  4. Identify Keyword Gaps — group gaps into High Priority, Quick Wins, and Long-term based on volume, difficulty, and relevance.
  5. Map Topic Gaps — compare topic-cluster coverage and recommend pillar / cluster approaches for missing themes.
  6. Identify Content Format Gaps — compare guides, tutorials, comparisons, case studies, tools, templates, video, and research.
  7. Analyze GEO / AI Gaps — identify missing Q&A, definition, and comparison content that competitors get cited for.
  8. Map to Audience Journey — compare Awareness, Consideration, Decision, and Retention coverage.
  9. Prioritize and Create Action Plan — deliver an Executive Summary, Prioritized Gap List (Quick Wins / Strategic Builds / Long-term), Content Calendar, and Success Metrics.

Label every metric Measured (tool/export), User-provided, or Estimated (model inference); never present an estimate as measured; if a required metric is unavailable, mark it N/A — do not invent it.

Quality bar: every gap names the competitor that covers it, its volume or traffic estimate, and why it is worth closing — never list a bare topic without that evidence.

Reference: See Analysis Templates for the compact templates used in each step.

Example

See references/example-report.md for a full SaaS marketing sample.

Advanced Analysis

Competitive Cluster Comparison
Compare our topic cluster coverage for [topic] vs top 5 competitors
Temporal Gap Analysis
What content have competitors published in the last 6 months that we haven't covered?
Intent-Based Gaps
Find gaps in our [commercial/informational] intent content

Save Results

Write path: memory/research/content-gap-analysis/YYYY-MM-DD-<topic>.md; promote durable gap priorities and competitor facts to memory/hot-cache.md. See Skill Contract §Save Results Template.

Reference Materials

Next Best Skill

Primary: content-writer.

1---
2name: content-gap-analysis
3slug: content-gap-analysis
4displayName: "Content Gap Analysis · 内容缺口"
5summary: "内容缺口/选题规划"
6description: 'Use when the user asks to "find content gaps", "竞品写了什么", or "还应该写什么"; builds a competitor-relative coverage map of missing topics, keyword gaps, and editorial-calendar opportunities. Not for raw keyword demand discovery — use keyword-research. 内容缺口/选题规划'
7version: "20.1.0"
8license: Apache-2.0
9compatibility: "Claude Code and compatible agent-skill hosts"
10homepage: "https://github.com/aaron-he-zhu/aaron-marketing-skills"
11when_to_use: "Use when finding content gaps between two domains, discovering missing topics, or identifying coverage holes versus competitors."
12argument-hint: "<your domain> <competitor domain>"
13metadata: {"author": "aaron-he-zhu", "version": "20.1.0", "discipline": "seo-geo", "phase": "survey", "geo-relevance": "medium", "hermes": {"tags": ["marketing", "seo-geo", "survey"], "category": "seo-geo"}, "openclaw": {"emoji": "🔍", "homepage": "https://github.com/aaron-he-zhu/aaron-marketing-skills"}}
14---
15 
16# Content Gap Analysis
17 
18Identifies content opportunities by comparing your site against competitors and scoring the gaps worth closing first.
19 
20## Quick Start
21 
22```
23Find content gaps between my site [URL] and [competitor URLs]
24```
25 
26```
27What content am I missing compared to my top 3 competitors?
28```
29 
30## Skill Contract
31 
32**Expected output**: a prioritized gap brief plus the standard handoff summary for `memory/research/`.
33 
34- **Reads**: your domain, competitor domains, topic/content-type focus, audience, business goals, and any user-provided or tool content inventory.
35- **Writes**: a user-facing analysis and reusable summary.
36- **Promotes**: durable keyword priorities, competitor facts, and pending strategy decisions to `memory/hot-cache.md`, `memory/open-loops.md`, and `memory/research/`.
37- **Done when**: each prioritized gap names the competitor(s) that cover it and you don't; gaps are bucketed into Quick Wins / Strategic Builds / Long-term; and the deliverable includes a dated content calendar entry per Quick Win.
38- **Primary next skill**: [content-writer](../../implement/content-writer/SKILL.md) when the prioritized gap list is approved.
39 
40### Handoff Summary
41 
42> Emit the standard shape from [skill-contract.md §Handoff Summary Format](../../../references/skill-contract.md).
43 
44## Data Sources
45 
46Optional integrations: ~~SEO tool, ~~search console, ~~analytics, ~~AI monitor. Without tools, ask for site URL, content inventory, competitor URLs, and business goals. See [CONNECTORS.md](../../../CONNECTORS.md).
47 
48**Trend-scout as a gap-discovery input (keyless)**: feed the multi-source trend scout — Google Trends RSS plus Hacker News and Reddit, via [`scripts/connectors/rss_monitor.py`](../../../scripts/connectors/rss_monitor.py) — to surface rising topics your competitors and you may both miss. Treat each hit as a candidate gap, then check it against your and competitor coverage in steps 5-7. Mark these signals **Estimated**. See [CONNECTORS.md](../../../CONNECTORS.md) `~~trend database`.
49 
50**Keyless competitor-coverage inventory**: `python3 "${CLAUDE_PLUGIN_ROOT}/scripts/connectors/firecrawl.py" map <competitor-domain> --search "<topic>" --limit 1000` lists a competitor's URLs ordered by relevance to the topic — a fast **Measured** coverage inventory for steps 5-7 — and `firecrawl.py scrape <url>` reads any candidate page as rendered markdown. robots.txt is pre-flighted locally; a Disallow is refused per [SECURITY.md §Scraping Boundaries](../../../SECURITY.md). Firecrawl keyless free tier (~1,000 credits/mo). See [scripts/connectors/README.md](../../../scripts/connectors/README.md).
51 
52## Decision Gates
53 
54**Stop and ask** — gap analysis is competitor-relative and cannot run on demand alone:
55 
561. No competitor domains given and none inferable from `CLAUDE.md` or prior research → ask the user to name 1-3 competitors, OR offer to switch to [keyword-research](../keyword-research/SKILL.md) for demand-side discovery instead.
572. Your own domain/content inventory is unavailable and cannot be fetched → ask for the site URL or a content list, since "gap" requires knowing current coverage.
58 
59**Continue silently** — do not stop for: which 3-5 named competitors to deep-dive (pick the closest); missing optional tool data (mark Estimated/N/A and proceed); ambiguous topic scope (analyze the full overlap and flag the broadest clusters).
60 
61## Instructions
62 
63When a user requests content gap analysis:
64 
651. **Define Analysis Scope** — confirm your site, competitors, topic focus, content types, audience, and business goals.
662. **Audit Your Existing Content** — map indexed pages, content types, topic clusters, winners, and weaknesses.
673. **Analyze Competitor Content** — compare content volume, traffic, type mix, topic coverage, and unique assets.
684. **Identify Keyword Gaps** — group gaps into High Priority, Quick Wins, and Long-term based on volume, difficulty, and relevance.
695. **Map Topic Gaps** — compare topic-cluster coverage and recommend pillar / cluster approaches for missing themes.
706. **Identify Content Format Gaps** — compare guides, tutorials, comparisons, case studies, tools, templates, video, and research.
717. **Analyze GEO / AI Gaps** — identify missing Q&A, definition, and comparison content that competitors get cited for.
728. **Map to Audience Journey** — compare Awareness, Consideration, Decision, and Retention coverage.
739. **Prioritize and Create Action Plan** — deliver an Executive Summary, Prioritized Gap List (Quick Wins / Strategic Builds / Long-term), Content Calendar, and Success Metrics.
74 
75Label every metric **Measured** (tool/export), **User-provided**, or **Estimated** (model inference); never present an estimate as measured; if a required metric is unavailable, mark it N/A — do not invent it.
76 
77**Quality bar**: every gap names the competitor that covers it, its volume or traffic estimate, and why it is worth closing — never list a bare topic without that evidence.
78 
79> **Reference**: See [Analysis Templates](references/analysis-templates.md) for the compact templates used in each step.
80 
81## Example
82 
83See [references/example-report.md](references/example-report.md) for a full SaaS marketing sample.
84 
85## Advanced Analysis
86 
87### Competitive Cluster Comparison
88 
89```
90Compare our topic cluster coverage for [topic] vs top 5 competitors
91```
92 
93### Temporal Gap Analysis
94 
95```
96What content have competitors published in the last 6 months that we haven't covered?
97```
98 
99### Intent-Based Gaps
100 
101```
102Find gaps in our [commercial/informational] intent content
103```
104 
105## Save Results
106 
107Write path: `memory/research/content-gap-analysis/YYYY-MM-DD-<topic>.md`; promote durable gap priorities and competitor facts to `memory/hot-cache.md`. See [Skill Contract](../../../references/skill-contract.md) §Save Results Template.
108 
109## Reference Materials
110 
111- [Analysis Templates](references/analysis-templates.md) — Gap-analysis templates
112- [Gap Analysis Frameworks](references/gap-analysis-frameworks.md) — Audit and prioritization frameworks
113- [Example Report](references/example-report.md) — Worked sample
114 
115## Next Best Skill
116 
117Primary: [content-writer](../../implement/content-writer/SKILL.md).
118 
View all files on GitHub →

Details

Version
20.1.0
License
Apache-2.0
Stars on the repo
★ 2,858
Checked
Source
aaron-he-zhu/aaron-marketing-skills ↗
Creator
aaron-he-zhu · 99 listings
View creator

Similar skills

See all →

More from aaron-he-zhu

SkillAd Test Designeraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "design an A/B test", "set up a creative/landing test", "run an incrementality test", or "is this result statistically and practically material?"; produces a hypothesis, variant matrix, sample-size/duration/power plan, and a documented effect/uncertainty read from own exported results. It applies only a precommitted owner-approved action rule; the statistical helper never chooses a business action. Not for producing variants — use ad-creative-builder; not for reading back one shipped change — use paid-measurement-loop. 广告AB测试设计/实验设计/显著性判定/增效测试★ 2.9k GitHub starsSkillAdvocacy Program Designeraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "design an employee advocacy program", "set up founder-led sharing", or "build a share kit for the team"; produces an advocacy program blueprint in two modes — participation-driven opt-in (default) or top-down assigned with its coercion and authenticity risks flagged — with a voluntary opt-in roster spec submitted as channel-registry proposal events, share kits with mandatory per-person variation, staggered human posting windows plus anti-pod guardrails (no coordinated identical reshares, no engagement rings), per-person material-connection disclosure lines per FTC and 《互联网广告管理办法》, and a Slack/Teams distribution spec. Not for paid creator campaigns — use campaign-planner. 员工倡导/创始人IP分享/内部分享计划/披露合规★ 2.9k GitHub starsSkillBuyer Belief Mapperaaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "map what our buyers believe", "capture the objections we keep hearing", or "find the switching forces that move the beachhead"; produces a belief map of the beachhead — held beliefs and mental models, the recurring objections and their reframes, and the JTBD four forces (push of the problem, pull of the new, anxiety of switching, habit of the present) — each item sourced from interviews or win-loss notes (User-provided) and labeled Measured / User-provided / Estimated, with any unverified quote or comparative claim marked "[needs source]" and routed to the claims candidates, never adjudicated here. Not for demographic or persona profiling — use audience-mapper; not for the positioning canvas — use positioning-truth-tracer. 受众信念/异议地图/切换四力/流失语言★ 2.9k GitHub starsSkillTarget Audience Profileraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "analyze my target audience", "build an audience profile for influencer targeting", "research a niche community", or "deep-dive a subculture before partnering with creators"; in audience mode produces demographic/psychographic profiles, a platform-priority matrix, named personas, and an influencer-selection criteria set, and in niche mode produces a community map, culture decode (language/norms/taboos), key-voice tiers, a Brand Fit Score, and a phased entry strategy. Not for finding specific creators to contract — use influencer-discovery; not for scoring a shortlist on Suitability — use fit-scorer. 目标受众画像/人群分析 · 细分社群/亚文化调研★ 2.9k GitHub starsSkillAudience Segment Builderaaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "build audience segments from my customer list", "make value-based / lookalike seed lists", "set up exclusion / suppression segments", or "map audiences to funnel stages across platforms"; turns the user''s OWN customer/CRM/GA4 export into seed audiences, value-based lookalike SEED lists, exclusion/suppression segments, and a cross-platform funnel-stage targeting map, informing the ROAS A (Audience) dimension. Not for building account structure or match types — use campaign-architect; not for organic SERP intent — use keyword-research. 付费广告受众分群/种子人群/排除人群/相似人群种子★ 2.9k GitHub starsSkillBrand Voice Codifieraaron-he-zhu/aaron-marketing-skills · by aaron-he-zhuUse when the user asks to "codify our brand voice", "define naming rules for our products and tiers", or "write the tone-of-voice guide with banned phrases"; produces the brand-level voice canon (register, tone spectrum, banned-phrase list, few-shot examples drawn only from the brand''s own published material) and the naming tax (product / feature / tier naming rules plus approved and banned terms) that seeds the narrative-registry canon and that every channel''s voice adaptation points up to. Not for per-platform voice adaptation — use channel-registry''s voice-dossier; not for finished copy or blog posts — use content-writer; not for the message hierarchy itself — use message-system-architect; not for claim adjudication — use offer-claims-registry. 品牌语气/词汇表/命名税/禁用词/品牌语言规范★ 2.9k GitHub stars