Lead Signal Scout
将产品URL转化为一份短名单,其中每个条目都位于代理已打开、阅读并标注日期的页面上,且属于真正可能购买的人。未经验证、过时或不合格的潜在客户永远不会进入短名单。
六个关卡是强制性的。跳过任何一个都会导致运行无效;应直接说明,而不是交付输出。
- 信息收集(第1步)——在简报能够拒绝弱匹配之前,不得进行研究。
- 验证(第4步)——在尚未抓取页面之前,不得撰写潜在客户信息。
- 筛选(第4步)——如果查询返回了结果,但未打开其中一个并说明原因,则不得放弃该查询。
- 时效性(第5步)——不得将无日期或超过截止日期的信号列入短名单。
- 资格认定(第6步)——不得将以下潜在客户列入短名单:没有自身已证明的问题、没有购买能力、没有可用联系途径、或在以公司为主导的模式中没有确定的公司。
- 审计(第8步)——在
validate_run.py返回PASS之前,不得呈现结果。
撰写每一段散文时必须依据references/writing-rules.md。一份读起来像生成的报告会被忽略,无论其背后的研究如何。
工作流程
1. 信息收集
阅读references/intake.md。构建产品简报,然后以单条批处理消息一次性询问落地页无法告诉您的四件事:地理位置、价格区间和购买方式、排除项,以及任何现有客户或过往成交数据。如果用户未回答,则使用带标签的假设继续。
记录icp.price_band_source为user或assumed。这很重要:您发明的价格区间可能不会排除任何人。 对于assumed,不要仅因价格理由将commercial_fit评分降至3以下。未经确认的数字无权决定哪些真实公司被丢弃。
在此处设置max_age_days。默认值为120。如果信号将是招聘帖子或供应商搜索(四个月前的请求几乎总是已得到满足),则使用60。
2. 设置模式与深度
模式决定优化的目标。深度决定数量。两者相互独立。
| 模式 | 优化目标 | 权重(痛点 / 契合度 / 商业 / 时机 / 触达 / 证据) |
|---|---|---|
discovery (默认) | 未满足的痛点,产品-市场契合前 | 28 / 22 / 10 / 14 / 13 / 13 |
pipeline | 为销售业务提供可重复的线索流 | 22 / 20 / 20 / 14 / 12 / 12 |
design-partners | 可能进行测试和反馈的人 | 24 / 18 / 6 / 10 / 24 / 18 |
b2b | 具有当前业务触发条件的公司 | 14 / 20 / 26 / 18 / 11 / 11 |
community | 显式的公开请求与讨论 | 28 / 18 / 8 / 14 / 22 / 10 |
b2b和pipeline模式还将拒绝将公司身份未识别的潜在客户列入短名单。
| 深度 | 短名单上限 | 最少查询次数 | 最少打开页面数 | 最少桶 x 族覆盖范围 |
|---|---|---|---|---|
quick | 5 | 10 | 12 | 4个桶 x 3个族 |
standard (默认) | 10 | 18 | 20 | 5个桶 x 4个族 |
deep | 20 | 35 | 35 | 7个桶 x 6个族 |
查询衡量的是打字,页面衡量的是阅读,而只有后者才能找到客户。在coverage.pages_opened中记录此计数,包括从未成为候选人的页面。
将所选模式的配置文件原样复制到运行JSON中。审计员将根据该配置文件重新计算每个评分,如果声明的权重与模式配置文件存在偏差,则审计失败。
3. 规划并执行搜索
阅读references/search-playbook.md。在搜索之前编写查询计划:哪些桶、哪些来源族、以目标受众自己的措辞使用哪些短语。记录每个查询及其结果计数,包括零结果的那些。收集候选URL;暂时不要撰写潜在客户记录。
4. 在撰写之前进行验证
阅读references/verification.md。抓取每个候选URL,然后做出决定:
signal_confirmed—— 页面已抓取,信号存在于该页面,可归属于指定的潜在客户。只有此状态才能列入短名单。url_ok—— 已抓取,但信号有保留、归属是推断的,或日期缺失。列入复核层级。unverified—— 未抓取、无效或被付费墙阻挡。添加到dropped并注明原因,然后停止。不要为其撰写信息。
先撰写完整的潜在客户记录,然后因为页面返回404而丢弃它,会浪费大部分运行时间。先抓取,再撰写。
打开您即将放弃的内容。 任何返回三个或更多结果但未保留任何结果的查询,都需要在其覆盖条目上添加note,在打开其中一个结果后撰写。如果运行中大多数被放弃的查询没有携带注释,审计员将判定失败。
这一步决定了谁在短名单上,如果不记录下来,它是不可见的。记录16个查询并满足所有覆盖底线的运行,仍可能找到了75个结果,打开了10个,并将其整个短名单来自三个公告型查询,而一页竞争对手评论和三份已发布的需求建议书(RFP)则未被阅读。审计行将称之为全覆盖。同时验证联系途径和来源;verification.md涵盖了需要记录的内容。
研究限制:仅限公开的专业和商业信息;不得绕过登录、付费墙、访问控制、速率限制或机器人限制;不得使用数据经纪人、泄露数据集、私人群组、个人电子邮件发现或电话信息增强;不得推断或针对受保护特征、健康状况、财务困境、政治、宗教或性取向。
5. 为每个信号标注日期
时机是根据时效评分的,因此无日期的信号不能列入短名单。按此列表向下查找,并在第一个得到答案的地方停止:可见的发布日期、页面上的相对时间戳(转换为signal_age_days)或URL中编码的时间戳。记录您使用哪一种date_basis。verification.md提供了每种情况的方法。
永远不要估计时效。像2026-08这样的部分日期被拒绝,未来日期也是如此。依赖于猜测日期的短名单条目正是此技能旨在防止的确切失败。
为每个已确认的潜在客户记录fetched_at和final_url。审计员无法看到您抓取页面;这些字段使得支持未经证实的声明比正确完成工作更费劲。
6. 评分、把关与去重
阅读references/scoring.md。根据书面锚点,对六个维度进行0-5评分。时机来自时效,按区间封顶;命名的当前触发条件将上限提高一分。
pain_strength 评分针对潜在客户自身的问题,且是产品所做工作相关的问题,用他们自己的话来说。他们客户的问题、他们出售解决方案的问题或他们评论的市场趋势,所有这些都评分为0。每个消费品牌都会发起营销活动;这不是信号。
commercial_fit 询问的是此卖家能否通过此卖家拥有的购买方式向此买家完成销售。不是公司规模大小。数十亿收入、一百个国家和已发布的供应商门户是采购流程的证据,对于自助或创始人主导的卖家,这评分为2,而不是4。
删除任何低于50的条目。将以下条目路由到复核层级:无日期、超过max_age_days且没有三个still_open字段、pain_strength评分为0或1且没有命名的trigger、commercial_fit评分为0或1且与用户提供的区间不符、唯一联系途径为inappropriate、或在b2b或pipeline模式下公司身份未识别。不会删除任何内容;复核层级会为每个条目显示其理由。
记录signal_type和purchase_readiness,而不是单一的意图标签。招聘设计师的人具有真实意图,但没有购买软件的意图。这两个标签有上限,与其下的维度相关联:hiring不能超过adjacent,基于痛点的信号需要pain_strength达到3才能成为strong,strong需要commercial_fit达到3,而direct需要达到4。审计员强制执行所有这些,因为自由文本字段共同提高正是产品发布公告变成高意向买家的原因。
为自由职业者、合同工或员工招聘的页面是hiring,无论工作内容与产品匹配程度如何。他们是在选择一个人,而不是一项服务,而hiring将准备度上限设为adjacent。将招聘广告归类为direct_request会绕过这个上限,这就是为什么一个时薪15美元的自由职业简报曾经登上短名单榜首。线索在于路线要求什么:作品集、简历、简历或费率卡意味着招聘;范围、价格、周转时间或试用意味着购买。
使用dedupe_key进行去重。从同一输出目录中先前运行的ledger.json加载内容,并排除已出现的条目,以及用户排除列表中的所有内容。
保持短名单在来源上的分散性:来自同一来源族或同一域名的条目不超过一半。否则,抓取最可靠的网站将接管整个运行,而单一来源的短名单会继承该网站的偏见。
如果超过60%的短名单条目得分在80以上,则锚点应用得过于宽松。重新评分。
7. 记录谁、在哪里以及如何联系他们
区分company、person和handle。公司是购买者;个人是发布者;handle是他们的平台用户名。当没有可见公司时,将company设为not identified,并将handle放入handle,按平台书写方式书写(u/name)。在这种情况下,输出以handle开头。首先寻找公司:发布者通常会在帖子、个人资料或链接中提及公司名称。
为每个潜在客户提供一个channel_url:用户实际打开以进行联系的页面。通常是源帖子,有时是联系表单或个人资料。打开它,并记录channel_evidence:一个简短引用或显示该路线面向谁的页面标题。声称channel_fit: valid但没有它的潜在客户将导致审计失败。
供应商和供应商注册门户充其量是questionable,是一个队列而不是对话。申请人、媒体和客户支持路线是inappropriate。当您找到的第一个路线格式不正确时,在放弃该潜在客户之前,再多进行一次抓取以找到正确的路线;大型网站会隐藏商业咨询页面并将职业页面排在前面。
审计员会阅读channel_evidence,而不仅仅是URL。Reddit或LinkedIn上的招聘广告具有完全干净的URL,只有在文字中才暴露自己:“分享您的作品集和最新简历”无论托管在哪里,都是申请路线。
除非另一页面显示相同的信号,否则将additional_source_urls留空。它会呈现为“Also seen at”,因此将联系页面放在那里会声称不存在的确凿证据。
为每个列入短名单的潜在客户草拟一封开场消息,90字以内,仅基于已抓取的页面。除非用户在后续轮次中单独授权,否则不要发送、提交、连接、关注、评论或写入CRM。
8. 构建输出与审计
阅读references/output-schema.md,编写run.json,然后:
python3 <skill-dir>/scripts/validate_run.py run.json
python3 <skill-dir>/scripts/build_outputs.py run.json outputs/
<skill-dir> 是该技能自身的目录,即加载此SKILL.md的目录。使用绝对路径构建路径。不要使用相对于工作目录的路径:工作目录是用户的项目,而不是技能。如果主机替换了${CLAUDE_SKILL_DIR},则该变量正是此目录。
修复每个ERROR并重新运行,直到打印出PASS。在最终回复中逐字报告审计行。build_outputs.py会写入leads.csv(操作列表)、leads-full.csv(每个字段)、report.html、brief.md和更新的ledger.json。将run.json保留在旁边作为事实来源。
没有Python:根据模式手动编写brief.md和leads.csv,并手动执行审计员的检查。
9. 报告
在您的回复和brief.md中逐字返回审计行。在通过运行中,它不会出现在report.html中,因为绿色横幅显示“正常”并不是打开潜在客户报告想要看到的内容。
然后是结论、最佳潜在客户以及工件的绝对路径。以经过验证且注明日期的内容开头。使差距可见。
质量标准
- 没有已抓取来源的潜在客户不是潜在客户。没有日期的不是线索。无法购买的是研究访谈。没有陈述自身问题的是市场细分。
- 已找到但从未打开的结果是运行的真实输出。数一数它们,并打开您正要跳过的那些。
- 审查了30个候选人且未列入短名单的运行是有效结果。直截了当地报告,而不是填充。
- 十个经过验证、当前的匹配胜过五十个通用匹配。
- 报告搜索了什么但什么也没找到,而不仅仅是找到的内容。
- 根据来源进行个性化,而不是凭空捏造。
- 将所有内容标记为假设。公开信号不是同意、兴趣或购买意图。