New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Map complete topic clusters for any subject area

Topical authority mapper

by gooseworks-ai · MIT license · ★ 1,220 on GitHub · updated Sep 21

Topical authority mapper cover

Map complete topic clusters for any subject area — hub pages, spoke articles, supporting content, internal linking architecture. Identifies content gaps, priority order, and builds a structured content calendar.

---
name: topical-authority-mapper
description: >
  Map complete topic clusters for any subject area — hub pages, spoke articles,
  supporting content, internal linking architecture. Identifies content gaps,
  priority order, and builds a structured content calendar. Produces topic maps
  that build genuine topical authority, not random blog posts.
tags: [seo]
---

# Topical Authority Mapper

Most content strategies are just keyword lists turned into blog posts. Real topical authority requires a structured map: pillar pages that own broad topics, cluster pages that go deep on subtopics, and an internal linking architecture that tells Google "we comprehensively cover this subject." This skill builds that map.

**Core principle:** Google rewards topical depth, not random keyword coverage. A site with 15 interlinked articles that thoroughly cover "sales automation" will outrank a site with 50 unrelated blog posts that happen to mention the phrase. This skill builds the cluster architecture that creates genuine authority.

## When to Use

Overview

Most content strategies are just keyword lists turned into blog posts. Real topical authority requires a structured map: pillar pages that own broad topics, cluster pages that go deep on subtopics, and an internal linking architecture that tells Google "we comprehensively cover this subject." This skill builds that map.

Manual install (npx, ZIP)
Claude Codenpx skills add gooseworks-ai/goose-skills --skill topical-authority-mapper -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \ | tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/seo/composites/topical-authority-mapper
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/0bb01012fba0d605b769/topical-authority-mapper.zip" -OutFile "$env:TEMP\topical-authority-mapper.zip"; Expand-Archive "$env:TEMP\topical-authority-mapper.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP 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.md15.2 KB
  • skill.meta.json372 B
Read the files here
gooseworks-ai/615c6852 files
Shared references2SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text420 lines

Topical Authority Mapper

Most content strategies are just keyword lists turned into blog posts. Real topical authority requires a structured map: pillar pages that own broad topics, cluster pages that go deep on subtopics, and an internal linking architecture that tells Google "we comprehensively cover this subject." This skill builds that map.

Core principle: Google rewards topical depth, not random keyword coverage. A site with 15 interlinked articles that thoroughly cover "sales automation" will outrank a site with 50 unrelated blog posts that happen to mention the phrase. This skill builds the cluster architecture that creates genuine authority.

When to Use

  • "What content should we create to dominate [topic]?"
  • "Build a topic cluster strategy for our blog"
  • "Map out our topical authority for [category]"
  • "Create a content calendar based on topic clusters"
  • "What content gaps do we have?"

Tool Enhancement (Optional)

Topic cluster mapping is significantly better with keyword data that shows search volume, difficulty, and semantic relationships across hundreds of subtopic variations.

Agent Prompt to User

"I can build a comprehensive topical authority map using competitive analysis and content gap identification. For the most precise results — especially accurate volume data and keyword clustering at scale — I'd recommend connecting a keyword data API."

Recommended: DataForSEO (pay-per-use, ~$0.01/keyword, no monthly minimum)

  • Sign up at dataforseo.com → get API login + password
  • Set DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD env vars

Alternatives that also work:

  • Keywords Everywhere API ($1 per 10 credits = 100K keywords, very cheap) → set KEYWORDS_EVERYWHERE_API_KEY
  • SEMrush API (if you have a subscription) → set SEMRUSH_API_KEY
  • Ahrefs API (if you have a subscription) → set AHREFS_API_TOKEN

"Want to use one of these, or should I proceed with baseline mode? Baseline uses our existing SEO tools and web research — still produces a strong topic map, but with less granular volume data per subtopic."

Mode Selection
  • Enhanced mode — Bulk keyword data via DataForSEO / Keywords Everywhere / SEMrush / Ahrefs. Gets search volume, difficulty, and semantic grouping for every subtopic. Enables data-driven prioritization and precise gap identification. Also supports keyword clustering APIs that automatically group related terms.
  • Baseline mode — Uses seo-domain-analyzer for domain metrics, web_search for topic research, reddit-post-finder for question mining, competitor analysis via site-content-catalog. Topic mapping and cluster architecture are equally strong. Volume estimates are directional rather than exact.

