skills/capabilities/kol-discovery/SKILL.md
Find Key Opinion Leaders (KOLs) in a given domain by combining web research with LinkedIn post search. Given a company/idea and target domain, generates authority keywords, searches LinkedIn posts to find prolific authors with high engagement, and merges with web-researched influencers. Use when someone wants to "find influencers in X space" or "who are the KOLs for Y industry."
npx skillsauth add athina-ai/goose-skills kol-discoveryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Find Key Opinion Leaders in any domain by searching LinkedIn posts for prolific, high-engagement authors and merging with web-researched influencers.
Core principle: Search for authority/thought-leadership keywords, not pain-language. We want people who shape conversation in the space — conference speakers, newsletter writers, podcast hosts, and prolific LinkedIn posters.
Ask the user these questions:
Based on intake, generate 15-25 topic/authority keywords. These are NOT pain-language — they're the terms thought leaders use when sharing expertise:
Also generate:
Present keywords to user for approval before running.
Save config in the current working directory or wherever the user prefers:
Config JSON structure:
{
"client_name": "example",
"domain_keywords": ["\"freight tech\" thought leadership", "supply chain innovation"],
"exclusion_patterns": ["hiring.*position", "we.re recruiting"],
"kol_title_keywords": ["vp", "founder", "analyst", "editor", "host"],
"vendor_exclude_keywords": ["software engineer", "saas", "recruiter"],
"domain_relevance_keywords": ["freight", "logistics", "supply chain"],
"country_filter": "",
"max_posts_per_keyword": 50,
"min_posts": 2,
"min_total_engagement": 50,
"top_n_kols": 50
}
python3 skills/kol-discovery/scripts/kol_discovery.py \
--config kol-discovery.json \
--output-dir . \
[--test] [--web-kols kol-web-kols.json] [--yes]
Flags:
--config (required) — path to client config JSON--output-dir — directory for output CSV (default: current working directory)--test — limit to 5 keywords (validation run)--web-kols — path to web-researched KOL JSON (agent generates this)--yes — skip cost confirmation prompts--max-runs — override Apify run limitWhat the script does:
apimaestro/linkedin-posts-search-scraper-no-cookies for each domain keywordCost estimate: ~$0.10 per keyword. Full run with 20 keywords: ~$2-3.
Always run with --test first.
Before or alongside the script, do web research to find known KOLs:
Save as JSON in the current working directory:
[
{
"name": "Jane Doe",
"linkedin_url": "https://www.linkedin.com/in/janedoe/",
"source": "FreightWaves conference speaker 2025",
"notes": "Hosts weekly logistics podcast"
}
]
Pass to script via --web-kols.
Present results:
Common adjustments:
min_posts or min_total_engagement thresholdsCSV exported to the current working directory:
| Column | Description | |--------|-------------| | Rank | Overall rank by KOL Score | | Name | Full name | | LinkedIn URL | Profile link | | Headline | From LinkedIn | | KOL Score | Composite score | | Total Posts | Posts found in search | | Total Reactions | Sum of reactions across posts | | Total Comments | Sum of comments across posts | | Avg Engagement | Average reactions+comments per post | | Top Post URL | Highest engagement post | | Top Post Preview | First 100 chars of top post | | Source | post-data / web-research / both |
APIFY_API_TOKEN in .envapimaestro/linkedin-posts-search-scraper-no-cookies (keyword search)Trigger phrases:
With existing config:
python3 skills/kol-discovery/scripts/kol_discovery.py \
--config clients/example/configs/kol-discovery.json \
--output-dir clients/example/leads --yes
content-media
Takes an existing screen recording or demo video and adds professional zoom/pan effects synchronized to the narration. Uses transcript-driven zoom targeting and Remotion for rendering. Optionally replaces audio with a soundtrack.
tools
Repurposes long-form video (podcasts, interviews, talks) into short-form vertical clips for Instagram Reels, TikTok, and YouTube Shorts. Handles transcription, moment selection, clip extraction, speaker-tracked reframing (16:9 to 9:16), and animated captions.
development
Creates talking head videos from any source material (docs, changelogs, blog posts, notes, transcripts). Produces multi-scene videos with avatar narration over screenshots/images using HeyGen v2 API. Supports Quick Shot and Full Producer modes.
tools
Generates Instagram-ready product reels from any e-commerce product page URL. Scrapes product images, classifies by type, generates AI-animated clips via Higgsfield API, creates text overlays with style presets, and composes a 15-20 second reel with music. Supports model-based and product-only reels.