‹ 首页

qualify-leads

@othmane-khadri · 收录于 5 天前 · 上游提交 1 个月前

Run the GTM-OS 7-gate qualification pipeline over a batch of leads from a CSV, JSON, Notion DB, profile-visitors export, post-engagers export, or an existing SQLite result set. Writes per-lead pass/fail data back into SQLite and returns a result-set id you can hand to the campaign launcher. Use when the user says 'qualify these leads', 'score this lead list', 'run the qualification pipeline', 'check if these leads are a fit', or 'qualify the engagers'. Side-effecting — writes to the local SQLite db.

适合你,如果经常需要从大量线索中找出高意向客户

/ 通过 npx 安装 校验哈希
npx oh-my-skill add othmane-khadri/yalc-the-gtm-operating-system/qualify-leads
/ 通过 bash 安装
curl -fsSL https://oh-my-skill.com/install.sh | bash -s -- othmane-khadri/yalc-the-gtm-operating-system/qualify-leads
/ 已经装过?验证本机副本,不用重装
npx oh-my-skill verify othmane-khadri/yalc-the-gtm-operating-system/qualify-leads
安装目标可用 --agent / --scope 或 --to 明确指定;省略时只会在唯一已存在的 agent 目录上自动选择,零命中或多命中会停止并提示。content_hash 缺失或不一致均拒装。
268GitHub stars
~1.3K最小装载
~1.7K含声明引用
~1.7K文本包总量
索引托管

怎么用

商店整理自技能原文 · 版本 ffc6e37 · 表述以原文为准
它做什么

这个技能会获取一批lead数据,经过7个门控的资格评定管道,为每个lead输出通过/失败状态,保存到SQLite,并返回结果集ID供后续使用。

什么时候触发

当用户说出“qualify these leads”、“score this lead list”或“run the qualification pipeline”等关键词时触发。

装好后可以这样说
技能会询问数据来源。
直接指定CSV路径即可。
跳过来源询问,直接使用已有结果。
技能原文 SKILL.md作者撰写 · MIT · ffc6e37

Qualify Leads

I'll wrap leads:qualify. I'll ask for the input source and path, validate locally, run the CLI, parse the per-gate counts, and surface the result-set id so you can hand it to launch-linkedin-campaign or personalize-message.

When This Skill Applies

Use this skill when the user says:

  • "qualify these leads"
  • "score this lead list"
  • "run the qualification pipeline"
  • "check if these leads are a fit"
  • "qualify the engagers"

NOT this skill (use personalize-message instead):

  • "personalize a message for this lead" — that wraps the personalize CLI and writes a single LinkedIn DM, it doesn't run the gate pipeline.
  • "draft a DM for [lead]" — same.

NOT this skill (use scrape-post-engagers instead):

  • "scrape engagers off this LinkedIn post" — that wraps leads:scrape-post. Run that first to produce an engagers JSON, then come back here to qualify it.
What This Skill Does
  1. Asks where the leads live (CSV path, JSON path, Notion DB id, visitors export, engagers export, or an existing result-set id).
  2. Validates the input locally — file exists, Notion id has the right shape, result-set id format looks plausible.
  3. Shells out to npx tsx src/cli/index.ts leads:qualify <args> from ~/Desktop/gtm-os/.
  4. Parses the CLI's stdout — the pipeline emits per-gate counters and the resultSetId.
  5. Renders a clean per-gate summary, the result-set id, and the top hot leads.
  6. Offers two follow-up moves: launch a campaign or personalize messages.
What This Skill Does NOT
  • Send any outbound messages. That's launch-linkedin-campaign (LinkedIn) or send-cold-email (email).
  • Author personalized message bodies. That's personalize-message.
  • Re-import data that's already a result set. If the user already has a resultSetId, pass --result-set <id> and skip --source / --input.
  • Modify any .env file. If a key is missing, the CLI raises and we surface its stderr verbatim.
Pre-flight (do this before step 1)
  1. Onboarding interruption guard. Run: ```bash test -f ~/.gtm-os/.in-flight-setup && echo "BLOCKED" || echo "OK" ``` If BLOCKED, stop. Tell the user: "Setup is mid-flight. Finish yalc-gtm start first, then re-invoke me." Exit cleanly.
  1. Confirm cwd. All shell-outs assume ~/Desktop/gtm-os/.
Workflow
Step 0 — Ask for input

One question at a time:

  1. Where do the leads live? Five options:
  2. CSV path (--source csv --input <path>)
  3. JSON path (--source json --input <path>)
  4. Notion DB id (--source notion --input <db-id>)
  5. Profile-visitors export (--source visitors --input <path>)
  6. Post-engagers export (--source engagers --input <path>)
  7. Or "use the most recent result set" / a specific id (--result-set <id>, no --source / --input)
  1. Any toggles? Ask only if volunteered:
  2. --dry-run — preview without writing
  3. --no-dedup — skip dedup gate
  4. --slack-confirm — Slack for ambiguous dedup matches
  5. --enrich-signals (+ --signals-types <jobs,funding,tech,news>) — pull PredictLeads after qualify
Step 1 — Validate the input locally
  • For csv / json / visitors / engagers: test -f <path> returns 0.
  • For notion: 32-char hex (with or without dashes). Extract id from URL if needed.
  • For --result-set <id>: format looks plausible.
Step 2 — Shell out
cd ~/Desktop/gtm-os && set -a && source .env.local && set +a && \
  npx tsx src/cli/index.ts leads:qualify --source <type> --input <path>

…or for an existing result set:

cd ~/Desktop/gtm-os && set -a && source .env.local && set +a && \
  npx tsx src/cli/index.ts leads:qualify --result-set <id>

Per the merged 0.13.0 benchmark in docs/skills-architecture.md, single-command side-effecting skills shell out unconditionally. The CLI is the source of truth for env loading, tenant resolution, and the withDiagnostics() wrapper.

Step 3 — Parse the output

leads:qualify writes [qualify] log lines to stdout, one per gate, plus the result-set id and survivor count. On non-zero exit, surface stderr verbatim — no summarising.

Step 4 — Render

Show the per-gate funnel, result-set id, and top 5 hot leads. See references/example-output.md.

Step 5 — Offer follow-ups
"Want me to also: (a) launch a LinkedIn campaign for the qualified leads via launch-linkedin-campaign, or (b) personalize messages for the top N via personalize-message?"

Don't run anything unless the user says yes.

Failure surfacing — verbatim, never summarised

When leads:qualify exits non-zero, paste its stderr unchanged. The CLI's messages are tested and stable.

Notes
  • Pipeline writes to ~/.gtm-os/gtm-os.db. Side-effecting → Pattern A (shell-out) per the architecture doc.
  • 7 gates: dedup → prequal → exclusion → company-fit → role-fit → ICP scoring → optional signal enrichment. See src/lib/qualification/pipeline.ts.
  • --enrich-signals ≈ 1 PredictLeads credit per surviving domain (cached 7 days).
按 MIT 许可原样转载,未经改动 · 在 GitHub 查看 →

评论

登录即可评论;带「已验证安装」的,是发布者名下有本店的安装或持有记录。