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. 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.

380 stars

Best use case

kol-content-monitor is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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.

Teams using kol-content-monitor should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/kol-content-monitor/SKILL.md --create-dirs "https://raw.githubusercontent.com/gooseworks-ai/goose-skills/main/skills/composites/kol-content-monitor/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/kol-content-monitor/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How kol-content-monitor Compares

Feature / Agentkol-content-monitorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 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
1. Names and LinkedIn URLs of KOLs to track (if known)
   - If unknown: use `kol-discovery` skill first to build the list
2. Twitter/X handles for the same KOLs (optional but recommended for full picture)
3. Any specific topics/keywords you care about? (for filtering noisy feeds)

### Scope
4. How far back? (default: 7 days for weekly monitor, 30 days for first run)
5. 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).

```json
{
  "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:

```bash
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:

```bash
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:
1. Extract the main topic from each post (1-3 word label)
2. Group similar topics together
3. Count: how many KOLs touched this topic? How many total posts?
4. 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

```markdown
# 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):

```bash
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_TOKEN` env 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]?"

Related Skills

competitor-monitoring-system

381
from gooseworks-ai/goose-skills

Set up and run ongoing competitive intelligence monitoring for a client. Tracks competitor content, ads, reviews, social, and product moves.

content-repurposer

381
from gooseworks-ai/goose-skills

Take a long-form asset (blog post, webinar, podcast, LinkedIn article) and generate 10+ derivative pieces ready to publish: LinkedIn posts, tweets/X threads, email snippets, short-form hooks, and pull-quotes. Pure reasoning skill — no scripts, no scraping. Use when a founder or marketer has created one piece of content and needs to distribute it across multiple channels without writing each variant from scratch.

competitor-content-tracker

381
from gooseworks-ai/goose-skills

Monitor competitor content across blogs, LinkedIn, and Twitter/X on a recurring basis. Surfaces new posts, trending topics, and content gaps you can own. Chains blog-scraper, linkedin-profile-post-scraper, and twitter-scraper. Use when you want a weekly digest of what competitors are publishing and which topics are generating engagement.

seo-content-engine

380
from gooseworks-ai/goose-skills

Build and run an SEO content engine: audit current state, identify gaps, build keyword architecture, generate content calendar, draft content.

seo-content-audit

380
from gooseworks-ai/goose-skills

Comprehensive SEO footprint analysis. Catalogs all content, pulls real SEO metrics (via Apify Semrush/Ahrefs scrapers or free web search probes), runs competitor analysis, builds topic/keyword and content-type gap matrices, and produces a prioritized recommendations report. The complete SEO audit for any company.

newsletter-monitor

380
from gooseworks-ai/goose-skills

Scan an AgentMail inbox for newsletter signals using configurable keyword campaigns. Extracts matched keywords, context snippets, and company mentions from incoming emails. Use for monitoring accounting industry newsletters for buying signals like acquisitions, migrations, and staffing news.

funding-signal-monitor

380
from gooseworks-ai/goose-skills

Monitor web sources for Series A-C funding announcements. Aggregates signals from TechCrunch, Crunchbase (via web search), Twitter, Hacker News, and LinkedIn. Filters by stage, amount, and industry. Returns qualified recently-funded companies ready for outreach.

content-brief-factory

380
from gooseworks-ai/goose-skills

Generate detailed, differentiated content briefs at scale. Each brief includes SERP analysis, competing page breakdown, unique angles from real customer language (reviews, Reddit), internal linking plan, and SERP feature targets. Batch mode produces 10-50 briefs in one run. Crushes generic "keyword density" briefs from tools like Surfer or Clearscope.

site-content-catalog

380
from gooseworks-ai/goose-skills

Crawl a website's sitemap and blog index to build a complete content inventory. Lists every page with URL, title, publish date, content type, and topic cluster. Groups content by category and topic. Optionally deep-reads top N pages for quality analysis and funnel stage tagging. Use before SEO audits, content gap analysis, or brand voice extraction.

orthogonal-uptime-monitor

380
from gooseworks-ai/goose-skills

Monitor website uptime - check availability, response times, and status

content-asset-creator

380
from gooseworks-ai/goose-skills

Creates beautiful, branded HTML content assets — industry reports, landing pages, comparison sheets, one-pagers — from structured data. Uses Gamma API (preferred), v0.dev Platform API, or a self-hosted HTML template system with Tailwind CSS. Outputs self-contained HTML files that can be hosted as web pages or converted to PDF.

blog-feed-monitor

380
from gooseworks-ai/goose-skills

Scrape blog posts via RSS feeds (free, no API key) with Apify fallback for JS-heavy sites. Use when you need to monitor competitor blogs, track industry content, or aggregate blog posts by keyword.