New: Earn 20% as an AgentAlley affiliate. Share your link and earn on every sale you refer. Join now New: Earn 20% as an affiliate. Join now

Track product champions for job changes

Champion tracker

by gooseworks-ai · MIT license · ★ 1,220 on GitHub · updated Sep 21

Champion tracker cover

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.

---
name: champion-tracker
description: >
  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.
tags: [lead-generation]
---

# 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)

Overview

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

Manual install (npx, ZIP)
Claude Codenpx skills add gooseworks-ai/goose-skills --skill champion-tracker -g -a claude-code
Claude Code (manual)mkdir -p ~/.claude/skills && curl -sL https://codeload.github.com/gooseworks-ai/goose-skills/tar.gz/615c685f34f8 \ | tar -xz -C ~/.claude/skills --strip-components=4 goose-skills-615c685f34f8/skills/sales/capabilities/champion-tracker
Windows (PowerShell)New-Item -ItemType Directory -Force "$HOME\.claude\skills" | Out-Null; Invoke-WebRequest "https://m.agentalley.io/zip/6874b5a37b648bb6229e/champion-tracker.zip" -OutFile "$env:TEMP\champion-tracker.zip"; Expand-Archive "$env:TEMP\champion-tracker.zip" -DestinationPath "$HOME\.claude\skills" -Force
Claude.ai / desktopDownload the ZIP and upload it under Settings → Capabilities → Skills.
Codex, Cursor, other agentsPoint them at SKILL.md. The other files are plain text.

Connects with Agent Alley MCP · agentalley.io/mcp

Files included

  • SKILL.md4.4 KB
  • skill.meta.json299 B
  • input/2 files · 1.1 KB
  • scripts/1 file · 34.3 KB
Read the files here
gooseworks-ai/615c6855 files
Shared references1SKILL.md reads these from elsewhere in the repo. Not in the ZIP.Get them on GitHub ↗
SKILL.md
Show the full text126 lines

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.

  1. Scrape reviews — Use review-site-scraper skill to pull G2/Trustpilot reviews. Extract reviewer names + companies.
  2. Search LinkedIn posts — Use the linkedin-post-research skill (Apify-based) to find people who posted about the product.
  3. Resolve LinkedIn URLs — Use Fiber /v1/kitchen-sink/person (name + company → profile URL) or ContactOut via Orthogonal.
  4. 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)
