Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Find ICP-fit leads from KOL audiences on LinkedIn. Given a list of KOLs, scrapes their most relevant high-engagement post from the last 30 days, extracts engagers (reactors + commenters), pre-filters by position, enriches top profiles, and ICP-classifies. Cost-controlled: 1 post per KOL. Use when someone wants to "find leads from KOL audiences" or "scrape engagers from influencer posts" or after running kol-discovery.
.claude/skills/gooseworks-ai-kol-engager-icp/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 57% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 133% | 0% |
Find ICP-fit leads by scraping engagers from KOL posts on LinkedIn. This is the second half of the KOL pipeline — given KOLs (from kol-discovery or manually), it finds their best post, scrapes who engaged, and filters for your ICP.
Core principle: 1 post per KOL. Pick the most relevant, highest-engagement post from the last 30 days. This controls costs while maximizing lead quality.
Ask the user these questions:
Save config:
bashskills/kol-engager-icp/configs/{client-name}.json
Config JSON structure:
json{ "client_name": "example", "topic_keywords": ["freight automation", "dispatch operations"], "topic_patterns": ["freight.*automat", "dispatch.*oper"], "icp_keywords": ["freight", "logistics", "3pl"], "target_titles": ["vp operations", "head of logistics", "coo"], "exclude_titles": ["software engineer", "data scientist"], "tech_vendor_keywords": ["competitor-name", "saas founder"], "country_filter": "United States", "kol_urls": ["https://www.linkedin.com/in/kol-1/"], "days_back": 30, "max_posts_per_kol": 20, "max_kols": 10, "max_enrichment_profiles": 200, "mode": "standard" }
bashpython3 skills/kol-engager-icp/scripts/kol_engager_icp.py \ --config skills/kol-engager-icp/configs/{client-name}.json \ [--test] [--probe] [--yes] [--kols "url1,url2"]
Flags:
--config (required) — path to client config JSON--test — limit to 3 KOLs, 50 enrichment profiles--probe — test engager scraping with one post URL and exit--yes — skip cost confirmation prompts--kols — override KOL URLs from config (comma-separated)--max-runs — override Apify run limitStep 1: Scrape KOL posts — For each KOL, fetch recent posts (last 30 days, max 20 posts to scan) using harvestapi/linkedin-profile-posts.
Step 2: Select best post per KOL — Filter posts by topic_keywords/topic_patterns relevance, then pick the ONE with highest engagement (reactions + comments). Result: 1 post URL per KOL.
Step 3: Scrape engagers — Use harvestapi/linkedin-company-posts with scrapeReactions: true, scrapeComments: true to get reactors and commenters from each selected post.
Step 4: Pre-filter before enrichment — Score engagers by position:
+3 Commenter (higher intent)+2 Position matches ICP keywords+2 Position matches target titles-5 Position matches exclude titles or vendor keywords+1 Engaged on multiple postsmax_enrichment_profilesStep 5: Enrich — harvestapi/linkedin-profile-scraper in batches of 25. Apply country filter after.
Step 6: ICP classify & export — Classify as Likely ICP / Possible ICP / Unknown / Tech Vendor. Export CSV.
| Parameter | Test | Standard | Full | |-----------|------|----------|------| | KOLs processed | 3 | 10 | 20 | | Posts selected per KOL | 1 | 1 | 1 | | Max reactions scraped | all | all | all | | Max profiles enriched | 50 | 200 | 500 | | Est. total cost | ~$0.50 | ~$1.50-2 | ~$5-8 |
Run --probe first to verify engager scraping works:
bashpython3 skills/kol-engager-icp/scripts/kol_engager_icp.py \ --config skills/kol-engager-icp/configs/{client-name}.json --probe
This scrapes posts from the first KOL, selects the best post, scrapes engagers from it, and prints a sample. No enrichment, no CSV.
Present results:
Common adjustments:
tech_vendor_keywordsicp_keywords or target_titlestopic_keywords to be less restrictivemax_enrichment_profiles or switch to test modeCSV exported to skills/kol-engager-icp/output/{client-name}-kol-engagers-{date}.csv:
| Column | Description | |--------|-------------| | Name | Full name | | LinkedIn Profile URL | Profile link | | Role | Parsed from headline | | Company Name | Parsed from headline | | Location | From enrichment | | KOL Source | Which KOL's post they engaged with | | Post URL | Link to the specific post | | Engagement Type | Comment or Reaction | | Comment Text | Their comment (personalization gold) | | ICP Tier | Likely ICP / Possible ICP / Unknown / Tech Vendor | | Pre-Filter Score | Priority score from Step 4 |
APIFY_API_TOKEN in .envharvestapi/linkedin-profile-posts (KOL post scraping)harvestapi/linkedin-company-posts (engager scraping from posts)harvestapi/linkedin-profile-scraper (profile enrichment)Trigger phrases:
After kol-discovery:
bash# Use KOL URLs from discovery output python3 skills/kol-engager-icp/scripts/kol_engager_icp.py \ --config skills/kol-engager-icp/configs/example.json \ --kols "https://linkedin.com/in/kol1,https://linkedin.com/in/kol2"
Test mode:
bashpython3 skills/kol-engager-icp/scripts/kol_engager_icp.py \ --config skills/kol-engager-icp/configs/example.json --test
Other measured skills in the registry, with their headline benchmark lift.