Agent skill · Backend & API

blog-cannibalization

Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize".

AgriciDanielgithub.com/AgriciDanielGitHub ↗
claude-codeMIT
Install
npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 1
SKILL.md size: 9 KB
Bundled scripts: none
Path: skills/blog-cannibalization/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 1,566
Language: Python

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# Blog Cannibalization - Keyword Overlap Detection Detect when multiple blog posts compete for the same search keywords. Two modes: local-only analysis (default) and DataForSEO API mode for SERP-level data. ## Two Modes | Mode | Flag | Cost | Data Source | |------|------|------|-------------| | Local | (default) | Free | File content analysis via Grep/Read | | API | `--api` | ~$0.01/call | DataForSEO Page Intersection + Ranked Keywords | Local mode works without any API keys. API mode requires DataForSEO credentials set as environment variables: `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD`. ## Local Mode Workflow ### Step 1: Scan Blog Files Use Glob to find all content files in the target directory: - Patterns: `**/*.md`, `**/*.mdx`, `**/*.html` - Skip files in `node_modules/`, `.git/`, `drafts/` ### Step 2: Extract Primary Keywords For each file, read and extract keyword signals from: - **Title tag** or H1 heading (highest weight) - **H2 headings** (medium weight) - **First paragraph** (supporting signal) - **Meta description** if present in frontmatter Primary keyword extraction method: 1. Tokenize title, H1, H2s, meta description, and first paragraph into 1-gram, 2-gram, and 3-g

What's inside
Steps it walks through
  1. Two Modes
  2. Local Mode Workflow
  3. Step 1: Scan Blog Files
  4. Step 2: Extract Primary Keywords
  5. Step 3: Cluster by Similarity
  6. Step 4: Score and Flag
  7. Step 5: Output Report
  8. API Mode Workflow (DataForSEO)
  9. Endpoints Used
  10. API Analysis Steps
  11. Severity Scoring
  12. Severity Formula (API Mode)
  13. Severity Heuristic (Local Mode)
  14. Output Format
More from claude-blog
All skills →
About this skill
What does the blog-cannibalization skill do?

Detect keyword cannibalization across blog posts by extracting primary keywords from titles and headings, clustering semantically similar targets, and flagging posts competing for the same search intent. Supports local-only mode (grep-based) and DataForSEO API mode (Page Intersection endpoint at ~$0.01/call). Outputs severity-scored report with merge or differentiate recommendations. Use when user says "cannibalization", "keyword overlap", "competing pages", "duplicate keywords", "cannibalize".

How do I install it?

Run `npx skills add AgriciDaniel/claude-blog --skill blog-cannibalization --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From AgriciDaniel/claude-blog, a repository with 1,566 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going