Phase 0: Intake

  1. Your site URL — For existing content audit
  2. Target topics — 1-5 broad topic areas you want authority in (e.g., "sales automation", "content marketing", "data privacy")
  3. Competitors — 2-5 competitor URLs who rank well for these topics
  4. ICP — Who reads your content? (role, pain, goal)
  5. Content capacity — How many articles can your team produce per month?
  6. Existing content — Do you have a blog? How many articles? (we'll audit it)
  7. Time horizon — 3-month plan? 6-month? 12-month?
  8. Tool preference — Enhanced mode with keyword API, or baseline? (see Tool Enhancement above)

Phase 1: Current State Audit

1A: Your Existing Content

Run site-content-catalog on your site:

python3 skills/site-content-catalog/scripts/catalog_content.py \
  --url "<your_site_url>" \
  --output json

Map all existing content:

  • Blog posts by topic
  • Resource pages, guides, glossary
  • Landing pages with content
  • Identify which topics you already have content for
  • Note: thin pages, outdated content, orphan pages (no internal links)
1B: Competitor Content Mapping

For each competitor, run site-content-catalog:

python3 skills/site-content-catalog/scripts/catalog_content.py \
  --url "<competitor_url>" \
  --output json

Map their content architecture:

  • How do they structure topic clusters?
  • Which topics have pillar pages?
  • How deep do their clusters go?
  • Internal linking patterns
  • Content freshness (update dates)
1C: Domain Authority Baseline

Run seo-domain-analyzer for your site and competitors:

  • Your domain authority vs. competitors
  • Keyword overlap analysis
  • Where competitors rank that you don't

Phase 2: Topic Universe Expansion

2A: Subtopic Discovery

For each target topic area, generate the full subtopic universe:

Enhanced mode (DataForSEO / Keywords Everywhere):

# DataForSEO keyword suggestions
POST /v3/dataforseo_labs/google/keyword_suggestions/live
{
  "keyword": "<topic>",
  "limit": 500
}

# DataForSEO related keywords
POST /v3/dataforseo_labs/google/related_keywords/live
{
  "keyword": "<topic>",
  "limit": 500
}

Extract:

  • All related keywords and questions
  • Search volumes per keyword
  • Keyword difficulty scores
  • Semantic groups (auto-clustered by meaning)

Baseline mode:

Use multiple sources to build the subtopic list:

  • web_search for "topic + [what/how/why/best/vs/guide/examples]"
  • reddit-post-finder for questions people ask about the topic
  • Google autocomplete patterns (via web search)
  • Competitor content titles (from Phase 1B)
  • PAA questions from search results
2B: Question Mining

Run reddit-post-finder for each topic area:

python3 skills/reddit-post-finder/scripts/search_reddit.py \
  --subreddit "<relevant_subs>" \
  --keywords "<topic>" \
  --days 365 --sort top --time year

Extract:

  • Questions people ask (→ individual article topics)
  • Recurring themes (→ cluster pillars)
  • Misconceptions (→ myth-busting content)
  • Comparisons people make (→ vs/ content)
  • Use cases discussed (→ use-case content)
2C: Keyword Clustering

Group all discovered keywords/subtopics into semantic clusters:

Enhanced mode: Use DataForSEO keyword clustering API or group by SERP overlap (keywords that share 3+ ranking URLs likely belong to the same cluster).

Baseline mode: Manual semantic grouping based on:

  • Shared root concepts
  • User intent alignment (informational / commercial / navigational)
  • Topic hierarchy (broad → specific)

Phase 3: Cluster Architecture

3A: Pillar-Cluster Mapping

For each topic area, design the cluster hierarchy:

PILLAR: [Broad Topic] — "The Complete Guide to [Topic]"
│
├── CLUSTER 1: [Subtopic Group A]
│   ├── Article: [Specific subtopic A1]
│   ├── Article: [Specific subtopic A2]
│   └── Article: [Specific subtopic A3]
│
├── CLUSTER 2: [Subtopic Group B]
│   ├── Article: [Specific subtopic B1]
│   ├── Article: [Specific subtopic B2]
│   └── Article: [Specific subtopic B3]
│
├── CLUSTER 3: [Subtopic Group C]
│   ├── Article: [Specific subtopic C1]
│   └── Article: [Specific subtopic C2]
│
└── SUPPORTING: [Glossary terms, FAQs, tools]
    ├── Glossary: [Term 1]
    ├── Glossary: [Term 2]
    └── FAQ: [Common questions]
3B: Content Type Assignment

For each piece in the cluster:

Content Type When to Use Typical Word Count
Pillar page Broad topic overview, links to all cluster content 3,000-5,000+
Cluster article Deep dive on subtopic 1,500-3,000
Comparison post vs/ or alternatives content 2,000-3,500
How-to guide Step-by-step instruction 1,500-2,500
Glossary entry Definition + context 500-1,000
Tool/Calculator Interactive resource 500 + tool
Case study Proof point 1,000-2,000
Listicle Curated collection 1,500-3,000
3C: Internal Linking Architecture

Design the linking structure:

  1. Pillar → All cluster articles (every cluster article gets a link from the pillar)
  2. Cluster articles → Pillar (every article links back to the pillar)
  3. Cluster articles ↔ Related cluster articles (cross-links within the cluster)
  4. Cross-cluster links where topics overlap
  5. Supporting content → Relevant cluster articles (glossary terms link to articles that explain them in depth)

Map specific anchor text for each link.

Phase 4: Gap Analysis & Prioritization

4A: Coverage Gap Matrix
Subtopic Your Content Competitor A Competitor B Volume Difficulty Gap?
[subtopic 1] ✗ None ✓ Pillar page ✓ Blog post [vol] [diff] ✓ High priority
[subtopic 2] ✓ Thin post ✓ Deep guide ✗ None [vol] [diff] ✓ Update needed
[subtopic 3] ✓ Strong guide ✓ Similar ✓ Similar [vol] [diff] ✗ Covered
[subtopic 4] ✗ None ✗ None ✗ None [vol] [diff] ✓ White space
4B: Priority Scoring

Score each content piece to create:

Factor Weight Description
Search volume 25% Monthly search demand
Competitive gap 25% How much better can you be than what exists?
Intent alignment 20% Does the searcher match your ICP?
Cluster completeness 15% Does this fill a critical gap in a cluster?
Effort 15% How much work to create high-quality content?
4C: Content Calendar

Based on content capacity and priority scores:

Month 1: Build [N] pillar foundations

  • [Pillar 1] — [rationale]
  • [3-5 highest-priority cluster articles]

Month 2: Deepen Cluster 1, start Cluster 2

  • [5-8 articles] — [rationale]

Month 3: Complete Cluster 2, begin Cluster 3

  • [5-8 articles] — [rationale]

Months 4-6: Expansion

  • [Continue pattern based on capacity]

Phase 5: Output

# Topical Authority Map — [Site/Client] — [DATE]

## Executive Summary
- Topic areas mapped: [N]
- Total content pieces identified: [N] (pillars: [N], clusters: [N], supporting: [N])
- Existing content: [N] pages ([N] strong, [N] need updates, [N] gaps)
- Net new content needed: [N] pages
- Estimated timeline to full coverage: [N] months at [N] articles/month

---

## Topic Map: [Topic Area 1]

### Cluster Architecture
[Visual tree structure per Phase 3A]

### Pillar Page
- **Target keyword:** [keyword] ([volume]/mo, [difficulty])
- **Title:** [recommended title]
- **Content type:** Comprehensive guide
- **Word count target:** [X]-[Y]
- **Links to:** [all cluster articles listed]
- **Status:** [Exists — needs update / New — priority [P0/P1/P2]]

### Cluster: [Subtopic Group A]

#### Article: [Subtopic A1]
- **Target keyword:** [keyword] ([volume]/mo, [difficulty])
- **Content type:** [how-to / comparison / listicle / etc.]
- **Word count target:** [X]-[Y]
- **Links to:** Pillar + [related articles]
- **Links from:** Pillar + [related articles]
- **Priority:** [P0/P1/P2]
- **Anchor text:** "[anchor]" from pillar, "[anchor]" from [related article]

#### Article: [Subtopic A2]
...

### Cluster: [Subtopic Group B]
...

---

## Topic Map: [Topic Area 2]
...

---

## Internal Linking Matrix

| From ↓ / To → | Pillar | Article A1 | Article A2 | Article B1 | ... |
|----------------|--------|-----------|-----------|-----------|-----|
| **Pillar** | — | ✓ "[anchor]" | ✓ "[anchor]" | ✓ "[anchor]" | |
| **Article A1** | ✓ "[anchor]" | — | ✓ "[anchor]" | | |
| **Article A2** | ✓ "[anchor]" | ✓ "[anchor]" | — | | |
| **Article B1** | ✓ "[anchor]" | | | — | |

---

## Content Calendar

### Month 1: Foundation
| Week | Content Piece | Type | Cluster | Keywords | Priority |
|------|--------------|------|---------|----------|----------|
| W1 | [Pillar: Topic 1] | Pillar page | — | [kw] ([vol]) | P0 |
| W1 | [Article A1] | Cluster article | A | [kw] ([vol]) | P0 |
| W2 | [Article A2] | Cluster article | A | [kw] ([vol]) | P0 |
| W2 | [Article B1] | Cluster article | B | [kw] ([vol]) | P0 |

### Month 2: Depth
...

### Month 3: Expansion
...

---

## Coverage Gap Report

### High Priority (Competitors rank, you don't)
| Topic | Competitor Coverage | Your Status | Volume | Recommended Action |
|-------|-------------------|-------------|--------|--------------------|
| [topic] | A: Pillar, B: Blog post | None | [vol] | Create [content type] |

### Medium Priority (Weak coverage)
| Topic | Your Current Page | Issue | Volume | Recommended Action |
|-------|------------------|-------|--------|--------------------|
| [topic] | [URL] | Thin (400 words) | [vol] | Expand to [X] words, add [sections] |

### Existing Content Updates Needed
| URL | Issue | Action Required | Effort |
|-----|-------|----------------|--------|
| [url] | Outdated (2023 data) | Update stats, refresh examples | 2 hours |
| [url] | No internal links | Add [N] links to cluster articles | 30 min |
| [url] | Missing from pillar | Add link from pillar with "[anchor]" | 15 min |

---

## Metrics to Track
- **Topical coverage %** — Articles created vs. total identified
- **Internal link density** — Avg links per article within cluster
- **Cluster ranking velocity** — Time from publish to page 1 per cluster
- **Pillar page rankings** — Position for head terms
- **Organic traffic by cluster** — Traffic attributed to each topic cluster

Save to the current working directory or wherever the user prefers.

For large topic maps (3+ topic areas), also export a summary CSV: content-calendar-[YYYY-MM-DD].csv

Cost

Component Cost
Site catalog (your site, once) ~$0.05-0.10
Site catalog per competitor ~$0.05-0.10
SEO domain analyzer ~$0.10-0.20
Reddit scraper (per topic area) ~$0.05-0.10
DataForSEO keyword data (enhanced) ~$0.50-3.00 (depending on keyword count)
Keywords Everywhere (enhanced alt) ~$0.01-0.10
Page fetches (competitor content analysis) ~$0.01-0.05
Analysis Free (LLM reasoning)
Total per topic area (baseline) ~$0.25-0.50
Total per topic area (enhanced) ~$0.75-3.50
3 topic areas (baseline) ~$0.75-1.50
3 topic areas (enhanced) ~$2.25-10.50

Tools Required

  • Apify API token — APIFY_API_TOKEN env var
  • Upstream skills: site-content-catalog, seo-domain-analyzer, reddit-post-finder, fetch_webpage
  • Optional (enhanced): DataForSEO (DATAFORSEO_LOGIN + DATAFORSEO_PASSWORD), Keywords Everywhere (KEYWORDS_EVERYWHERE_API_KEY), SEMrush (SEMRUSH_API_KEY), or Ahrefs (AHREFS_API_TOKEN)

Scheduling

For ongoing topical authority tracking:

  • Run quarterly to reassess coverage gaps
  • Monthly: check for new subtopics emerging in the space
  • After each content batch: update the map with published URLs and internal links

Trigger Phrases

  • "Map our topical authority for [topic]"
  • "Build a topic cluster strategy"
  • "What content gaps do we have?"
  • "Create a content calendar for SEO"
  • "How do we build authority in [topic area]?"
  • "Plan our content architecture"
1---
2name: topical-authority-mapper
3description: >
4 Map complete topic clusters for any subject area — hub pages, spoke articles,
5 supporting content, internal linking architecture. Identifies content gaps,
6 priority order, and builds a structured content calendar. Produces topic maps
7 that build genuine topical authority, not random blog posts.
8tags: [seo]
9---
10 
11# Topical Authority Mapper
12 
13Most content strategies are just keyword lists turned into blog posts. Real topical authority requires a structured map: pillar pages that own broad topics, cluster pages that go deep on subtopics, and an internal linking architecture that tells Google "we comprehensively cover this subject." This skill builds that map.
14 
15**Core principle:** Google rewards topical depth, not random keyword coverage. A site with 15 interlinked articles that thoroughly cover "sales automation" will outrank a site with 50 unrelated blog posts that happen to mention the phrase. This skill builds the cluster architecture that creates genuine authority.
16 
17## When to Use
18 
19- "What content should we create to dominate [topic]?"
20- "Build a topic cluster strategy for our blog"
21- "Map out our topical authority for [category]"
22- "Create a content calendar based on topic clusters"
23- "What content gaps do we have?"
24 
25## Tool Enhancement (Optional)
26 
27Topic cluster mapping is significantly better with keyword data that shows search volume, difficulty, and semantic relationships across hundreds of subtopic variations.
28 
29### Agent Prompt to User
30 
31> "I can build a comprehensive topical authority map using competitive analysis and content gap identification. For the most precise results — especially accurate volume data and keyword clustering at scale — I'd recommend connecting a keyword data API."
32>
33> **Recommended: DataForSEO** (pay-per-use, ~$0.01/keyword, no monthly minimum)
34> - Sign up at dataforseo.com → get API login + password
35> - Set `DATAFORSEO_LOGIN` and `DATAFORSEO_PASSWORD` env vars
36>
37> **Alternatives that also work:**
38> - **Keywords Everywhere API** ($1 per 10 credits = 100K keywords, very cheap) → set `KEYWORDS_EVERYWHERE_API_KEY`
39> - **SEMrush API** (if you have a subscription) → set `SEMRUSH_API_KEY`
40> - **Ahrefs API** (if you have a subscription) → set `AHREFS_API_TOKEN`
41>
42> "Want to use one of these, or should I proceed with baseline mode? Baseline uses our existing SEO tools and web research — still produces a strong topic map, but with less granular volume data per subtopic."
43 
44### Mode Selection
45 
46- **Enhanced mode** — Bulk keyword data via DataForSEO / Keywords Everywhere / SEMrush / Ahrefs. Gets search volume, difficulty, and semantic grouping for every subtopic. Enables data-driven prioritization and precise gap identification. Also supports keyword clustering APIs that automatically group related terms.
47- **Baseline mode** — Uses `seo-domain-analyzer` for domain metrics, `web_search` for topic research, `reddit-post-finder` for question mining, competitor analysis via `site-content-catalog`. Topic mapping and cluster architecture are equally strong. Volume estimates are directional rather than exact.
48 
49## Phase 0: Intake
50 
511. **Your site URL** — For existing content audit
522. **Target topics** — 1-5 broad topic areas you want authority in (e.g., "sales automation", "content marketing", "data privacy")
533. **Competitors** — 2-5 competitor URLs who rank well for these topics
544. **ICP** — Who reads your content? (role, pain, goal)
555. **Content capacity** — How many articles can your team produce per month?
566. **Existing content** — Do you have a blog? How many articles? (we'll audit it)
577. **Time horizon** — 3-month plan? 6-month? 12-month?
588. **Tool preference** — Enhanced mode with keyword API, or baseline? (see Tool Enhancement above)
59 
60## Phase 1: Current State Audit
61 
62### 1A: Your Existing Content
63 
64Run `site-content-catalog` on your site:
65 
66```bash
67python3 skills/site-content-catalog/scripts/catalog_content.py \
68 --url "<your_site_url>" \
69 --output json
70```
71 
72Map all existing content:
73- Blog posts by topic
74- Resource pages, guides, glossary
75- Landing pages with content
76- Identify which topics you already have content for
77- Note: thin pages, outdated content, orphan pages (no internal links)
78 
79### 1B: Competitor Content Mapping
80 
81For each competitor, run `site-content-catalog`:
82 
83```bash
84python3 skills/site-content-catalog/scripts/catalog_content.py \
85 --url "<competitor_url>" \
86 --output json
87```
88 
89Map their content architecture:
90- How do they structure topic clusters?
91- Which topics have pillar pages?
92- How deep do their clusters go?
93- Internal linking patterns
94- Content freshness (update dates)
95 
96### 1C: Domain Authority Baseline
97 
98Run `seo-domain-analyzer` for your site and competitors:
99 
100- Your domain authority vs. competitors
101- Keyword overlap analysis
102- Where competitors rank that you don't
103 
104## Phase 2: Topic Universe Expansion
105 
106### 2A: Subtopic Discovery
107 
108For each target topic area, generate the full subtopic universe:
109 
110**Enhanced mode (DataForSEO / Keywords Everywhere):**
111 
112```
113# DataForSEO keyword suggestions
114POST /v3/dataforseo_labs/google/keyword_suggestions/live
115{
116 "keyword": "<topic>",
117 "limit": 500
118}
119 
120# DataForSEO related keywords
121POST /v3/dataforseo_labs/google/related_keywords/live
122{
123 "keyword": "<topic>",
124 "limit": 500
125}
126```
127 
128Extract:
129- All related keywords and questions
130- Search volumes per keyword
131- Keyword difficulty scores
132- Semantic groups (auto-clustered by meaning)
133 
134**Baseline mode:**
135 
136Use multiple sources to build the subtopic list:
137- `web_search` for "topic + [what/how/why/best/vs/guide/examples]"
138- `reddit-post-finder` for questions people ask about the topic
139- Google autocomplete patterns (via web search)
140- Competitor content titles (from Phase 1B)
141- PAA questions from search results
142 
143### 2B: Question Mining
144 
145Run `reddit-post-finder` for each topic area:
146 
147```bash
148python3 skills/reddit-post-finder/scripts/search_reddit.py \
149 --subreddit "<relevant_subs>" \
150 --keywords "<topic>" \
151 --days 365 --sort top --time year
152```
153 
154Extract:
155- Questions people ask (→ individual article topics)
156- Recurring themes (→ cluster pillars)
157- Misconceptions (→ myth-busting content)
158- Comparisons people make (→ vs/ content)
159- Use cases discussed (→ use-case content)
160 
161### 2C: Keyword Clustering
162 
163Group all discovered keywords/subtopics into semantic clusters:
164 
165**Enhanced mode:** Use DataForSEO keyword clustering API or group by SERP overlap (keywords that share 3+ ranking URLs likely belong to the same cluster).
166 
167**Baseline mode:** Manual semantic grouping based on:
168- Shared root concepts
169- User intent alignment (informational / commercial / navigational)
170- Topic hierarchy (broad → specific)
171 
172## Phase 3: Cluster Architecture
173 
174### 3A: Pillar-Cluster Mapping
175 
176For each topic area, design the cluster hierarchy:
177 
178```
179PILLAR: [Broad Topic] — "The Complete Guide to [Topic]"
180│
181├── CLUSTER 1: [Subtopic Group A]
182│ ├── Article: [Specific subtopic A1]
183│ ├── Article: [Specific subtopic A2]
184│ └── Article: [Specific subtopic A3]
185│
186├── CLUSTER 2: [Subtopic Group B]
187│ ├── Article: [Specific subtopic B1]
188│ ├── Article: [Specific subtopic B2]
189│ └── Article: [Specific subtopic B3]
190│
191├── CLUSTER 3: [Subtopic Group C]
192│ ├── Article: [Specific subtopic C1]
193│ └── Article: [Specific subtopic C2]
194│
195└── SUPPORTING: [Glossary terms, FAQs, tools]
196 ├── Glossary: [Term 1]
197 ├── Glossary: [Term 2]
198 └── FAQ: [Common questions]
199```
200 
201### 3B: Content Type Assignment
202 
203For each piece in the cluster:
204 
205| Content Type | When to Use | Typical Word Count |
206|-------------|-------------|-------------------|
207| **Pillar page** | Broad topic overview, links to all cluster content | 3,000-5,000+ |
208| **Cluster article** | Deep dive on subtopic | 1,500-3,000 |
209| **Comparison post** | vs/ or alternatives content | 2,000-3,500 |
210| **How-to guide** | Step-by-step instruction | 1,500-2,500 |
211| **Glossary entry** | Definition + context | 500-1,000 |
212| **Tool/Calculator** | Interactive resource | 500 + tool |
213| **Case study** | Proof point | 1,000-2,000 |
214| **Listicle** | Curated collection | 1,500-3,000 |
215 
216### 3C: Internal Linking Architecture
217 
218Design the linking structure:
219 
2201. **Pillar → All cluster articles** (every cluster article gets a link from the pillar)
2212. **Cluster articles → Pillar** (every article links back to the pillar)
2223. **Cluster articles ↔ Related cluster articles** (cross-links within the cluster)
2234. **Cross-cluster links** where topics overlap
2245. **Supporting content → Relevant cluster articles** (glossary terms link to articles that explain them in depth)
225 
226Map specific anchor text for each link.
227 
228## Phase 4: Gap Analysis & Prioritization
229 
230### 4A: Coverage Gap Matrix
231 
232| Subtopic | Your Content | Competitor A | Competitor B | Volume | Difficulty | Gap? |
233|----------|-------------|-------------|-------------|--------|-----------|------|
234| [subtopic 1] | ✗ None | ✓ Pillar page | ✓ Blog post | [vol] | [diff] | ✓ High priority |
235| [subtopic 2] | ✓ Thin post | ✓ Deep guide | ✗ None | [vol] | [diff] | ✓ Update needed |
236| [subtopic 3] | ✓ Strong guide | ✓ Similar | ✓ Similar | [vol] | [diff] | ✗ Covered |
237| [subtopic 4] | ✗ None | ✗ None | ✗ None | [vol] | [diff] | ✓ White space |
238 
239### 4B: Priority Scoring
240 
241Score each content piece to create:
242 
243| Factor | Weight | Description |
244|--------|--------|-------------|
245| **Search volume** | 25% | Monthly search demand |
246| **Competitive gap** | 25% | How much better can you be than what exists? |
247| **Intent alignment** | 20% | Does the searcher match your ICP? |
248| **Cluster completeness** | 15% | Does this fill a critical gap in a cluster? |
249| **Effort** | 15% | How much work to create high-quality content? |
250 
251### 4C: Content Calendar
252 
253Based on content capacity and priority scores:
254 
255**Month 1:** Build [N] pillar foundations
256- [Pillar 1] — [rationale]
257- [3-5 highest-priority cluster articles]
258 
259**Month 2:** Deepen Cluster 1, start Cluster 2
260- [5-8 articles] — [rationale]
261 
262**Month 3:** Complete Cluster 2, begin Cluster 3
263- [5-8 articles] — [rationale]
264 
265**Months 4-6:** Expansion
266- [Continue pattern based on capacity]
267 
268## Phase 5: Output
269 
270```markdown
271# Topical Authority Map — [Site/Client] — [DATE]
272 
273## Executive Summary
274- Topic areas mapped: [N]
275- Total content pieces identified: [N] (pillars: [N], clusters: [N], supporting: [N])
276- Existing content: [N] pages ([N] strong, [N] need updates, [N] gaps)
277- Net new content needed: [N] pages
278- Estimated timeline to full coverage: [N] months at [N] articles/month
279 
280---
281 
282## Topic Map: [Topic Area 1]
283 
284### Cluster Architecture
285[Visual tree structure per Phase 3A]
286 
287### Pillar Page
288- **Target keyword:** [keyword] ([volume]/mo, [difficulty])
289- **Title:** [recommended title]
290- **Content type:** Comprehensive guide
291- **Word count target:** [X]-[Y]
292- **Links to:** [all cluster articles listed]
293- **Status:** [Exists — needs update / New — priority [P0/P1/P2]]
294 
295### Cluster: [Subtopic Group A]
296 
297#### Article: [Subtopic A1]
298- **Target keyword:** [keyword] ([volume]/mo, [difficulty])
299- **Content type:** [how-to / comparison / listicle / etc.]
300- **Word count target:** [X]-[Y]
301- **Links to:** Pillar + [related articles]
302- **Links from:** Pillar + [related articles]
303- **Priority:** [P0/P1/P2]
304- **Anchor text:** "[anchor]" from pillar, "[anchor]" from [related article]
305 
306#### Article: [Subtopic A2]
307...
308 
309### Cluster: [Subtopic Group B]
310...
311 
312---
313 
314## Topic Map: [Topic Area 2]
315...
316 
317---
318 
319## Internal Linking Matrix
320 
321| From ↓ / To → | Pillar | Article A1 | Article A2 | Article B1 | ... |
322|----------------|--------|-----------|-----------|-----------|-----|
323| **Pillar** | — | ✓ "[anchor]" | ✓ "[anchor]" | ✓ "[anchor]" | |
324| **Article A1** | ✓ "[anchor]" | — | ✓ "[anchor]" | | |
325| **Article A2** | ✓ "[anchor]" | ✓ "[anchor]" | — | | |
326| **Article B1** | ✓ "[anchor]" | | | — | |
327 
328---
329 
330## Content Calendar
331 
332### Month 1: Foundation
333| Week | Content Piece | Type | Cluster | Keywords | Priority |
334|------|--------------|------|---------|----------|----------|
335| W1 | [Pillar: Topic 1] | Pillar page | — | [kw] ([vol]) | P0 |
336| W1 | [Article A1] | Cluster article | A | [kw] ([vol]) | P0 |
337| W2 | [Article A2] | Cluster article | A | [kw] ([vol]) | P0 |
338| W2 | [Article B1] | Cluster article | B | [kw] ([vol]) | P0 |
339 
340### Month 2: Depth
341...
342 
343### Month 3: Expansion
344...
345 
346---
347 
348## Coverage Gap Report
349 
350### High Priority (Competitors rank, you don't)
351| Topic | Competitor Coverage | Your Status | Volume | Recommended Action |
352|-------|-------------------|-------------|--------|--------------------|
353| [topic] | A: Pillar, B: Blog post | None | [vol] | Create [content type] |
354 
355### Medium Priority (Weak coverage)
356| Topic | Your Current Page | Issue | Volume | Recommended Action |
357|-------|------------------|-------|--------|--------------------|
358| [topic] | [URL] | Thin (400 words) | [vol] | Expand to [X] words, add [sections] |
359 
360### Existing Content Updates Needed
361| URL | Issue | Action Required | Effort |
362|-----|-------|----------------|--------|
363| [url] | Outdated (2023 data) | Update stats, refresh examples | 2 hours |
364| [url] | No internal links | Add [N] links to cluster articles | 30 min |
365| [url] | Missing from pillar | Add link from pillar with "[anchor]" | 15 min |
366 
367---
368 
369## Metrics to Track
370- **Topical coverage %** — Articles created vs. total identified
371- **Internal link density** — Avg links per article within cluster
372- **Cluster ranking velocity** — Time from publish to page 1 per cluster
373- **Pillar page rankings** — Position for head terms
374- **Organic traffic by cluster** — Traffic attributed to each topic cluster
375```
376 
377Save to the current working directory or wherever the user prefers.
378 
379For large topic maps (3+ topic areas), also export a summary CSV:
380`content-calendar-[YYYY-MM-DD].csv`
381 
382## Cost
383 
384| Component | Cost |
385|-----------|------|
386| Site catalog (your site, once) | ~$0.05-0.10 |
387| Site catalog per competitor | ~$0.05-0.10 |
388| SEO domain analyzer | ~$0.10-0.20 |
389| Reddit scraper (per topic area) | ~$0.05-0.10 |
390| DataForSEO keyword data (enhanced) | ~$0.50-3.00 (depending on keyword count) |
391| Keywords Everywhere (enhanced alt) | ~$0.01-0.10 |
392| Page fetches (competitor content analysis) | ~$0.01-0.05 |
393| Analysis | Free (LLM reasoning) |
394| **Total per topic area (baseline)** | **~$0.25-0.50** |
395| **Total per topic area (enhanced)** | **~$0.75-3.50** |
396| **3 topic areas (baseline)** | **~$0.75-1.50** |
397| **3 topic areas (enhanced)** | **~$2.25-10.50** |
398 
399## Tools Required
400 
401- **Apify API token** — `APIFY_API_TOKEN` env var
402- **Upstream skills:** `site-content-catalog`, `seo-domain-analyzer`, `reddit-post-finder`, `fetch_webpage`
403- **Optional (enhanced):** DataForSEO (`DATAFORSEO_LOGIN` + `DATAFORSEO_PASSWORD`), Keywords Everywhere (`KEYWORDS_EVERYWHERE_API_KEY`), SEMrush (`SEMRUSH_API_KEY`), or Ahrefs (`AHREFS_API_TOKEN`)
404 
405## Scheduling
406 
407For ongoing topical authority tracking:
408- Run quarterly to reassess coverage gaps
409- Monthly: check for new subtopics emerging in the space
410- After each content batch: update the map with published URLs and internal links
411 
412## Trigger Phrases
413 
414- "Map our topical authority for [topic]"
415- "Build a topic cluster strategy"
416- "What content gaps do we have?"
417- "Create a content calendar for SEO"
418- "How do we build authority in [topic area]?"
419- "Plan our content architecture"
420 
View all files on GitHub →

Details

Updated
Sep 21, 2026
License
MIT
Stars on the repo
★ 1,220
Checked
Source
gooseworks-ai/goose-skills ↗
Creator
gooseworks-ai · 206 listings
View creator

Made with topical-authority-mapper

Topical authority mapper — CleanShot 2026-07-13 at 20 16 54@2x (from the gooseworks-ai/goose-skills README)
Topical authority mapper — CleanShot 2026-07-13 at 20 16 54@2x (from the gooseworks-ai/goose-skills README)

by gooseworks-ai

Similar skills

See all →
SkillThe Lighthouse Agentic Browsing fractionAgentic Browsing ReadinessAgriciDaniel/claude-seo · by AgriciDanielAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).★ 17.4k GitHub starsSkillReferring domains, anchor text distributionBacklink Profile AnalysisAgriciDaniel/claude-seo · by AgriciDanielBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.★ 17.4k GitHub starsSkillConnect a CMS to notfair SEO tools/setup-cmsnowork-studio/notfair-plugin · by nowork-studioConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report.★ 3.9k GitHub starsSkillBacklink profile for any domainBacklink checkRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".★ 3.1k GitHub starsSkillOptimize Core Web Vitals for better page experienceCore Web Vitals optimizationaddyosmani/web-quality-skills · by addyosmaniOptimize Core Web Vitals (LCP, INP, CLS) for better page experience using field and lab evidence. Use when asked to "improve Core Web Vitals", "fix LCP", "reduce CLS", "optimize INP", "page experience optimization", or "fix layout shifts".★ 2.8k GitHub starsSkillRun an SEO page observation-action-review loopRun the SEO page looptsingyuai/growth-lab · by tsingyuaiRun an SEO page observation-action-review loop with persistent Memory by coordinating demand research, page creation, adversarial review, image generation, IndexNow submission, and performance review. Use when taking an SEO page from opportunity discovery through publication, measurement, iteration, or continuing a previous SEO loop from Memory.★ 2k GitHub stars

More from gooseworks-ai

SkillMine the highest-converting ad angles from customer reviewsAd angle minergooseworks-ai/goose-skills · by gooseworks-aiMine the highest-converting ad angles from customer reviews, Reddit complaints, support tickets, and competitor ads. Extracts actual pain language, competitor weaknesses, and outcome phrases that real buyers use. Outputs a ranked angle bank with proof quotes and recommended ad formats per angle.★ 1.2k GitHub starsSkillAnalyze ad campaign performance data to identify what'sAd campaign analyzergooseworks-ai/goose-skills · by gooseworks-aiAnalyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift recommendations and scenario modeling.★ 1.2k GitHub starsSkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzergooseworks-ai/goose-skills · by gooseworks-aiFor paid lead-gen and participant-recruitment ads, replaces vanity CPA with true CAC per qualified lead by joining ad-platform data with downstream funnel events, surfaces tracking gaps, and classifies every creative into Scale / Keep / Investigate / Cut.★ 1.2k GitHub starsSkillAnalyze the message match between your ads and landing pagesAd to landing page auditorgooseworks-ai/goose-skills · by gooseworks-aiAnalyze the message match between your ads and landing pages. Checks if the promise in the ad copy carries through to the landing page headline, body, and CTA. Flags disconnects that kill conversion rates. Works with Google, Meta, and LinkedIn ads.★ 1.2k GitHub starsSkillCheck and improve your brand's visibility across AI searchAeogooseworks-ai/goose-skills · by gooseworks-aiCheck and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek). Set up tracking, run visibility analyses, audit your website for AI readability, and get actionable recommendations. Uses the npx goose-aeo@latest CLI.★ 1.2k GitHub starsSkillSearch Amazon products - find items, compare pricesAmazon Product Searchgooseworks-ai/goose-skills · by gooseworks-aiSearch Amazon products - find items, compare prices, read reviews★ 1.2k GitHub stars