1---
2name: champion-tracker
3description: >
4 Track product champions for job changes and qualify their new companies against ICP.
5 Takes a CSV of known champions (with LinkedIn URLs), creates a baseline snapshot via
6 Apify enrichment, then detects when champions move to new companies. Scores new
7 companies on a 0-4 ICP fit scale. Outputs a downloadable CSV of movers with
8 qualification verdicts.
9tags: [lead-generation]
10---
11 
12# Champion Tracker
13 
14Detect when product champions change jobs and qualify their new companies against ICP.
15 
16## When to Use
17 
18- You have a list of known product users/champions (from reviews, LinkedIn posts, CRM exports)
19- You want to detect when they change companies (high-intent re-sell signal)
20- You want each job change scored against ICP before reaching out
21 
22## Two Phases
23 
24### Phase A: Discover Champions (agent-driven, one-time)
25 
26Build the initial champion list from public sources. This is done by the agent, not the script.
27 
281. **Scrape reviews** — Use `review-site-scraper` skill to pull G2/Trustpilot reviews. Extract reviewer names + companies.
292. **Search LinkedIn posts** — Use the `linkedin-post-research` skill (Apify-based) to find people who posted about the product.
303. **Resolve LinkedIn URLs** — Use Fiber `/v1/kitchen-sink/person` (name + company → profile URL) or ContactOut via Orthogonal.
314. **Compile CSV** — Merge all sources into `champions.csv` with required columns.
32 
33### Phase B: Track Job Changes (script-driven, repeatable)
34 
35Use `champion_tracker.py` for ongoing tracking.
36 
37## Script Usage
38 
39### Prerequisites
40 
41- `APIFY_API_TOKEN` in `.env` (for LinkedIn profile enrichment)
42- Champion CSV with columns: `name`, `linkedin_url` (required); `original_company`, `original_title`, `email`, `source`, `notes` (optional)
43 
44### Commands
45 
46**Initialize baseline** (first run):
47```bash
48# Dry run — see cost estimate
49python3 skills/champion-tracker/scripts/champion_tracker.py init -i champions.csv --dry-run
50 
51# Create baseline
52python3 skills/champion-tracker/scripts/champion_tracker.py init -i champions.csv
53```
54 
55**Check for job changes** (subsequent runs):
56```bash
57# Dry run
58python3 skills/champion-tracker/scripts/champion_tracker.py check --dry-run
59 
60# Detect changes and output CSV
61python3 skills/champion-tracker/scripts/champion_tracker.py check -o changes.csv
62```
63 
64**View status**:
65```bash
66python3 skills/champion-tracker/scripts/champion_tracker.py status
67```
68 
69## Output CSV Columns
70 
71| Column | Description |
72|--------|-------------|
73| champion_name | Full name |
74| linkedin_url | LinkedIn profile URL |
75| previous_company | Company at baseline |
76| previous_title | Title at baseline |
77| new_company | Current company (changed) |
78| new_title | Current title |
79| change_detected_date | Date this check was run |
80| position_start_date | When they started the new role |
81| days_since_change | Days since new position started |
82| icp_score | 0-4 ICP qualification score |
83| icp_verdict | Strong Fit / Good Fit / Possible Fit / Weak Fit |
84| icp_notes | Scoring breakdown |
85| email | Email if available |
86| notes | Original notes from champion CSV |
87 
88## ICP Scoring (0-4)
89 
90| Signal | Points | What it checks |
91|--------|--------|----------------|
92| B2B signal | 1.0 | Title contains sales/SDR/revenue/growth keywords |
93| Outbound motion | 1.0 | Sales leadership title (VP Sales, Head of Growth, etc.) |
94| Company size | 1.0 / 0.5 | SMB/mid-market = 1.0; unknown = 0.5 benefit-of-doubt |
95| Seniority | 1.0 | VP, Director, Head of, C-level, Founder |
96 
97**Verdicts**: Strong Fit (>=3) / Good Fit (>=2) / Possible Fit (>=1.5) / Weak Fit (<1.5)
98 
99## Cost
100 
101- ~$3 per 1,000 LinkedIn profiles enriched
102- 50-80 champions ≈ $0.15-0.25 per run
103- `--dry-run` always shows cost before any API calls
104 
105## File Structure
106 
107```
108skills/champion-tracker/
109 SKILL.md # This file
110 scripts/
111 champion_tracker.py # Main CLI script
112 input/
113 champions_template.csv # Template for manual additions
114 snapshots/ # Created at runtime
115 baseline.json # Latest full snapshot
116 archive/ # Timestamped copies
117 output/ # Created at runtime
118 changes-YYYY-MM-DD.csv # Generated output
119```
120 
121## Dependencies
122 
123- Reuses `LinkedInEnricher` from `skills/lead-qualification/scripts/enrich_leads.py`
124- Falls back to inline implementation if import fails
125- Requires: `requests` (Python package), `APIFY_API_TOKEN` (env var)
126 
View all files on GitHub →

Details

Updated
Sep 21, 2026
License
MIT
Stars on the repo
★ 1,220
Checked
Source
gooseworks-ai/goose-skills ↗
Creator
gooseworks-ai · 206 listings
View creator

Made with champion-tracker

Champion tracker — CleanShot 2026-07-13 at 20 16 54@2x (from the gooseworks-ai/goose-skills README)
Champion tracker — CleanShot 2026-07-13 at 20 16 54@2x (from the gooseworks-ai/goose-skills README)

by gooseworks-ai

Similar skills

