mcpbeat

Champion Tracker

gooseworks-ai/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 scale. Outputs a downloadable CSV of movers with qualification verdicts.

10k tokens
context cost
the whole folder, loaded on every use
5
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
1086
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/gooseworks-ai/goose-skills --skill champion-tracker

What comes with it

36 532 bytes besides the instruction
input/champions.csv
input/champions_template.csv
scripts/champion_tracker.py
skill.meta.json

The instruction itself

13 sections, as written by the author

Champion Tracker

Detect when product champions change jobs and qualify their new companies against ICP.

When to Use

  • You have a list of known product users/champions (from reviews, LinkedIn posts, CRM exports)
  • You want to detect when they change companies (high-intent re-sell signal)
  • You want each job change scored against ICP before reaching out

Two Phases

Phase A: Discover Champions (agent-driven, one-time)

Build the initial champion list from public sources. This is done by the agent, not the script.

  • Scrape reviews — Use review-site-scraper skill to pull G2/Trustpilot reviews. Extract reviewer names + companies.
  • Search LinkedIn posts — Use the linkedin-post-research skill (Apify-based) to find people who posted about the product.
  • Resolve LinkedIn URLs — Use Fiber /v1/kitchen-sink/person (name + company → profile URL) or ContactOut via Orthogonal.
  • Compile CSV — Merge all sources into champions.csv with required columns.

Phase B: Track Job Changes (script-driven, repeatable)

Use champion_tracker.py for ongoing tracking.

Script Usage

Prerequisites

  • APIFY_API_TOKEN in .env (for LinkedIn profile enrichment)
  • Champion CSV with columns: name, linkedin_url (required); original_company, original_title, email, source, notes (optional)

Commands

Initialize baseline (first run):

# Dry run — see cost estimate
python3 skills/champion-tracker/scripts/champion_tracker.py init -i champions.csv --dry-run

# Create baseline
python3 skills/champion-tracker/scripts/champion_tracker.py init -i champions.csv

Check for job changes (subsequent runs):

# Dry run
python3 skills/champion-tracker/scripts/champion_tracker.py check --dry-run

# Detect changes and output CSV
python3 skills/champion-tracker/scripts/champion_tracker.py check -o changes.csv

View status:

python3 skills/champion-tracker/scripts/champion_tracker.py status

Output CSV Columns

| Column | Description |

|--------|-------------|

| champion_name | Full name |

| linkedin_url | LinkedIn profile URL |

| previous_company | Company at baseline |

| previous_title | Title at baseline |

| new_company | Current company (changed) |

| new_title | Current title |

| change_detected_date | Date this check was run |

| position_start_date | When they started the new role |

| days_since_change | Days since new position started |

| icp_score | 0-4 ICP qualification score |

| icp_verdict | Strong Fit / Good Fit / Possible Fit / Weak Fit |

| icp_notes | Scoring breakdown |

| email | Email if available |

| notes | Original notes from champion CSV |

ICP Scoring (0-4)

| Signal | Points | What it checks |

|--------|--------|----------------|

| B2B signal | 1.0 | Title contains sales/SDR/revenue/growth keywords |

| Outbound motion | 1.0 | Sales leadership title (VP Sales, Head of Growth, etc.) |

| Company size | 1.0 / 0.5 | SMB/mid-market = 1.0; unknown = 0.5 benefit-of-doubt |

| Seniority | 1.0 | VP, Director, Head of, C-level, Founder |

Verdicts: Strong Fit (>=3) / Good Fit (>=2) / Possible Fit (>=1.5) / Weak Fit (<1.5)

Cost

  • ~$3 per 1,000 LinkedIn profiles enriched
  • 50-80 champions ≈ $0.15-0.25 per run
  • --dry-run always shows cost before any API calls

File Structure

skills/champion-tracker/
  SKILL.md                    # This file
  scripts/
    champion_tracker.py       # Main CLI script
  input/
    champions_template.csv    # Template for manual additions
  snapshots/                  # Created at runtime
    baseline.json             # Latest full snapshot
    archive/                  # Timestamped copies
  output/                     # Created at runtime
    changes-YYYY-MM-DD.csv    # Generated output

Dependencies

  • Reuses LinkedInEnricher from skills/lead-qualification/scripts/enrich_leads.py
  • Falls back to inline implementation if import fails
  • Requires: requests (Python package), APIFY_API_TOKEN (env var)

How to use it

Copy the folder

Take gooseworks-ai/champion-tracker from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.