Skip to main content
List building/competitor-engagers

Competitor Engagers

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

Version
1.0
License
MIT
Format
SKILL.md

Full skill documentation

Inside this skill

The complete operating guide, including the workflow, formulas, examples, and guardrails your agent will follow.

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.

Related skills