See all →
SkillAct as a comprehensive AI sales intelligenceAI Sales Team — Main Orchestratorzubair-trabzada/ai-sales-team-claude · by zubair-trabzadaYou are a comprehensive AI sales intelligence and outreach system for Claude Code. You help founders, sales teams, agency owners, and…★ 1.4k GitHub starsSkillAutonomous cold email campaign launcherAuto research publicgrowthenginenowoslawski/coldoutboundskills · by growthenginenowoslawskiAutonomous cold email campaign launcher. Takes one target company domain, scrapes their website, generates an ICP with Claude, pulls matching leads via Prospeo, enriches emails + company descriptions, personalizes each lead with parallel Claude Code Task sub-agents (A/B/C variants), and uploads as a live Smartlead campaign. Uses local JSON files for state (no database required). Use for automated daily campaign launches after you have an initial `client-profile.yaml` from /icp-onboarding. Triggers on "auto-research", "launch an automated campaign", "daily campaign", "run the research loop".★ 736 GitHub starsSkillRun a full Account-Based Marketing campaign end-to-endABM Campaign — DIY Playbookexplorium-ai/gtm-skills · by explorium-aiABM campaign skill for Claude Code: run a full Account-Based Marketing campaign end-to-end — from ICP definition to live LinkedIn Ads. Builds targeted account lists with Vibe Prospecting, enriches and scores companies with real-time B2B data, generates personalized ad creatives with Claude Code and Figma, pushes matched audiences to LinkedIn Ads, and monitors campaigns daily at scale. The complete GTM skill for AI-driven account-based marketing in Claude Code, Codex, Hermes-Agent, and OpenClaw. No agency needed.★ 197 GitHub starsSkillContact data skill for Claude Code and Codex: build a rankedAccount contact shortlistexplorium-ai/gtm-skills · by explorium-aiContact data skill for Claude Code and Codex: build a ranked shortlist of decision-makers and contacts at a target company for outbound prospecting, deal acceleration, or renewal/expansion plays. Returns verified contact data including email, phone, LinkedIn profile, title, seniority, and department. Provide a company name or domain plus optional seniority focus or use case. Use for contact data enrichment, LinkedIn profile lookup, and building outbound contact lists. Works in Claude Code, Codex, Hermes-Agent, and OpenClaw.★ 197 GitHub starsSkillLead scoring and buying signals skill for Claude CodeAccount fit rankexplorium-ai/gtm-skills · by explorium-aiLead scoring and buying signals skill for Claude Code and Codex: rank a list of accounts by ICP fit, buying intent, real-time trigger events, and workforce momentum. Returns composite score (0-100), tier (A/B/C), and a 'why now' signal per account. Use for account-based selling, ABM list prioritization, territory planning, signal-based selling, and buyer-intent ranking. Triggers on 'score these accounts', 'rank by ICP fit and intent', 'prioritize this account list', 'which accounts have the strongest buying signals', 'ICP scoring', 'account prioritization'. Works in Claude Code, Codex, Hermes-Agent, OpenClaw, and Claude Cowork.★ 197 GitHub starsSkillRun end-to-end B2B cold-email outreach through the Hyper MCPhyperfx-ai/marketing-skills · by hyperfx-aiRun end-to-end B2B cold-email outreach through the Hyper MCP — enrich prospects with Apollo, scrape per-prospect signals from company sites and LinkedIn, draft personalized emails using proven hook frameworks, send via Gmail with safe defaults, and route replies into labeled folders. Use when the user wants to write cold emails, run an outbound sequence, prospect a list, build a follow-up cadence, "reach out to leads," or asks why nobody is replying to their cold emails.★ 90 GitHub stars

More from gooseworks-ai

SkillMine the highest-converting ad angles from customer reviewsAd angle minergooseworks-ai/goose-skills · by gooseworks-aiMine the highest-converting ad angles from customer reviews, Reddit complaints, support tickets, and competitor ads. Extracts actual pain language, competitor weaknesses, and outcome phrases that real buyers use. Outputs a ranked angle bank with proof quotes and recommended ad formats per angle.★ 1.2k GitHub starsSkillAnalyze ad campaign performance data to identify what'sAd campaign analyzergooseworks-ai/goose-skills · by gooseworks-aiAnalyze ad campaign performance data (Google, Meta, LinkedIn) to identify what's working, what's wasting budget, and specific cut/scale/test recommendations. Runs statistical analysis, funnel diagnostics, and multi-channel budget reallocation with specific dollar-amount shift recommendations and scenario modeling.★ 1.2k GitHub starsSkillFor paid lead-gen and participant-recruitment adsAd lead quality analyzergooseworks-ai/goose-skills · by gooseworks-aiFor paid lead-gen and participant-recruitment ads, replaces vanity CPA with true CAC per qualified lead by joining ad-platform data with downstream funnel events, surfaces tracking gaps, and classifies every creative into Scale / Keep / Investigate / Cut.★ 1.2k GitHub starsSkillAnalyze the message match between your ads and landing pagesAd to landing page auditorgooseworks-ai/goose-skills · by gooseworks-aiAnalyze the message match between your ads and landing pages. Checks if the promise in the ad copy carries through to the landing page headline, body, and CTA. Flags disconnects that kill conversion rates. Works with Google, Meta, and LinkedIn ads.★ 1.2k GitHub starsSkillCheck and improve your brand's visibility across AI searchAeogooseworks-ai/goose-skills · by gooseworks-aiCheck and improve your brand's visibility across AI search engines (ChatGPT, Perplexity, Gemini, Grok, Claude, DeepSeek). Set up tracking, run visibility analyses, audit your website for AI readability, and get actionable recommendations. Uses the npx goose-aeo@latest CLI.★ 1.2k GitHub starsSkillSearch Amazon products - find items, compare pricesAmazon Product Searchgooseworks-ai/goose-skills · by gooseworks-aiSearch Amazon products - find items, compare prices, read reviews★ 1.2k GitHub stars