champion-tracker

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Champion Tracker

产品拥护者跟踪工具

Detect when product champions change jobs and qualify their new companies against ICP.
检测产品拥护者的工作变动情况,并根据理想客户画像(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
  • 你拥有已知的产品用户/拥护者列表(来自评论、LinkedIn帖子、CRM导出数据)
  • 你希望检测他们是否跳槽(这是高意向的二次销售信号)
  • 你希望在联系他们之前,根据ICP对每次跳槽进行评分

Two Phases

两个阶段

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

阶段A:发现拥护者(由Agent驱动,一次性操作)

Build the initial champion list from public sources. This is done by the agent, not the script.
  1. Scrape reviews — Use
    review-scraper
    skill to pull G2/Trustpilot reviews. Extract reviewer names + companies.
  2. Search LinkedIn posts — Use Crustdata MCP to find people who posted about the product.
  3. Resolve LinkedIn URLs — Use Crustdata MCP to search by name + company → get profile URLs.
  4. Compile CSV — Merge all sources into
    champions.csv
    with required columns.
从公开数据源构建初始拥护者列表。此步骤由Agent完成,而非脚本。
  1. 抓取评论 — 使用
    review-scraper
    工具抓取G2/Trustpilot平台的评论,提取评论者姓名及所属公司。
  2. 搜索LinkedIn帖子 — 通过Crustdata MCP查找发布过相关产品内容的用户。
  3. 获取LinkedIn链接 — 通过Crustdata MCP根据姓名+公司信息搜索,获取用户的个人主页链接。
  4. 编译CSV文件 — 将所有来源的数据合并为包含必填列的
    champions.csv
    文件。

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

阶段B:跟踪工作变动(由脚本驱动,可重复执行)

Use
champion_tracker.py
for ongoing tracking.
使用
champion_tracker.py
脚本进行持续跟踪。

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)
  • .env
    文件中配置
    APIFY_API_TOKEN
    (用于LinkedIn个人资料数据富集)
  • 拥护者CSV文件需包含以下列:
    name
    linkedin_url
    (必填);
    original_company
    original_title
    email
    source
    notes
    (可选)

Commands

命令说明

Initialize baseline (first run):
bash
undefined
初始化基准数据(首次运行):
bash
undefined

Dry run — see cost estimate

试运行 — 查看成本估算

python3 skills/champion-tracker/scripts/champion_tracker.py init -i champions.csv --dry-run
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):
```bash
python3 skills/champion-tracker/scripts/champion_tracker.py init -i champions.csv

**检查工作变动**(后续运行):
```bash

Dry run

试运行

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

Detect changes and output CSV

检测变动并输出CSV文件

python3 skills/champion-tracker/scripts/champion_tracker.py check -o changes.csv

**View status**:
```bash
python3 skills/champion-tracker/scripts/champion_tracker.py status
python3 skills/champion-tracker/scripts/champion_tracker.py check -o changes.csv

**查看状态**:
```bash
python3 skills/champion-tracker/scripts/champion_tracker.py status

Output CSV Columns

输出CSV列说明

ColumnDescription
champion_nameFull name
linkedin_urlLinkedIn profile URL
previous_companyCompany at baseline
previous_titleTitle at baseline
new_companyCurrent company (changed)
new_titleCurrent title
change_detected_dateDate this check was run
position_start_dateWhen they started the new role
days_since_changeDays since new position started
icp_score0-4 ICP qualification score
icp_verdictStrong Fit / Good Fit / Possible Fit / Weak Fit
icp_notesScoring breakdown
emailEmail if available
notesOriginal notes from champion CSV
列名描述
champion_name全名
linkedin_urlLinkedIn个人主页链接
previous_company基准快照中的原公司
previous_title基准快照中的原职位
new_company当前所在的新公司(已变动)
new_title当前职位
change_detected_date本次检测的执行日期
position_start_date新职位的入职日期
days_since_change入职新职位的天数
icp_score0-4分的ICP匹配度评分
icp_verdict强匹配/良好匹配/可能匹配/弱匹配
icp_notes评分明细
email(若有)邮箱地址
notes来自拥护者CSV文件的原始备注

ICP Scoring (0-4)

ICP评分标准(0-4分)

SignalPointsWhat it checks
B2B signal1.0Title contains sales/SDR/revenue/growth keywords
Outbound motion1.0Sales leadership title (VP Sales, Head of Growth, etc.)
Company size1.0 / 0.5SMB/mid-market = 1.0; unknown = 0.5 benefit-of-doubt
Seniority1.0VP, Director, Head of, C-level, Founder
Verdicts: Strong Fit (>=3) / Good Fit (>=2) / Possible Fit (>=1.5) / Weak Fit (<1.5)
评分项分值检测内容
B2B信号1.0职位名称包含销售/SDR/营收/增长等关键词
outbound拓展潜力1.0销售领导层职位(如销售副总裁、增长负责人等)
公司规模1.0 / 0.5中小企业/中型市场=1.0;规模未知=0.5(给予容错分)
职位层级1.0副总裁、总监、负责人、高管、创始人层级
判定标准:强匹配(≥3分)/良好匹配(≥2分)/可能匹配(≥1.5分)/弱匹配(<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
  • 每富集1000个LinkedIn个人资料约花费3美元
  • 50-80名拥护者,每次运行约花费0.15-0.25美元
  • --dry-run
    命令会在调用API前显示预估成本

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
skills/champion-tracker/
  SKILL.md                    # 本文档
  scripts/
    champion_tracker.py       # 主CLI脚本
  input/
    champions_template.csv    # 手动添加数据的模板文件
  snapshots/                  # 运行时自动创建
    baseline.json             # 最新的完整快照
    archive/                  # 带时间戳的历史快照副本
  output/                     # 运行时自动创建
    changes-YYYY-MM-DD.csv    # 生成的输出文件

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)
  • 复用
    skills/lead-qualification/scripts/enrich_leads.py
    中的
    LinkedInEnricher
    模块
  • 若导入失败,则使用内置实现
  • 依赖:
    requests
    (Python包)、
    APIFY_API_TOKEN
    (环境变量)