Competitor Engager Finder

Competitor engagers

by growthenginenowoslawski · MIT license · ★ 736 on GitHub

Competitor engagers cover

Find people actively engaging with competitor LinkedIn posts. Given a website URL, discovers competitors, fetches their company and employee posts, collects all commenters and reactors, and outputs a deduplicated CSV of engaged prospects.

---
name: competitor-engagers
description: Find people actively engaging with competitor LinkedIn posts. Given a website URL, discovers competitors, fetches their company and employee posts, collects all commenters and reactors, and outputs a deduplicated CSV of engaged prospects. Use when someone wants to find leads from competitor engagement, build outreach lists from LinkedIn activity, or analyze who interacts with competitor content.
user_invocable: true
---

# Competitor Engagers

Finds people who are actively engaging with your competitors on LinkedIn — the highest-intent prospects for cold outreach.

## Required step: Qualify with /icp-prompt-builder (do not skip)

After collecting the engager CSV, sample ~50 rows and run `/icp-prompt-builder` before scaling further. LinkedIn engagement alone doesn't guarantee ICP fit — someone who reacted to a competitor's post might be a peer, a candidate, a student, or an actual buyer. Qualifying filters separates them.

**Why required:** unfiltered engager lists typically have 30-50% non-ICP rows (fans, peers, recruiters, students). Running `/icp-prompt-builder` on a 50-row sample, tuning the qualification prompt, then applying it to the full list cuts wasted enrichment + send costs. Takes 10-15 min.

## Setup (First Time Only)

Overview

Finds people who are actively engaging with your competitors on LinkedIn — the highest-intent prospects for cold outreach.

Manual install (npx, ZIP)
Claude Codenpx skills add growthenginenowoslawski/coldoutboundskills --skill competitor-engagers -g -a claude-code
Claude Code (degit)npx degit growthenginenowoslawski/coldoutboundskills/skills/competitor-engagers#main ~/.claude/skills/competitor-engagers
Claude.ai / desktopZip the folder 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.md4.5 KB
Read SKILL.md here
growthenginenowoslawski/main1 file shown
SKILL.md
Show the full text104 lines

Competitor Engagers

Finds people who are actively engaging with your competitors on LinkedIn — the highest-intent prospects for cold outreach.

Required step: Qualify with /icp-prompt-builder (do not skip)

After collecting the engager CSV, sample ~50 rows and run /icp-prompt-builder before scaling further. LinkedIn engagement alone doesn't guarantee ICP fit — someone who reacted to a competitor's post might be a peer, a candidate, a student, or an actual buyer. Qualifying filters separates them.

Why required: unfiltered engager lists typically have 30-50% non-ICP rows (fans, peers, recruiters, students). Running /icp-prompt-builder on a 50-row sample, tuning the qualification prompt, then applying it to the full list cuts wasted enrichment + send costs. Takes 10-15 min.

Setup (First Time Only)

Before running, ensure these environment variables are set in ~/.env:

RAPIDAPI_KEY=<your key from https://rapidapi.com/apibuilderz/api/realtime-linkedin-bulk-data>
OPENROUTER_API_KEY=<your key from https://openrouter.ai/keys>

Test your credentials:

npm run competitor-engagers -- --check-auth

Steps

  1. Parse the user's input. They must provide a website URL (e.g., "clay.com"). Ask for:

    • How many competitors to discover (default: 20)
    • Posts per company (default: 30)
    • Any specific competitor LinkedIn URLs to include

    If the user just says "run it" or provides only a URL, use all defaults.

  2. Run the auth preflight check:

    npm run competitor-engagers -- --check-auth
    

    If it fails, help the user set up their API keys.

  3. Run the main script:

    npm run competitor-engagers -- --url={domain} --competitors={count} --posts={postsPerCompany} {--extra-competitor=URL ...} --verbose
    
  4. The script prints live progress. It can take 30-120 minutes for a full run (20 competitors x 200 employees x engagement collection). If interrupted, re-run with --resume:

    npm run competitor-engagers -- --url={domain} --resume
    
  5. Once complete, read the output CSV from ~/output/competitor-engagers/ and present:

    • Total unique engagers found
    • Top 10 most active engagers (by total_engagements)
    • Breakdown by competitor
    • Output file path
  6. Offer follow-up actions:

    • "Want to filter to only people with 3+ engagements?"
    • "Want to enrich these with email addresses?"
    • "Want to run this for a different company?"
    • "Want me to start a dry run first to validate the competitor list?"

