关于 lead-qualification
lead-qualification 是一项营销技能,用于定义线索标准,并以置信度和理由为线索列表评分。它支持收集、复用或调整资格提示词,还可选用 LinkedIn 资料增强和并行处理。
主要功能
- 01通过结构化问答制定标准
- 02复用和调整已保存的资格提示词
- 03接收 CSV、链接、文本列表和表格
- 04可选通过 Apify 增强 LinkedIn 资料
- 05先校准结果再并行评估
- 06将评分和理由导出为 CSV
适用场景
- 01为新的外联活动制定筛选标准
- 02按现有标准评估线索列表
- 03查看样例结果后调整标准
- 04在线索评估前增强 LinkedIn 资料
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gooseworks-ai/ goose-skills --skill lead-qualification安装后在 Claude Code 中输入/lead-qualification确认已加载。
附带文件scripts/enrich_leads.pyskill.meta.json
详细介绍
潜在客户筛选引擎
通过结构化信息收集流程,依据自定义标准筛选潜在客户;然后并行评估潜在客户名单,并提供置信度评级和推理依据。
三种运行模式
模式 1:完整信息收集 + 筛选
没有现成的筛选提示词。通过信息收集流程创建提示词并保存,然后筛选潜在客户。
触发条件: 用户未提供筛选提示词。
模式 2:复用提示词 + 筛选
用户提供现有的筛选提示词——跳过信息收集,直接开始评分。
触发条件: 用户附上或指定筛选提示词文件(例如之前保存在其工作目录下
qualification-prompts/ 中的文件),或在消息中粘贴筛选标准。如果
粘贴的标准不够明确,先将其整理为下方的结构,然后向用户确认。
此技能不附带现成的提示词:每个提示词都由用户提供,或由 Agent 通过信息收集流程编写。
模式 3:优化 / 校准
用户看过结果后,希望调整标准。更新已保存的提示词,然后重新运行。
触发条件: 用户表示想要“优化”“调整”“不对”,或针对筛选结果提供反馈。
阶段 1:信息收集(仅限模式 1)
目标是全面了解用户如何判定潜在客户符合或不符合条件。分批集中提问,让用户能够高效作答。
第 1 轮——核心问题(一次性全部提出)
将以下问题按编号列表呈现。告诉用户:“回答相关的问题即可,不相关的可以跳过。我会就需要澄清的内容继续提问。”
产品与营销活动背景:
- 用一句话介绍你的产品 / 服务。
- 它解决什么问题,面向哪些人?
- 具体的营销活动或拓展方向是什么?(例如:“针对刚完成 A 轮融资的公司”“瞄准正在从竞争对手 X 转型的团队”)
公司层面标准: 4. 目标公司的规模是多少?(例如:1-10、11-50、51-200、201-1000、1000+) 5. 哪些行业或垂直领域较为匹配? 6. 有哪些行业或公司类型需要明确排除? 7. 目标地域是哪些?还是面向全球? 8. 有哪些地域需要排除? 9. 公司发展阶段是否重要?(例如:种子轮、A 轮、B 轮及以上、上市) 10. 哪些营收范围或融资范围比较重要?
个人层面标准: 11. 理想买家的职位或角色是什么? 12. 哪些职位明确不符合条件? 13. 职级是否重要?(例如:必须达到总监级、VP 级或 C 级) 14. 他们应属于哪些部门?(例如:增长、营销、销售、工程) 15. 在当前公司的最低任职时间是多少?(例如:至少 6 个月,才有购买决策权) 16. 总工作年限是否重要?
行为与情境信号: 17. 技术栈信号会影响筛选结果吗?(例如:“使用 Salesforce” = 符合条件) 18. 公司近期的动态是否重要?(例如:大规模招聘、融资、产品发布) 19. 内容或发帖信号是否重要?(例如:“发布过 AI 相关内容” = 相关) 20. 还有哪些信号表明对方意向强烈或匹配度高?
一票否决项与强力筛选信号: 21. 哪些是你的硬性否决项——无论其他因素如何,只要出现就会立刻判定为“不符合条件”? 22. 哪些是你最强的筛选信号——一旦出现,几乎可以确定为“符合条件”?
第 2 轮——跟进问题
根据用户的回答,提出 5-10 个有针对性的跟进问题,以消除模糊之处。示例:
- “你说的是中型市场——是指 50-500 名员工,还是 50-1000 名?”
- “你提到了增长副总裁——‘增长负责人’也符合条件吗?还是必须是副总裁职称?”
- “你没有提到地域——我应该按全球范围处理吗?”
- “关于任职时间,你说最低要求是 6 个月。那入职 4 个月但在公司内部获得晋升的人呢?”
- “你提到了 A 轮公司。营收相当但采用自筹资金的公司呢?”
第 3 轮 — 边界情况(可选,但建议)
列出 3-5 个假设的潜在客户资料,用于测试边界情况。询问:“您会将此人判定为合格吗?”
可构造的示例场景(根据用户的标准调整):
- 某人的职位符合要求,但所在公司的规模略大或略小
- 某人所在公司的规模符合要求,但职位处于边界
- 某人各方面都符合要求,但任职时间较短
- 某人的职位不完全匹配,但有强烈的意向信号
- 某人所在的公司是竞争对手的客户
这一轮可以发现用户尚未明确说明的隐含标准。
生成并保存资格判定提示词
完成信息收集后,将所有答案整理成结构化的资格判定提示词。将其保存到用户的工作目录(或用户指定的位置),以便下次重复使用:
qualification-prompts/[campaign-name].md
保存的提示词必须遵循以下结构:
# Qualification Prompt: [Campaign Name]
Generated: [date]
## Campaign Context
- **Product:** [one-liner]
- **Campaign Angle:** [specific angle]
- **Problem Solved:** [what and for whom]
## Hard Disqualifiers (Instant No)
- [list each with explanation]
## Hard Qualifiers (Instant Yes)
- [list each with explanation]
## Company Criteria
| Criterion | Qualified | Disqualified | Notes |
|-----------|-----------|--------------|-------|
| Size | [range] | [range] | |
| Industry | [list] | [list] | |
| Geography | [list] | [list] | |
| Stage | [list] | [list] | |
| Funding/Revenue | [range] | [range] | |
## Person Criteria
| Criterion | Qualified | Disqualified | Notes |
|-----------|-----------|--------------|-------|
| Titles | [list] | [list] | |
| Seniority | [level+] | [below level] | |
| Department | [list] | [list] | |
| Tenure | [minimum] | [below minimum] | |
| Experience | [range] | [range] | |
## Behavioral & Situational Signals
- [list signals that boost qualification]
- [list signals that reduce qualification]
## Confidence Rules
- **High Confidence:** Enough data available for company size, title, tenure, and at least one signal.
- **Medium Confidence:** Missing one or two non-critical data points but core criteria are clear.
- **Low Confidence:** Missing critical data points (e.g., no company size, unclear title). Still make a yes/no call but flag it.
## Edge Case Guidance
- [specific guidance derived from Round 3 scenarios]
- [any nuanced rules from the intake conversation]
## Qualification Reasoning Instructions
When evaluating a lead, structure your reasoning as:
1. Check hard disqualifiers first — if any match, immediately disqualify.
2. Check hard qualifiers — if any match, lean strongly toward qualifying.
3. Evaluate company criteria against thresholds.
4. Evaluate person criteria against thresholds.
5. Factor in behavioral/situational signals as tiebreakers.
6. Assign confidence based on data completeness.
7. Write 2-3 sentence reasoning summarizing the decision.
简短示例(仅用于展示结构的虚构公司):
# Qualification Prompt: Acme Payroll — Seed-Stage Founders
## Campaign Context
- **Product:** Payroll software for small startups
- **Campaign Angle:** Founders who just raised a seed round and are making their first hires
## Hard Disqualifiers (Instant No)
- Agencies and consultancies (they resell, they don't buy)
- Companies with more than 200 employees
## Hard Qualifiers (Instant Yes)
- Founder or CEO at a US startup that raised a seed round in the last 6 months
## Person Criteria
| Criterion | Qualified | Disqualified | Notes |
|-----------|-----------|--------------|-------|
| Titles | Founder, CEO, COO, Head of People | Engineer (IC), Intern | A founder qualifies in any department |
第 2 阶段:潜在客户资格判定
第 1 步 — 解析输入
接受以下任意输入格式:
- CSV 文件路径 — 直接从文件系统读取(默认)
- LinkedIn 个人资料 URL — 用户在消息中提供的一个或多个 URL
- 内嵌列表 — 消息中列出的姓名/公司
- Google Sheet URL — 如果用户提供 Google Sheet,请使用可用的任意 Google Sheets 工具读取
- 任何其他来源 — 请用户导出为 CSV 或粘贴数据
根据用户提供的内容自动检测格式。
第 1.5 步 — 通过 Apify 批量补充资料
适用情况: 输入包含 linkedin_url 列(或提供了 LinkedIn URL)。
跳过情况: 没有 LinkedIn URL,或用户明确要求跳过资料补充。
在 LLM 资格判定之前,批量补充所有潜在客户的资料,获取结构化的个人资料数据。这比资格判定期间逐个搜索网页快得多,也便宜得多。
运行资料补充脚本:
python3 scripts/enrich_leads.py INPUT_CSV \
--output ENRICHED_CSV \
--cache-hours 24
在此技能的文件夹中运行脚本。设置了 GOOSEWORKS_API_KEY 时,脚本会通过 GooseWorks Apify 代理使用用户的 GooseWorks 额度;未设置时,才会将用户自己的 APIFY_API_TOKEN 用作备用。切勿向用户索要 Apify 令牌。
这是付费运行,费用会在运行结束时按实际用量计费;运行前无法报价。先运行 --dry-run:它会统计实际运行将抓取的个人资料数量(扣除缓存后),且不会调用任何服务。告知用户该数量,并说明费用将从其 GooseWorks 额度中扣除,只有获得用户同意后才运行。
此脚本的工作内容:
- 从输入 CSV 中读取所有 LinkedIn URL
- 检查本地缓存(默认有效期为 24 小时)——跳过已补充资料的个人资料
- 将未缓存的 URL 分批发送给 Apify,每批 50 个
- 返回补充资料后的 CSV,其中包含:
enriched_title、enriched_company、enriched_industry、enriched_location、enriched_connections、enriched_education、enriched_experience_years、enriched_headline、enriched_about、enrichment_status - 实际运行时会扣除 GooseWorks 额度;缓存的个人资料不产生费用
资料补充完成后,后续步骤 2-4 请使用补充资料后的 CSV 作为输入。 补充后的数据可让 LLM 资格判定步骤直接使用结构化字段,而无需搜索网页,大幅提升速度和一致性。
如果部分个人资料补充失败: 输出中的相应条目会标记为 enrichment_status: failed。LLM 资格判定步骤应仅对这些潜在客户回退到网页搜索。
步骤 2 — 校准批次
处理完整列表前,先运行前 5–10 条潜在客户记录,并以表格形式向用户展示结果。
如果已运行批量数据补充(步骤 1.5),请将补充后的列(enriched_title、enriched_company 等)作为主要数据源。仅在潜在客户记录的 enrichment_status 为 failed 或 no_url 时,才使用网页搜索作为后备方案。
| # | Name | Title | Company | Qualified | Confidence | Reasoning |
|---|------|-------|---------|-----------|------------|-----------|
| 1 | ... | ... | ... | Yes | High | ... |
| 2 | ... | ... | ... | No | Medium | ... |
| ... |
询问:“这些结果看起来正确吗?处理完整列表前,需要调整任何标准吗?”
如果用户指出问题:
- 讨论需要修改的内容
- 更新已保存的资格判定提示词文件
- 重新运行校准批次
- 再次确认后再继续
重复以上步骤,直到用户批准。
步骤 3 — 完整运行(并行处理)
校准获批后,使用并行子 Agent 处理所有剩余的潜在客户记录。必须并行处理,不得按顺序逐条处理。
并行处理协议(强制):
-
计算批次数:
- 剩余潜在客户记录总数 / 15 = 批次数(向上取整)
- 目标:每批约 15 条记录
- 最少:2 批(即使列表较短,也要分成 2 批,以验证并行处理是否有效)
- 最多:10 个并发批次(避免上下文负担过重)
-
准备批次输入: 为每个批次创建一份独立完整的上下文包:
- 完整的资格判定提示词(已保存或用户提供的提示词)
- 该批次的潜在客户记录行(包括所有列,以及步骤 1.5 中补充的数据)
- 输出格式说明:姓名、Qualified(Yes/No)、Confidence(High/Medium/Low)、Reasoning(2–3 句话)
- 说明:“对于
enrichment_status=failed或no_url的潜在客户记录,请快速进行网页搜索。每条记录的搜索时间不得超过 30 秒。”
-
启动并行 Task Agent: 使用 Task 工具,在单条消息中通过多个工具调用同时启动所有批次:
Task: "Qualify leads batch 1/N" Context: [qualification prompt] + [batch 1 lead rows] Task: "Qualify leads batch 2/N" Context: [qualification prompt] + [batch 2 lead rows] ... (launch ALL at once — do NOT wait for batch 1 before launching batch 2) -
收集并合并结果:
- 等待所有 Task Agent 完成
- 将所有批次的结果合并为一个列表
- 保留输入中的原始行顺序
- 如果任何批次失败,重试该批次一次。如果再次失败,将这些潜在客户记录标记为 "qualification_failed",然后继续处理。
-
验证完整性:
- 计数:符合资格 + 不符合资格 + 失败的记录数 = 输入潜在客户记录总数
- 如果有记录缺失,请找出并重新处理
单条记录处理流程(在每个批次 Agent 内):
- 读取输入行中的所有可用数据(包括步骤 1.5 中补充的列)
- 如果存在补充数据(
enrichment_status: success或cached):使用enriched_title、enriched_company等字段 - 如果缺少补充数据(
enrichment_status: failed或no_url):快速进行网页搜索(最长 30 秒) - 应用资格判定提示词:
- 首先检查硬性淘汰条件——如果符合任何一项,立即判定为不符合资格
- 检查硬性资格条件——如果符合任何一项,强烈倾向于判定为符合资格
- 评估所有标准
- 确定:Qualified(Yes/No)、Confidence(High/Medium/Low)
- 写出 2–3 句话的判定理由
- 返回结果
步骤 4 — 输出结果
默认格式:CSV
- 写入一个 CSV,包含所有原始列以及以下三个新列:
Qualified— Yes / NoConfidence— High / Medium / LowReasoning— 2–3 句话的说明
- 保存到当前工作目录或用户指定的位置
- 告知用户文件路径
如果用户偏好 Google Sheets 或其他目标位置:
- 如果有可用工具,则写入 Google Sheets
- 如果用户要求,则写入 Notion
- 按用户要求导出为任意格式
步骤 5 — 汇总
输出完成后,提供汇总:
## Qualification Results: [Campaign Name]
**Total leads processed:** X
**Qualified:** X (Y%)
**Disqualified:** X (Y%)
**Confidence breakdown:**
- High: X leads
- Medium: X leads
- Low: X leads (may need manual review)
**Top disqualification reasons:**
1. [reason] — X leads
2. [reason] — X leads
3. [reason] — X leads
**Output:** [Google Sheet link or CSV path]
**Qualification prompt saved to:** qualification-prompts/[campaign-name].md
所需工具
资格评估 Agent 应能够使用:
- Apify LinkedIn Enrichment — 使用
scripts/enrich_leads.py在资格评估前批量丰富个人资料- 使用
harvestapi~linkedin-profile-scraperApify Actor(无需 Cookie) - 通过 GooseWorks Apify 代理使用 GooseWorks 积分运行,并使用
GOOSEWORKS_API_KEY;仅在没有该密钥时,才使用用户自己的APIFY_API_TOKEN作为备用 - 先使用
--dry-run运行以统计个人资料数量,然后在付费运行前征得用户同意
- 使用
- Web Search — 当丰富数据稀少或缺失时,用于研究潜在客户
- Fetch (web page) — 用于获取 LinkedIn 个人资料、公司页面等
- Read/Write — 用于 CSV 输入/输出和保存资格评估提示词
- Glob/Grep — 用于查找现有资格评估提示词文件
- 可选:Google Sheets 工具 — 如果用户希望从 Google Sheets 读取数据或写入数据
使用示例
从 CSV 完整导入并进行资格评估:
Qualify leads for our outbound campaign. Here's the lead list: leads.csv
→ Agent 检测到没有已保存的提示词,开始收集信息、构建提示词,然后进行资格评估。
复用现有提示词:
Qualify these leads using @qualification-prompts/seed-founders.md
— lead list: leads.csv
→ Agent 跳过信息收集,直接进行校准和资格评估。
直接评估 LinkedIn 个人资料:
Using the seed-founders qualification prompt, qualify these people:
- https://linkedin.com/in/person1
- https://linkedin.com/in/person2
- https://linkedin.com/in/person3
查看结果后进行优化:
Those results look off — also disqualify anyone at a consulting firm, and lower the
tenure minimum to 3 months for Director+ titles.
→ Agent 更新已保存的提示词并重新运行。