mcpField
F
find-leads

find-leads

github.com/psquared-development营销与增长039 次安装5 天前更新
代码仓库

关于 find-leads

find-leads 是面向 InboxMate 的潜在客户筛选技能,用于寻找并审核德国企业,再将合格线索写入 CRM。它按 CHATBOT、INBOX 或混合模式分类,并检查网站、公开联系信息、业务相关性及重复记录。

主要功能

  1. 01搜索德国企业潜在客户
  2. 02按 CHATBOT 与 INBOX 分类线索
  3. 03核验网站及公开联系信息
  4. 04按资格标准筛除不合适公司
  5. 05检查 CRM 重复项并记录跳过原因

适用场景

  1. 01为聊天机器人演示寻找企业线索
  2. 02为邮件自动化产品寻找目标公司
  3. 03核验联系人与企业网站是否符合条件
  4. 04避免重复录入已存在或已拒绝的线索

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/psquared-development/psquared-skills --skill find-leads

安装后在 Claude Code 中输入/find-leads确认已加载。

详细介绍

为 InboxMate 寻找新线索

参数

/find-leads [N] [track] — track 为可选参数:

  • inbox — 仅电子邮件模式:搜索电子邮件运营需求较大的垂直行业(参见下文“电子邮件量信号”——每轮轮换 2-3 个垂直行业,切勿只盯着某个行业)。每条符合条件的线索都要在备注中标注 Track: INBOX。网站上有聊天机器人是正面信号,绝不能因此跳过。这类演示通过 /inboxmate-inbox-demo 运行。
  • chatbot — 仅聊天机器人模式:采用经典行为,跳过已有聊天机器人的公司,每条线索都标注 Track: CHATBOT。
  • 省略 — 混合模式:逐条线索决定跟进方向(参见步骤 2b)。

播报:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Lead Finder 已启动。
目标:[N] 条新线索 · 跟进方向:[INBOX / CHATBOT / 混合]
正在检查环境……
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

自主运行——无需询问

此技能应尽可能自主运行。 用户可能无法及时回答问题。请勿在处理线索期间请求确认——逐条处理即可:

  • 搜索 → 验证 → 跳过或添加 → 处理下一条。不要暂停。
  • 如果某项检查结果不明确(例如无法确定电子邮件是否为个人邮箱),应倾向于跳过并添加到跳过列表。不要询问。
  • 只有发生严重错误时才停止(例如 CRM 令牌无效、网络中断)。
  • 最后汇报结果,不要在处理过程中汇报。

法律背景——请先阅读

在德国和奥地利,B2B 冷邮件处于法律灰色地带。严格解读德国《反不正当竞争法》第 7 条(UWG §7)和奥地利《电信法》第 174 条(TKG §174),事先必须取得同意。然而,目前普遍采用的实际解释(数千家公司每天都在使用)认为,只要满足特定条件,就可以进行一对一的 B2B 联系。

**我们的立场:**我们发送精心撰写、真正有价值的个性化邮件(并提供专为对方公司制作的可用演示)。这不是垃圾邮件。但我们必须记录每条线索符合联系条件的原因。

每条线索都必须通过以下全部 8 项检查:

7 项资格标准
#标准检查内容重要原因
1德国公司域名为 .de,Impressum 显示德国地址(DE),公司在德国注册奥地利法律(TKG §174)更严格——没有 B2B 冷邮件例外。德国法律(UWG)对相关的一对一 B2B 联系的实际容忍度更高。
2仅限 B2B联系对象是公司,而非个人消费者保护要求更严格
3客观相关公司确实会从聊天机器人或电子邮件自动化中受益(面向客户的企业,且有明显的咨询/预约量)UWG 要求提供的内容与收件人的业务相关
4公开可用的电子邮件地址在其公开网站上找到电子邮件地址(联系页面、Impressum、团队页面)——不得从 LinkedIn、购买的名单或泄露的数据库中抓取数据来源必须符合 GDPR(由公司自行公开提供)
5明确的联系人邮件发送给拥有决策权的具名人员(创始人、CEO、营销负责人、销售主管)——不得发送至 info@、office@ 或通用地址表明这是个性化联系,而非群发
6真实的价值提案我们专门为对方制作了内容(演示)——而非通用推销与垃圾邮件有所区别
7CRM 中尚无记录CRM 中尚未存在该公司避免重复联系
8网站处于活跃状态网站可以正常加载,含有真实内容,且维护正常(版权年份未落后 2 年以上)避免联系已停止营业的企业

