← All runbooks
gooseworks-ai / capabilities-champion-tracker

Champion Tracker

Track product champions for job changes and qualify their new companies against ICP. Takes a CSV of known champions (with LinkedIn URLs), creates a baseline snapshot via Apify enrichment, then detects when champions move to new companies. Scores new companies on a 0-4 ICP fit sca

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

Deploy Champion Tracker 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

8 steps · start to finish.

  1. 1
    Step 1

    Environment Setup

    1. Create results_dir and confirm it is writable.
    2. Verify APIFY_API_TOKEN is present in the environment.
    3. Locate champion_tracker.py; prefer the source skill path skills/champion-tracker/scripts/champion_tracker.py.
    4. Validate that python3 can start the script without import errors.
    mkdir -p /app/results
    test -n "$APIFY_API_TOKEN" || { echo "ERROR: APIFY_API_TOKEN is not set"; exit 1; }
    python3 skills/champion-tracker/scripts/champion_tracker.py --help >/tmp/champion-tracker-help.txt
    
  2. 2
    Step 2

    Prepare Champion Inputs

    For a first run, build `champions.csv` from known customer champions, review-site authors, LinkedIn product advocates, or CRM exports. The CSV must include `name` and `linkedin_url`; include `original_company`, `original_title`, `email`, `source`, and `notes` when available so do

  3. 3
    Step 3

    Initialize Baseline

    Run this step when no baseline exists or when intentionally refreshing the baseline. First run a dry-run cost estimate, then create the baseline only after the estimate is acceptable.

  4. 4
    Step 4

    Check for Job Changes

    For recurring runs, detect movers against the latest baseline and write the normalized CSV to the required output path.

  5. 5
    Step 5

    Validate Output CSV

    Confirm that the mover CSV exists, has the required columns, and can be parsed. Treat an empty CSV with headers as a valid no-movers result.

  6. 6
    Step 6

    Review ICP Qualification

    Inspect every mover with `icp_verdict` of `Strong Fit`, `Good Fit`, or `Possible Fit`. Prioritize recent role changes, senior titles, and companies with clear B2B sales, growth, or revenue motions.

  7. 7
    Step 7

    Write Reports

    Write `/app/results/summary.md` with the mode, baseline/check status, mover count, highest-priority accounts, and any enrichment or scoring issues. Write `/app/results/validation_report.json` with stage-by-stage pass/fail results for setup, input validation, tracker execution, CS

  8. 8
    Step 8

    Iterate on Errors (max 3 rounds)

    If setup, tracker execution, or CSV validation fails, apply one targeted fix and rerun the failed step. Stop after max 3 rounds and write the failure into both `summary.md` and `validation_report.json` rather than continuing with incomplete outputs.