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
7 steps · start to finish.
- 1Step 1
Environment Setup
▶Verify all required inputs are present before starting. Create the results directory, confirm any browser automation or scraping credentials required by the operator are available, and initialize a structured validation report.
mkdir -p /app/results test -n "${TARGET_COMPANY_LINKEDIN_URLS:-}" || echo "TARGET_COMPANY_LINKEDIN_URLS should contain one or more LinkedIn company page URLs" - 2Step 2
Intake
▶Ask the user these questions:
- 3Step 3
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]
- 4Step 4
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.
- 5Step 5
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
- 6Step 6
Output
▶CSV exported to `{output_dir}/{name}-engagers-{date}.csv`:
- 7Step 7
Iterate on Errors (max 3 rounds)
▶If extraction, classification, or output validation fails, inspect the failed stage, apply the smallest targeted correction, and rerun only the affected stage. Stop after max 3 rounds and record unresolved issues in `summary.md` and `validation_report.json`.