如果 8 项标准中任意一项不通过 → 跳过该线索。将其添加到 skip-list.json。不要添加到 CRM。


跳过列表 — 持久化记录已拒绝的潜在客户

当前工作目录中的文件 skip-list.json 用于记录已检查并拒绝的公司。研究任何公司之前,先检查此列表。 如果域名已在列表中,立即跳过——不要浪费时间再次抓取网站。

首次运行时: 如果 skip-list.json 不存在,请创建该文件并写入 []。

格式:

[
  { "domain": "example.de", "reason": "has chatbot", "date": "2026-03-19" },
  { "domain": "other.at", "reason": "no personal email", "date": "2026-03-19" }
]

公司未通过任何检查时: 将域名和简短原因(最多 5 个词)追加到 skip-list.json。

检查任何网站之前: 读取 skip-list.json,检查域名是否已在列表中。如果是,则跳过,不要抓取网站。

简短原因示例:

  • "has chatbot, no email volume" — 存在聊天小组件,且没有邮件自动化切入点(仅有聊天机器人不再构成淘汰理由——此类公司会进入 INBOX 跟进路径)
  • "no personal email" — 只找到 info@/office@
  • "dead website" — 网站无法访问或已停放
  • "outdated site" — 版权年份已过 2 年或更久
  • "too small" — 个体经营者,没有实际的网络形象
  • "not B2B-facing" — 仅面向批发或内部
  • "already in CRM" — 重复记录
  • "no email on site" — 未找到联系信息
  • "generic only" — 仅提供 kontakt@/info@

步骤 0 — 检查环境

使用 Read 工具读取当前工作目录中的 .env,并提取以下令牌:

变量用途用于
PSQUARED_CRM_TOKENTwenty CRM GraphQL API检查重复记录,以及创建公司/人员/备注

.env 文件位于工作目录根目录(claude-overlord-folder)。如果文件不存在,请停止并告知用户。

读取 skip-list.json(如果文件不存在,则创建并写入 [])。

验证完成后: Environment OK. Skip list: [N] entries. Starting lead search...


步骤 1 — 搜索潜在客户

使用 WebSearch 查找适合在网站上使用 AI 聊天机器人的德国和奥地利企业。

搜索策略(轮换使用——仅限德国,.de 域名):

  • "[industry] Unternehmen" site:.de
  • "[industry] GmbH" Kontakt Email site:.de
  • "Geschäftsführer" "[industry]" site:.de
  • "Immobilienmakler" OR "Versicherungsmakler" OR "Steuerberater" OR "Rechtsanwalt" site:.de
  • 行业专属:房地产中介、保险经纪、IT 咨询公司、营销机构、SaaS 公司、电商店铺、牙科诊所、律师事务所、会计师事务所

InboxMate 的优质目标行业:

  • 房地产(Immobilien)——咨询量大,常见问题多
  • 保险/金融——客户问题、潜在客户资格筛选
  • IT 服务 / MSP——支持请求、产品问题
  • 营销/数字机构——客户沟通、入职引导
  • SaaS/软件公司——客户支持、功能问题
  • 专业服务(法律、税务、咨询)——初步咨询
  • 电商——产品问题、订单支持
  • 医疗保健(牙科、理疗)——预约安排、常见问题

邮件量信号(符合 INBOX 路线条件——付费邮件产品): InboxMate 的邮件产品不只是回复咨询——它还能对运营邮件进行分类、分发、回复并触发操作。目标是任何业务运营依赖收件箱的德国 B2B 企业。每轮选择 2-3 个垂直行业并轮换——不要只盯着一个行业(例如只关注温泉浴场):

  • 订单/预订量大:酒店、场馆、旅游运营商、休闲场所(温泉浴场/公园)、承接团体业务的餐厅、维修厂/汽车经销商(预约咨询)
  • 运营邮件量大:批发商/分销商(通过邮件接收订单)、物业管理公司(租户咨询、协调维修工)、物流/货运代理(运输咨询)、手工业企业(报价咨询)、人力资源服务商(求职申请)
  • 文件量大:明显有收票/供应商流程的企业——InboxMate 可识别发票并将其转给会计部门
  • 通用信号:明显以 info@/office@ 作为主要联系渠道、表单只会发送邮件、没有工单系统、网站上有礼品券/取消/报价咨询
  • Demo-Postfach(/inboxmate-inbox-demo)可证明解决方案有效——预置邮件线程应模仿其运营邮件,包括在合适情况下,自动转发的发票或求职申请

