KOL Content Monitor
Kol content monitor

Track what key opinion leaders (KOLs) in your space are posting on LinkedIn and Twitter/X. Surfaces trending narratives, high-engagement topics, and early signals of emerging conversations before they peak.
--- name: kol-content-monitor description: > Track what key opinion leaders (KOLs) in your space are posting on LinkedIn and Twitter/X. Surfaces trending narratives, high-engagement topics, and early signals of emerging conversations before they peak. Chains linkedin-profile-post-scraper and twitter-mention-tracker. Use when a marketing team wants to ride trends rather than create them from scratch, or when a founder wants to know which topics are resonating with their audience. tags: [monitoring] --- # KOL Content Monitor Track what Key Opinion Leaders in your space are writing about. Surface trending narratives early — before they peak — so your team can join the conversation at the right time with relevant content. **Core principle:** For seed-stage teams, the fastest path to content distribution is riding a wave that's already breaking, not creating one from scratch. ## When to Use
Overview
Track what Key Opinion Leaders in your space are writing about. Surface trending narratives early — before they peak — so your team can join the conversation at the right time with relevant content.
Manual install (npx, ZIP)
npx skills add gooseworks-ai/goose-skills --skill kol-content-monitor -g -a claude-codemkdir -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/monitoring/composites/kol-content-monitorNew-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/964d865d4e4a9885df77/kol-content-monitor.zip" -OutFile "$env:TEMP\kol-content-monitor.zip"; Expand-Archive "$env:TEMP\kol-content-monitor.zip" -DestinationPath "$HOME\.claude\skills" -ForceConnects with Agent Alley MCP · agentalley.io/mcp
Files included
SKILL.md6.6 KBskill.meta.json377 B
Read the files here
gooseworks-ai/
Shared references2SKILL.md reads these from elsewhere in the repo. Not in the ZIP.
- search_twitter.pyskills/monitoring/capabilities/twitter-mention-tracker/scripts/7.9 KB
- scrape_linkedin_posts.pyskills/social/capabilities/linkedin-profile-post-scraper/scripts/9.3 KB
Show the full text216 lines
KOL Content Monitor
Track what Key Opinion Leaders in your space are writing about. Surface trending narratives early — before they peak — so your team can join the conversation at the right time with relevant content.
Core principle: For seed-stage teams, the fastest path to content distribution is riding a wave that's already breaking, not creating one from scratch.
When to Use
- "What are the top voices in [our space] posting about?"
- "What topics are trending on LinkedIn in [industry]?"
- "I want to know what content is resonating before I write anything"
- "Track [list of founders/experts] and tell me what they're saying"
- "Find trending narratives I can contribute to"
Phase 0: Intake
KOL List
- Names and LinkedIn URLs of KOLs to track (if known)
- If unknown: use
kol-discoveryskill first to build the list
- If unknown: use
- Twitter/X handles for the same KOLs (optional but recommended for full picture)
- Any specific topics/keywords you care about? (for filtering noisy feeds)
Scope
- How far back? (default: 7 days for weekly monitor, 30 days for first run)
- Minimum engagement threshold to include a post? (default: 20 reactions/likes)
Save config to the current working directory as kol-monitor.json (or user-specified path).
{
"kols": [
{
"name": "Lenny Rachitsky",
"linkedin": "https://www.linkedin.com/in/lennyrachitsky/",
"twitter": "@lennysan"
},
{
"name": "Kyle Poyar",
"linkedin": "https://www.linkedin.com/in/kylepoyar/",
"twitter": "@kylepoyar"
}
],
"days_back": 7,
"min_reactions": 20,
"keywords": ["GTM", "growth", "AI", "outbound", "founder"],
"output_path": "kol-monitor-[DATE].md"
}
Phase 1: Scrape LinkedIn Posts
Run linkedin-profile-post-scraper for all KOL LinkedIn profiles:
python3 skills/linkedin-profile-post-scraper/scripts/scrape_linkedin_posts.py \
--profiles "<url1>,<url2>,<url3>" \
--days <days_back> \
--max-posts 20 \
--output json
Filter results: only include posts with reactions ≥ min_reactions.
Phase 2: Scrape Twitter/X Posts
Run twitter-mention-tracker for each handle:
python3 skills/twitter-mention-tracker/scripts/search_twitter.py \
--query "from:<handle>" \
--since <YYYY-MM-DD> \
--until <YYYY-MM-DD> \
--max-tweets 20 \
--output json
Filter: only include tweets with likes ≥ min_reactions / 2 (Twitter engagement is lower than LinkedIn).
Phase 3: Topic Clustering
Group all posts across all KOLs by topic/theme:
Clustering approach:
- Extract the main topic from each post (1-3 word label)
- Group similar topics together
- Count: how many KOLs touched this topic? How many total posts?
- Rank by: total engagement (sum of reactions/likes across all posts on that topic)
This surfaces topics with broad consensus (multiple KOLs talking about it) vs. individual takes.
Signal types to flag:
| Signal | Meaning | Example |
|---|---|---|
| Convergence | 3+ KOLs on same topic in same week | Multiple founders posting about "AI SDR fatigue" |
| Spike | Topic that 2x'd in volume vs last week | Suddenly everyone's talking about [new thing] |
| Underdog | 1 KOL posting about topic nobody else covers | Potential early-mover opportunity |
| Controversy | Posts with high comment/reaction ratio | Debate you could weigh in on |
Phase 4: Output Format
# KOL Content Monitor — Week of [DATE]
## Tracked KOLs
[N] KOLs | [N] LinkedIn posts | [N] tweets | Period: [date range]
---
## Trending Topics This Week
### 1. [Topic Name] — CONVERGENCE SIGNAL
- **KOLs discussing:** [Name 1], [Name 2], [Name 3]
- **Total posts:** [N] | **Total engagement:** [N] reactions/likes
- **Trend direction:** ↑ New this week / ↑↑ Growing / → Stable
**Best posts on this topic:**
> "[Post excerpt — first 150 chars]"
— [Author], [Date] | [N] reactions
[LinkedIn URL]
> "[Tweet text]"
— [@handle], [Date] | [N] likes
[Twitter URL]
**Content opportunity:** [1-2 sentences on how to contribute to this conversation]
---
### 2. [Topic Name]
...
---
## High-Engagement Posts (Top 5 This Week)
| Post | Author | Platform | Engagement | Topic |
|------|--------|----------|------------|-------|
| "[Preview...]" | [Name] | LinkedIn | [N] reactions | [topic] |
...
---
## Emerging Topics to Watch
Topics picked up by 1 KOL this week — too early to call a trend but worth tracking:
- [Topic] — [KOL name] — [brief description]
- [Topic] — ...
---
## Recommended Content Actions
### This Week (Ride the Wave)
1. **[Topic]** is peaking — ideal moment to publish your take. Suggested angle: [angle]
2. **[Controversy]** is generating debate — consider a nuanced response post. Your positioning: [suggestion]
### Next Week (Get Ahead)
1. **[Emerging topic]** is early-stage — write something now before it gets crowded.
Save to the current working directory as kol-monitor-[YYYY-MM-DD].md (or user-specified path).
Phase 5: Build Trigger-Based Content Calendar
Optional: from the monitor output, propose a content calendar entry for each "Ride the Wave" opportunity:
Topic: [topic]
Best post format: [LinkedIn insight post / tweet thread / blog]
Suggested hook: [hook]
Supporting points: [3 bullets from your product/experience]
Ideal publish date: [within 3 days of peak]
Scheduling
Run weekly (Friday afternoon — catches the week's peaks and gives weekend to draft):
0 14 * * 5 python3 run_skill.py kol-content-monitor --client <client-name>
Cost
| Component | Cost |
|---|---|
| LinkedIn post scraping (per profile) | ~$0.05-0.20 (Apify) |
| Twitter scraping (per run) | ~$0.01-0.05 |
| Total per weekly run (10 KOLs) | ~$0.50-2.00 |
Tools Required
- Apify API token —
APIFY_API_TOKENenv var - Upstream skills:
linkedin-profile-post-scraper,twitter-mention-tracker - Optional upstream:
kol-discovery(to build initial KOL list)
Trigger Phrases
- "What are the top voices in [space] posting about this week?"
- "Track my KOL list and give me content ideas"
- "Run KOL content monitor for [client]"
- "What's trending on LinkedIn in [industry]?"
| 1 | |
| 2 | name kol-content-monitor |
| 3 | description > |
| 4 | Track what key opinion leaders (KOLs) in your space are posting on LinkedIn and Twitter/X. |
| 5 | Surfaces trending narratives, high-engagement topics, and early signals of emerging |
| 6 | conversations before they peak. Chains linkedin-profile-post-scraper and twitter-mention-tracker. |
| 7 | Use when a marketing team wants to ride trends rather than create them from scratch, |
| 8 | or when a founder wants to know which topics are resonating with their audience. |
| 9 | tags [monitoring] |
| 10 | |
| 11 | |
| 12 | # KOL Content Monitor |
| 13 | |
| 14 | Track what Key Opinion Leaders in your space are writing about. Surface trending narratives early — before they peak — so your team can join the conversation at the right time with relevant content. |
| 15 | |
| 16 | **Core principle:** For seed-stage teams, the fastest path to content distribution is riding a wave that's already breaking, not creating one from scratch. |
| 17 | |
| 18 | ## When to Use |
| 19 | |
| 20 | "What are the top voices in [our space] posting about?" |
| 21 | "What topics are trending on LinkedIn in [industry]?" |
| 22 | "I want to know what content is resonating before I write anything" |
| 23 | "Track [list of founders/experts] and tell me what they're saying" |
| 24 | "Find trending narratives I can contribute to" |
| 25 | |
| 26 | ## Phase 0: Intake |
| 27 | |
| 28 | ### KOL List |
| 29 | Names and LinkedIn URLs of KOLs to track (if known) |
| 30 | If unknown: use `kol-discovery` skill first to build the list |
| 31 | Twitter/X handles for the same KOLs (optional but recommended for full picture) |
| 32 | Any specific topics/keywords you care about? (for filtering noisy feeds) |
| 33 | |
| 34 | ### Scope |
| 35 | How far back? (default: 7 days for weekly monitor, 30 days for first run) |
| 36 | Minimum engagement threshold to include a post? (default: 20 reactions/likes) |
| 37 | |
| 38 | Save config to the current working directory as `kol-monitor.json` (or user-specified path). |
| 39 | |
| 40 | |
| 41 | { |
| 42 | "kols": [ |
| 43 | { |
| 44 | "name": "Lenny Rachitsky", |
| 45 | "linkedin": "https://www.linkedin.com/in/lennyrachitsky/", |
| 46 | "twitter": "@lennysan" |
| 47 | }, |
| 48 | { |
| 49 | "name": "Kyle Poyar", |
| 50 | "linkedin": "https://www.linkedin.com/in/kylepoyar/", |
| 51 | "twitter": "@kylepoyar" |
| 52 | } |
| 53 | ], |
| 54 | "days_back": 7, |
| 55 | "min_reactions": 20, |
| 56 | "keywords": ["GTM", "growth", "AI", "outbound", "founder"], |
| 57 | "output_path": "kol-monitor-[DATE].md" |
| 58 | } |
| 59 | |
| 60 | |
| 61 | ## Phase 1: Scrape LinkedIn Posts |
| 62 | |
| 63 | Run `linkedin-profile-post-scraper` for all KOL LinkedIn profiles: |
| 64 | |
| 65 | |
| 66 | python3 skills/linkedin-profile-post-scraper/scripts/scrape_linkedin_posts.py \ |
| 67 | --profiles "<url1>,<url2>,<url3>" \ |
| 68 | --days <days_back> \ |
| 69 | --max-posts 20 \ |
| 70 | --output json |
| 71 | |
| 72 | |
| 73 | Filter results: only include posts with reactions ≥ `min_reactions`. |
| 74 | |
| 75 | ## Phase 2: Scrape Twitter/X Posts |
| 76 | |
| 77 | Run `twitter-mention-tracker` for each handle: |
| 78 | |
| 79 | |
| 80 | python3 skills/twitter-mention-tracker/scripts/search_twitter.py \ |
| 81 | --query "from:<handle>" \ |
| 82 | --since <YYYY-MM-DD> \ |
| 83 | --until <YYYY-MM-DD> \ |
| 84 | --max-tweets 20 \ |
| 85 | --output json |
| 86 | |
| 87 | |
| 88 | Filter: only include tweets with likes ≥ `min_reactions / 2` (Twitter engagement is lower than LinkedIn). |
| 89 | |
| 90 | ## Phase 3: Topic Clustering |
| 91 | |
| 92 | Group all posts across all KOLs by topic/theme: |
| 93 | |
| 94 | ### Clustering approach: |
| 95 | Extract the main topic from each post (1-3 word label) |
| 96 | Group similar topics together |
| 97 | Count: how many KOLs touched this topic? How many total posts? |
| 98 | Rank by: total engagement (sum of reactions/likes across all posts on that topic) |
| 99 | |
| 100 | This surfaces topics with **broad consensus** (multiple KOLs talking about it) vs. individual takes. |
| 101 | |
| 102 | ### Signal types to flag: |
| 103 | |
| 104 | | Signal | Meaning | Example | |
| 105 | |--------|---------|---------| |
| 106 | | **Convergence** | 3+ KOLs on same topic in same week | Multiple founders posting about "AI SDR fatigue" | |
| 107 | | **Spike** | Topic that 2x'd in volume vs last week | Suddenly everyone's talking about [new thing] | |
| 108 | | **Underdog** | 1 KOL posting about topic nobody else covers | Potential early-mover opportunity | |
| 109 | | **Controversy** | Posts with high comment/reaction ratio | Debate you could weigh in on | |
| 110 | |
| 111 | ## Phase 4: Output Format |
| 112 | |
| 113 | |
| 114 | # KOL Content Monitor — Week of [DATE] |
| 115 | |
| 116 | ## Tracked KOLs |
| 117 | [N] KOLs | [N] LinkedIn posts | [N] tweets | Period: [date range] |
| 118 | |
| 119 | |
| 120 | |
| 121 | ## Trending Topics This Week |
| 122 | |
| 123 | ### 1. [Topic Name] — CONVERGENCE SIGNAL |
| 124 | - **KOLs discussing:** [Name 1], [Name 2], [Name 3] |
| 125 | - **Total posts:** [N] | **Total engagement:** [N] reactions/likes |
| 126 | - **Trend direction:** ↑ New this week / ↑↑ Growing / → Stable |
| 127 | |
| 128 | **Best posts on this topic:** |
| 129 | |
| 130 | > "[Post excerpt — first 150 chars]" |
| 131 | — [Author], [Date] | [N] reactions |
| 132 | [LinkedIn URL] |
| 133 | |
| 134 | > "[Tweet text]" |
| 135 | — [@handle], [Date] | [N] likes |
| 136 | [Twitter URL] |
| 137 | |
| 138 | **Content opportunity:** [1-2 sentences on how to contribute to this conversation] |
| 139 | |
| 140 | |
| 141 | |
| 142 | ### 2. [Topic Name] |
| 143 | ... |
| 144 | |
| 145 | |
| 146 | |
| 147 | ## High-Engagement Posts (Top 5 This Week) |
| 148 | |
| 149 | | Post | Author | Platform | Engagement | Topic | |
| 150 | |------|--------|----------|------------|-------| |
| 151 | | "[Preview...]" | [Name] | LinkedIn | [N] reactions | [topic] | |
| 152 | ... |
| 153 | |
| 154 | |
| 155 | |
| 156 | ## Emerging Topics to Watch |
| 157 | |
| 158 | Topics picked up by 1 KOL this week — too early to call a trend but worth tracking: |
| 159 | - [Topic] — [KOL name] — [brief description] |
| 160 | - [Topic] — ... |
| 161 | |
| 162 | |
| 163 | |
| 164 | ## Recommended Content Actions |
| 165 | |
| 166 | ### This Week (Ride the Wave) |
| 167 | 1. **[Topic]** is peaking — ideal moment to publish your take. Suggested angle: [angle] |
| 168 | 2. **[Controversy]** is generating debate — consider a nuanced response post. Your positioning: [suggestion] |
| 169 | |
| 170 | ### Next Week (Get Ahead) |
| 171 | 1. **[Emerging topic]** is early-stage — write something now before it gets crowded. |
| 172 | |
| 173 | |
| 174 | Save to the current working directory as `kol-monitor-[YYYY-MM-DD].md` (or user-specified path). |
| 175 | |
| 176 | ## Phase 5: Build Trigger-Based Content Calendar |
| 177 | |
| 178 | Optional: from the monitor output, propose a content calendar entry for each "Ride the Wave" opportunity: |
| 179 | |
| 180 | |
| 181 | Topic: [topic] |
| 182 | Best post format: [LinkedIn insight post / tweet thread / blog] |
| 183 | Suggested hook: [hook] |
| 184 | Supporting points: [3 bullets from your product/experience] |
| 185 | Ideal publish date: [within 3 days of peak] |
| 186 | |
| 187 | |
| 188 | ## Scheduling |
| 189 | |
| 190 | Run weekly (Friday afternoon — catches the week's peaks and gives weekend to draft): |
| 191 | |
| 192 | |
| 193 | 0 14 * * 5 python3 run_skill.py kol-content-monitor --client <client-name> |
| 194 | |
| 195 | |
| 196 | ## Cost |
| 197 | |
| 198 | | Component | Cost | |
| 199 | |-----------|------| |
| 200 | | LinkedIn post scraping (per profile) | ~$0.05-0.20 (Apify) | |
| 201 | | Twitter scraping (per run) | ~$0.01-0.05 | |
| 202 | | **Total per weekly run (10 KOLs)** | **~$0.50-2.00** | |
| 203 | |
| 204 | ## Tools Required |
| 205 | |
| 206 | **Apify API token** — `APIFY_API_TOKEN` env var |
| 207 | **Upstream skills:** `linkedin-profile-post-scraper`, `twitter-mention-tracker` |
| 208 | **Optional upstream:** `kol-discovery` (to build initial KOL list) |
| 209 | |
| 210 | ## Trigger Phrases |
| 211 | |
| 212 | "What are the top voices in [space] posting about this week?" |
| 213 | "Track my KOL list and give me content ideas" |
| 214 | "Run KOL content monitor for [client]" |
| 215 | "What's trending on LinkedIn in [industry]?" |
| 216 |
Details
- Updated
- Sep 21, 2026
- License
- MIT
- Stars on the repo
- ★ 1,220
- Checked
- Source
- gooseworks-ai/goose-skills ↗
- Creator
- gooseworks-ai · 205 listings
Similar skills
See all →
SkillLast 30 Days Research
SkillSocial Platform Scraper
SkillWeChat Article Publisher
SkillTwitter Content Search
SkillYouTube Script Writer
SkillInternet Research RouterMore from gooseworks-ai
SkillAd Angle Miner
SkillAd Campaign Analyzer
SkillLead Quality Analyzer
SkillMessage Match Auditor
SkillAI Search Visibility
SkillAmazon Product Search