CLI Reference

--url=<domain>            Target company domain (required)
--competitors=<n>         AI-discovered competitor count (default: 20)
--posts=<n>               Posts per company (default: 30)
--extra-competitor=<url>  Add a competitor manually (repeatable)
--dry-run                 Discover competitors only, skip engagement scraping
--resume                  Resume from checkpoint after interruption
--verbose                 Detailed per-request logging
--check-auth              Test API credentials and exit

Notes

  • Skips people employed at the target company OR any of the competitor companies
  • Comments and reactions only (reposts not collected)
  • 90-day lookback window for posts
  • Fetches up to 200 employees per competitor
  • One row per person in output (deduplicated, sorted by engagement count)
  • Checkpoint saved at ~/output/competitor-engagers/{domain}-checkpoint.json

What to do next

Run /icp-prompt-builder on a 50-row sample of the engagers CSV (required step — LinkedIn engagement alone doesn't guarantee ICP fit). Then /list-quality-scorecard on the filtered list.

Or wait: if your sample shows heavy non-ICP noise (>50% fans/peers/recruiters), the competitors you chose may be too broad. Re-run this skill with tighter competitor selection.

  • /icp-prompt-builder — required filter pass on this skill's output
  • /list-quality-scorecard — grade the filtered list
  • /email-waterfall — if LinkedIn engagement doesn't include emails
  • /campaign-copywriting — write copy referencing their specific engagement pattern
1---
2name: competitor-engagers
3description: Find people actively engaging with competitor LinkedIn posts. Given a website URL, discovers competitors, fetches their company and employee posts, collects all commenters and reactors, and outputs a deduplicated CSV of engaged prospects. Use when someone wants to find leads from competitor engagement, build outreach lists from LinkedIn activity, or analyze who interacts with competitor content.
4user_invocable: true
5---
6 
7# Competitor Engagers
8 
9Finds people who are actively engaging with your competitors on LinkedIn — the highest-intent prospects for cold outreach.
10 
11## Required step: Qualify with /icp-prompt-builder (do not skip)
12 
13After collecting the engager CSV, sample ~50 rows and run `/icp-prompt-builder` before scaling further. LinkedIn engagement alone doesn't guarantee ICP fit — someone who reacted to a competitor's post might be a peer, a candidate, a student, or an actual buyer. Qualifying filters separates them.
14 
15**Why required:** unfiltered engager lists typically have 30-50% non-ICP rows (fans, peers, recruiters, students). Running `/icp-prompt-builder` on a 50-row sample, tuning the qualification prompt, then applying it to the full list cuts wasted enrichment + send costs. Takes 10-15 min.
16 
17## Setup (First Time Only)
18 
19Before running, ensure these environment variables are set in `~/.env`:
20 
21```
22RAPIDAPI_KEY=<your key from https://rapidapi.com/apibuilderz/api/realtime-linkedin-bulk-data>
23OPENROUTER_API_KEY=<your key from https://openrouter.ai/keys>
24```
25 
26Test your credentials:
27```bash
28npm run competitor-engagers -- --check-auth
29```
30 
31## Steps
32 
331. Parse the user's input. They must provide a website URL (e.g., "clay.com"). Ask for:
34 - How many competitors to discover (default: 20)
35 - Posts per company (default: 30)
36 - Any specific competitor LinkedIn URLs to include
37 
38 If the user just says "run it" or provides only a URL, use all defaults.
39 
402. Run the auth preflight check:
41 ```bash
42 npm run competitor-engagers -- --check-auth
43 ```
44 If it fails, help the user set up their API keys.
45 
463. Run the main script:
47 ```bash
48 npm run competitor-engagers -- --url={domain} --competitors={count} --posts={postsPerCompany} {--extra-competitor=URL ...} --verbose
49 ```
50 
514. The script prints live progress. It can take 30-120 minutes for a full run (20 competitors x 200 employees x engagement collection). If interrupted, re-run with `--resume`:
52 ```bash
53 npm run competitor-engagers -- --url={domain} --resume
54 ```
55 
565. Once complete, read the output CSV from `~/output/competitor-engagers/` and present:
57 - Total unique engagers found
58 - Top 10 most active engagers (by total_engagements)
59 - Breakdown by competitor
60 - Output file path
61 
626. Offer follow-up actions:
63 - "Want to filter to only people with 3+ engagements?"
64 - "Want to enrich these with email addresses?"
65 - "Want to run this for a different company?"
66 - "Want me to start a dry run first to validate the competitor list?"
67 
68## CLI Reference
69 
70```
71--url=<domain> Target company domain (required)
72--competitors=<n> AI-discovered competitor count (default: 20)
73--posts=<n> Posts per company (default: 30)
74--extra-competitor=<url> Add a competitor manually (repeatable)
75--dry-run Discover competitors only, skip engagement scraping
76--resume Resume from checkpoint after interruption
77--verbose Detailed per-request logging
78--check-auth Test API credentials and exit
79```
80 
81## Notes
82 
83- Skips people employed at the target company OR any of the competitor companies
84- Comments and reactions only (reposts not collected)
85- 90-day lookback window for posts
86- Fetches up to 200 employees per competitor
87- One row per person in output (deduplicated, sorted by engagement count)
88- Checkpoint saved at `~/output/competitor-engagers/{domain}-checkpoint.json`
89 
90---
91 
92## What to do next
93 
94**Run `/icp-prompt-builder`** on a 50-row sample of the engagers CSV (required step — LinkedIn engagement alone doesn't guarantee ICP fit). Then `/list-quality-scorecard` on the filtered list.
95 
96**Or wait:** if your sample shows heavy non-ICP noise (>50% fans/peers/recruiters), the competitors you chose may be too broad. Re-run this skill with tighter competitor selection.
97 
98## Related skills
99 
100- `/icp-prompt-builder` — required filter pass on this skill's output
101- `/list-quality-scorecard` — grade the filtered list
102- `/email-waterfall` — if LinkedIn engagement doesn't include emails
103- `/campaign-copywriting` — write copy referencing their specific engagement pattern
104 
View all files on GitHub →

Details

License
MIT
Stars on the repo
★ 736
Checked
Source
growthenginenowoslawski/coldoutboundskills ↗
Creator
growthenginenowoslawski · 52 listings
View creator

Similar skills

See all →
SkillCompany Valuation Calculatorhimself65/finance-skills · by himself65Estimate the intrinsic value of a public company using DCF, relative (peer multiple) and sum-of-parts (SOTP) methods, then triangulate to an implied share price with upside/downside versus the current market price. Use this skill whenever the user asks: what is AAPL worth", "valuation of NVDA", "fair value of TSLA", "intrinsic value", DCF for MSFT", "build a DCF", "discounted cash flow", "WACC", "terminal value", implied share price", "upside to fair value", "is X overvalued/undervalued", relative valuation", "peer comparison valuation", "EV/EBITDA target", "SOTP", sum of the parts", "how much is [company] worth", "price target from fundamentals", value this company", or any ticker in the context of computing intrinsic or relative valuation. Default to running ALL three methods (DCF + relative + SOTP-if-applicable) and presenting a blended implied price with a sensitivity table. Do not answer valuation questions from memory — always run the workflow.★ 3.3k GitHub starsSkillKeyword Gap AnalyzerRyze-AI-Adgent/open-seo-mcp-skills · by Ryze-AI-AdgentFind keywords a competitor ranks for that the user's site doesn't — the content gap, prioritized by volume and winnability. Use when asked "what does competitor.com rank for", "keyword gap vs X", "steal competitor keywords", or "why do they outrank us".★ 3.1k GitHub starsSkillAd 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 starsSkillCompetitor Content Intelligencesandbaseai/sandbase-skills · by sandbaseaiAnalyze competitor content coverage and uncover differentiated content opportunities using web search, page extraction, and DataForSEO content analysis. Use when asked for competitor content research, editorial gap analysis, content brief inputs, or topic whitespace.★ 203 GitHub starsSkillCompetitive Win Cardsgrowthack88/growth-marketing-os · by growthack88Creates competitive battlecards for sales deal conversations. Produces win themes, landmines to plant, objection handlers, and competitive positioning per competitor. Outputs a structured markdown battlecard with quick-reference sections for live sales calls. Depends on competitor-research for competitive intelligence and consumes product-messaging, win-loss-analysis, and positioning for framing. Feeds into sales-deck, outreach-emails, and demo-script. Triggered by "battlecard", "competitive intel", "win against [competitor]", or "how do we beat [competitor]".★ 117 GitHub starsSkillX Audience Analyzersergebulaev/x-skills · by sergebulaevRead your X (Twitter) audience and niche from real data. Pull a handle's recent tweets (yours or a competitor's) with likes, replies, and views, see which formats and hooks are working, read the repliers on a tweet (X gates likers, so repliers are the signal), and scan a niche query for top tweets. Powered by Apify, no login. Triggers on "analyze my tweets", "what is working on X", "read the replies", "competitor tweets", "who is engaging". Not for writing a tweet (use x-post-writer).★ 95 GitHub stars

More from growthenginenowoslawski

SkillCold Email Automationgrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiAutonomous cold email campaign launcher. Takes one target company domain, scrapes their website, generates an ICP with Claude, pulls matching leads via Prospeo, enriches emails + company descriptions, personalizes each lead with parallel Claude Code Task sub-agents (A/B/C variants), and uploads as a live Smartlead campaign. Uses local JSON files for state (no database required). Use for automated daily campaign launches after you have an initial `client-profile.yaml` from /icp-onboarding. Triggers on "auto-research", "launch an automated campaign", "daily campaign", "run the research loop".★ 736 GitHub starsSkillCompany Decision-Maker Findergrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiUse the Blitz API to find decision-makers at specific companies when you already have a list of company domains. Best for SMB owner-finding, domain-to-people lookup, or supplementing Prospeo results. Outputs a CSV you can feed to the email-waterfall or directly to /cold-email-starter-kit for Smartlead upload. Use when your targeting is company-first (not title-first).★ 736 GitHub starsSkillCold Outreach Strategistgrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiGenerates 15-25+ cold outbound campaign ideas with targeting strategies, AI personalization approaches, and value propositions. Use when planning campaign experiments for a client, given their website or business context.★ 736 GitHub starsSkillClay Signal Playbooksgrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiIndex and shared harness for the 19 signal playbooks. Each playbook turns one buying signal (new in role, raised a round, hiring surge, pricing page, tech on website, ...) into one copy-ready sentence you can drop into a cold email. Every playbook ships three ways to run it: as a Claude skill, as a Clay table built through a browser harness, and as a Clay workflow built from the clay CLI. Use when someone says "personalize this list", "what signal should I use", "build the Clay column for X", or names any of the 19 signals.★ 736 GitHub starsSkillEmail Deliverability Crisisgrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiTriage playbook for when cold email deliverability breaks. Decision-tree guidance for "I landed in spam", "bounce rate spiked", "domain blacklisted", "inbox blocked in warmup", "reply rate dropped". Tells you what to check first, what to fix, and how long the fix takes. Pair with /email-deliverability-audit for diagnosis.★ 736 GitHub starsSkillInbox Delivery Benchmarkinggrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiCompare reply rates, bounce rates, and positive reply rates broken down by inbox type (SMTP / Gmail / Outlook) for a Smartlead account. Use when you want to know "which inbox type delivers best" or when debugging unexplained deliverability differences across a mixed fleet. Operates via Smartlead API only (no database required).★ 736 GitHub stars