Skip to content
Marketing
Skill

/competitor-post-engagers

Find leads by scraping engagers from a competitor's top LinkedIn posts. Given one or more company page URLs, scrapes recent posts, ranks by engagement, selects the top N, extracts all reactors and commenters, ICP-classifies, and exports CSV. Use when someone wants to "find leads

From plugin
goose-skills
1.2k200 skills
Install
$ npx -y skills add gooseworks-ai/goose-skills --skill competitor-post-engagers --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/competitor-post-engagers

Context preview

The summary Claude sees to decide when to auto-load this skill.

Find leads by scraping engagers from a competitor's top LinkedIn posts. Given one or more company page URLs, scrapes recent posts, ranks by engagement, selects the top N, extracts all reactors and commenters, ICP-classifies, and exports CSV. Use when someone wants to "find leads

SKILL.md

competitor-post-engagers.SKILL.md
name: competitor-post-engagers
description: >
  Find leads by scraping engagers from a competitor's top LinkedIn posts.
  Given one or more company page URLs, scrapes recent posts, ranks by
  engagement, selects the top N, extracts all reactors and commenters,
  ICP-classifies, and exports CSV. Use when someone wants to "find leads
  engaging with competitor content" or "scrape people who interact with
  [company]'s LinkedIn posts".
tags: [lead-generation]

Competitor Post Engagers

Find ICP-fit leads by scraping engagers from a competitor's top-performing LinkedIn posts. Given one or more company page URLs, this skill finds their highest-engagement recent posts, extracts everyone who reacted or commented, and classifies by ICP fit.

**Core principle:** Scrape all posts in one call per company, then locally rank and select the top N. This minimizes Apify costs while maximizing lead quality.

Phase 0: Intake

Ask the user these questions:

Target Companies

1. LinkedIn company page URL(s) to scrape (e.g., `https://www.linkedin.com/company/11x-ai/`) 2. Time window — how many days back to look (default: 30) 3. Top N posts per company to extract engagers from (default: 1)

ICP Criteria

4. ICP keywords — job title/role terms that indicate a good lead (e.g., "sales", "SDR", "revenue") 5. Exclude keywords — roles to filter out (e.g., "software engineer", "designer") 6. Geographic focus (optional, e.g., "United States")

Save config in the current working directory (or user-specified path):

competitor-post-engagers-config.json

Config JSON structure:

{
  "name": "<run-name>",
  "company_urls": ["https://www.linkedin.com/company/<competitor>/"],
  "days_back": 30,
  "max_posts": 50,
  "max_reactions": 500,
  "max_comments": 200,
  "top_n_posts": 1,
  "icp_keywords": ["sales", "revenue", "growth", "SDR", "BDR", "outbound"],
  "exclude_keywords": ["software engineer", "developer", "designer"],
  "enrich_companies": true,
  "competitor_company_names": ["<competitor-name>"],
  "industry_keywords": ["freight", "logistics", "trucking", "transportation", "3pl", "supply chain", "carrier", "brokerage", "shipping", "warehousing"],
  "output_dir": "output"
}
  • `enrich_companies` — Enable Apollo company enrichment (default: true). Set to false or use `--skip-company-enrich` to skip.
  • `competitor_company_names` — Company names to exclude from enrichment (the competitor itself).
  • `industry_keywords` — Industry terms that indicate ICP fit. Matched against Apollo's industry field.

The `output_dir` is relative to the script directory by default. Override it with an absolute path to write output to a specific location.

Phase 1: Run the Pipeline

python3 skills/competitor-post-engagers/scripts/competitor_post_engagers.py \
  --config competitor-post-engagers-config.json \
  [--test] [--yes] [--skip-company-enrich] [--top-n 3] [--max-runs 30]

**Flags:**

  • `--config` (required) — path to config JSON
  • `--test` — small limits (20 posts, 50 profiles, 1 top post)
  • `--yes` — skip cost confirmation prompts
  • `--skip-company-enrich` — skip Apollo company enrichment step (saves credits)
  • `--top-n` — override top_n_posts from config
  • `--max-runs` — override Apify run limit

Pipeline Steps

**Step 1: Scrape company posts + engagers** — For each company URL, one Apify call using `harvestapi/linkedin-company-posts` with `scrapeReactions: true, scrapeComments: true`. Returns posts, reactions, and comments in a single dataset.

**Step 2: Rank & select top posts** — Filter posts by time window (`days_back`), rank by total engagement (reactions + comments), select top N per company. Then extract engagers (reactors + commenters) only from those selected posts. Deduplication by name. Score engagers by position:

  • `+3` Commenter (higher intent)
  • `+2` Position matches ICP keywords
  • `-5` Position matches exclude keywords

**Step 3: Company enrichment (Apollo)** — Extract unique company names from engagers, call `apollo.enrich_organization(name=...)` for each. Returns industry, employee count, description, and location. ~1 Apollo credit per unique company. Merge data back to all engagers from that company. Skip with `--skip-company-enrich` or `"enrich_companies": false`.

**Step 4: ICP classify & export** — Classify as Likely ICP / Possible ICP / Unknown / Tech Vendor. Uses both headline keyword matching AND company industry data (from Step 3) — if the engager's company industry matches `industry_keywords`, they're classified as "Likely ICP" regardless of role. Export CSV.

Cost Estimates

| Parameter | Test | Standard | |-----------|------|----------| | Posts scraped per company | 20 | 50 | | Max reactions | 50 | 500 | | Max comments | 50 | 200 | | Est. Apify cost (1 company) | ~$0.10 | ~$0.50-1 | | Est. Apollo credits (company enrich) | ~10-20 | ~30-80 unique companies | | Est. Apollo cost | ~$0.05-0.10 | ~$0.15-0.40 |

Phase 2: Review & Refine

Present results:

  • **Post selection** — which posts were chosen and why (engagement counts, preview)
  • **Per-company breakdown** — how many leads from each competitor
  • **ICP breakdown** — counts by tier
  • **Top 15 leads** — name, role, company, engagement type

Common adjustments:

  • **Too many irrelevant leads** — tighten `icp_keywords` or add `exclude_keywords`
  • **Missing ICP leads** — broaden `icp_keywords`
  • **Wrong posts selected** — increase `top_n_posts` or adjust `days_back`
  • **Too expensive** — use `--test` mode or lower `max_reactions`/`max_comments`

Phase 3: Output

CSV exported to `{output_dir}/{name}-engagers-{date}.csv`:

| Column | Description | |--------|-------------| | Name | Full name | | LinkedIn URL | Profile link | | Role | Parsed from headline | | Company | Parsed from headline | | Company Industry | From Apollo enrichment | | Company Size | Estimated employee count from Apollo | | Company Description | Short company description from Apollo | | Company Location | City, State, Country

Read more
Ships withgoose-skills

Put your AI agent on the growth team. Research customers and competitors, analyze what is working, create the next campaign, and learn from the result.

Get the whole plugin

Other skills on goose-skills.