← All runbooks
gooseworks-ai / capabilities-competitor-post-engagers

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

agent codexmodel gpt-5.5snapshot python312-uveval programmatic7 stepsv1.0.0

Deploy Competitor Post Engagers to your jetty.io

One-click installs this runbook into a collection on your Jetty account. You can run it from the Spot dashboard, schedule it, or pipe inputs in via the API.

The shape of the run

7 steps · start to finish.

  1. 1
    Step 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"
    
  2. 2
    Step 2

    Intake

    Ask the user these questions:

  3. 3
    Step 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]

  4. 4
    Step 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.

  5. 5
    Step 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

  6. 6
    Step 6

    Output

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

  7. 7
    Step 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`.