不合适的目标(跳过):

  • 没有网站的极小型独资经营者
  • 政府/公共机构
  • 非营利组织(大型组织除外)
  • 既不适合聊天机器人、邮件量也不大的企业(例如重工业、农业)

步骤 2 — 验证每条潜在客户信息

对于找到的每条潜在客户信息:

2a — 先检查跳过名单

从公司 URL 中提取域名。检查该域名是否在 skip-list.json 中。如果存在,立即跳过并转到下一条潜在客户信息——无需抓取网站。

2b — 检查网站(WebFetch)

访问其网站。确认:

  • 网站可正常加载且仍在运营
  • Impressum 显示德国地址(位于德国的城市,而非奥地利/瑞士)——这可确认符合条件 #1
  • 内容是最新的(检查版权年份、最新博客文章、新闻)
  • 公司面向客户开展业务(并非没有公开形象的纯 B2B 批发商)
  • 检查其网站上是否已有聊天机器人(在 HTML 源代码中查找 Intercom、Drift、Zendesk、HubSpot、Tidio、Crisp、LiveChat 等聊天小组件)。现在已有聊天机器人不再是跳过条件——它决定所属路线:
    • 没有聊天机器人 + 面向客户的网站 → CHATBOT 路线(/inboxmate-demo)
    • 已有聊天机器人(或聊天机器人适配度较低)+ 明显的邮件量信号 → INBOX 路线(/inboxmate-inbox-demo)——已有聊天机器人甚至能说明他们愿意投资自动化
    • 已有聊天机器人 + 没有邮件量信号 → 跳过,原因填 "has chatbot, no email volume"

**跳过条件:**网站无法访问、已停放、过时或并非德国公司。请附上原因并添加到 skip-list.json。

2c — 查找有邮箱的联系人

在以下位置查找联系信息:

  1. /kontakt 或 /contact 页面
  2. /impressum 或 /imprint 页面
  3. /team 或 /ueber-uns 页面
  4. 首页页脚

我们需要:

  • 最合适的联系人:能够理解我们方案的人——技术或产品方向的人员
  • 理想职位(按优先顺序):CTO、IT 主管、产品主管、数字化主管、技术负责人、侧重技术的市场主管
  • 备选职位:总经理、CEO、销售主管——但仅在没有技术方向联系人时考虑
  • 其邮箱地址——必须公开显示在公司的公开网站上
  • 其职位/头衔

邮箱规则:

  • 必须是个人邮箱([email protected] 或 [email protected])
  • 必须在公司自有网站上找到(截图/记下确切页面)
  • 不得来自购买的名单、LinkedIn 抓取数据或任何第三方来源
  • 避免使用通用邮箱(info@、office@、hello@、kontakt@)——这些邮箱很少能联系到合适的人
  • 只有在找不到个人邮箱,且还在网站上找到具体联系人姓名时,才可将通用邮箱作为最后手段
  • 如果找不到可用邮箱 → 将其连同原因添加到 skip-list.json,然后继续
2d — 判断相关性

写 1-2 句话,说明 InboxMate 为什么对这家公司有价值。请引用具体情况:

  • “高流量房地产房源网站,设有可自动化处理的常见问题版块”
  • “服务组合复杂的 IT 咨询公司——聊天机器人可预先筛选潜在客户”
  • “设有多个服务页面的营销机构——访客需要指引,以找到合适的服务”
2e — 在 CRM 中检查重复项

首先按域名检查(最可靠),然后再按公司名称检查:

步骤 1 — 按域名搜索:

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"{ companies(filter: { domainName: { primaryLinkUrl: { like: \\\"%[domain]%\\\" } } }, first: 1) { totalCount } }\"}"

步骤 2 — 如果按域名未找到,再按名称搜索(可查出未添加域名的公司):

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"{ companies(filter: { name: { like: \\\"%[Company Name]%\\\" } }, first: 1) { totalCount } }\"}"

如果任一查询返回 totalCount > 0 → 跳过。将其连同原因 "already in CRM" 添加到 skip-list.json。


步骤 3 — 将合格的潜在客户添加到 CRM

对于通过全部 7 项标准的每条潜在客户:

3a — 创建公司

务必设置 outreachFor: [INBOX_MATE],以便下游 InboxMate 技能能够找到这家公司(演示、营销活动和邮件草稿均基于此字段筛选)。此处绝不要设置 PERSONAL_ONLY 或 INBOX_MATE_MUSEUM——PERSONAL_ONLY 专供 Martin 手动添加公司使用,自动化绝不能触碰;INBOX_MATE_MUSEUM 专供精选博物馆名单使用(于 2026-05-08 导入),由此技能之外的流程处理。

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { createCompany(data: { name: \\\"[Company Name]\\\", domainName: { primaryLinkUrl: \\\"https://[domain]\\\" }, outreachFor: [INBOX_MATE] }) { id name outreachFor } }\"}"
3b — 创建联系人
curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { createPerson(data: { name: { firstName: \\\"[First]\\\", lastName: \\\"[Last]\\\" }, emails: { primaryEmail: \\\"[email]\\\" }, companyId: \\\"[companyId]\\\", jobTitle: \\\"[Role/Title]\\\" }) { id } }\"}"
3c — 创建说明并写明理由

**分两步操作:**先创建说明(只填写标题),然后再更新并填写完整内容。这样可以避免在单次修改中处理过长内容时出现问题。

步骤 1 — 创建说明:

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { createNote(data: { title: \\\"Lead Qualification: [Company Name] — [date]\\\" }) { id } }\"}"

步骤 2 — 更新说明,填写完整内容:

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { updateNote(id: \\\"[noteId]\\\", data: { body: \\\"Email source: [URL where email was found]\\\\nContact: [Name], [Role]\\\\nRelevance: [1-2 sentence justification]\\\\n\\\\nTrack: [CHATBOT | INBOX]\\\\nDemo approach: [suggest best angle — CHATBOT e.g. 'FAQ automation for property listings'; INBOX e.g. 'Demo-Postfach: Gutschein-Anfragen, Gruppenbuchungen, Storno-Mails vorsortiert + beantwortet']\\\\n\\\\nChecks: German company ✓, B2B ✓, Relevant ✓, Public email ✓, Named contact ✓, Value offer ✓, Not in CRM ✓, Active website ✓\\\" }) { id } }\"}"

步骤 3 — 将说明关联到公司:

curl -s -X POST https://crm.psquared.dev/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $PSQUARED_CRM_TOKEN" \
  -d "{\"query\":\"mutation { createNoteTarget(data: { noteId: \\\"[noteId]\\\", companyId: \\\"[companyId]\\\" }) { id } }\"}"

“演示方案”字段应根据你在其网站上找到的信息,提出最适合 InboxMate 演示的切入点。示例:

  • 房地产:“房源常见问题机器人——自动处理看房请求和价格咨询”
  • IT 服务:“潜在客户筛选聊天机器人——帮助访客找到合适的服务套餐”
  • 代理机构:“作品集导航工具——引导潜在客户查看相关案例和服务”
  • 电子商务:“产品顾问——帮助客户选择合适的产品,减轻客服负担”

每添加一条后都要宣布: Added: [Company Name] — [contact email] — [1-line reason]


步骤 4 — 汇报

宣布:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Lead Finder 已完成。

已添加:[N]
  - [Company A] — [email] — [reason]
  - [Company B] — [email] — [reason]

已跳过:[M]
  - [Company C] — 已在 CRM 中
  - [Company D] — 未找到个人邮箱
  - [Company E] — 已有聊天机器人

下一步:运行 /create-demo-for-crm-lead 来制作演示
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

重要提醒

  • 重质量,轻数量。 5 条符合条件的潜在客户线索,胜过 50 条可疑线索。
  • 记录所有信息。 每家公司的备注都是你的法律凭证。
  • 仅使用公开邮箱。 如果在其网站上找不到邮箱,就跳过这条线索。
  • 轮换行业。 不要连续搜索 10 家房地产公司——要多样化选择。
  • 检查聊天机器人。 如果他们已经使用 Intercom/Drift/Zendesk/HubSpot 聊天工具,就跳过——他们已经有服务了。
  • 仅限德国。 只接受 .de 域名。奥地利法律(TKG)更严格——没有 B2B 例外。请确认 Impressum 显示的是德国地址。

评论

支持 Markdown