OpenOutreach 销售线索查找
自托管的 B2B 获客 CLI:描述你的产品,它找出匹配的人、写明匹配理由,并可直接从你的邮箱发信。
SKILL.md 在权限与花钱上非常克制:find 默认不能花钱、send/run 需用户明确要求、从不代替用户接受法律声明、凭证需询问不得猜测,数据流(stdout 结果、stderr 日志)披露清楚。扣分项:依赖 BetterContact 与 LLM 两个外部服务并存储邮箱应用密码,凭证落库/落盘的保护与回滚机制在技能文档层面未说明;README 含联盟推广链接,存在商业激励披露但仍有引导倾向。
文档自洽性极高:统一的错误类型表、退出码契约、stdout/stderr 分离、N 语义、--agent-qualify 恢复逻辑都有明确界定,失败时命名缺失变量而非让用户猜。扣分项:仓库测试只覆盖 CLI 入口、registry 与 wizard 导出,不覆盖 find 关键路径(发现、限定、导出、provider 失败),静态读无法验证文档所描述行为真实存在。
触发条件与场景写得极精确('get me leads' 对 find,'email them' 对 send/run),能力边界、不适用情形(--open、headless、无 TTY)和 N 的语义都清楚。扣分项:核心功能完全依赖 BetterContact(bettercontact.rocks)与海外 LLM API,从中国大陆可达性存疑;文档无中文支持说明,目标环境契合度证据不足。
文档分层出色:SKILL.md 渐进披露、参数表、FAQ 式告诫(去重、不要拼 stdout)齐备;GPLv3 明确、版本策略(提交计数派生补丁号)有解释、CI/发布流程透明、维护者活跃度信号(call booking、Telegram、sponsor)可见。扣分项:可安装性依赖两个子仓库(openoutfind 0.1.12、openoutsend 0.1.36)的精确 pin,三仓联动维护责任对技能使用者不完全透明;无 changelog 文件。
声称的产出(导入器友好的 CSV/JSONL、含 reason 列、可直接进 Instantly/Smartlead)设计合理,find 0 再导出、增量语义清晰,边际价值明显高于手工拉名单。扣分项:静态评审无法执行,未验证实际输出可直接导入;结果质量取决于外部 provider 数据与 LLM 判断,无第三方使用证据。
有可审计的一手材料:README 与 SKILL.md 相互印证、tests/ 与 CI workflow(tests.yml、deploy.yml)已提交且覆盖 wizard/registry/CLI。扣分项:测试不覆盖技能关键路径 find/send 行为,行为与文档的对应关系无法独立复现;多为作者自述。
- 核心功能完全依赖 BetterContact 与海外 LLM API,中国大陆网络可达性与免费额度(40 credits)使用需先自行验证。
- send/run 会以用户本人身份向陌生人发送真实邮件,务必逐次确认;技能的告诫是文档约定,无技术强制。
- 邮箱应用密码与多个 API key 会存储在本地 SQLite(~/.openoutreach),请确保主机安全并使用应用级密码而非主密码。
- BetterContact 注册链接为联盟链接,存在商业激励;可绕开链接直接注册。
- 首次使用前在沙箱环境自行运行 find 0 与小规模 find 验证行为与文档一致。
这个 Skill 能做什么,适合哪些场景?
OpenOutreach 是一个 GPLv3 开源、自托管的命令行工具,用于 B2B 线索获取与冷邮件触达。它把「发现、资格判定、邮箱地址解析、发信」打包成一条命令:你只需提供产品描述、目标市场和几把 API 钥匙。它从有授权的数据源(BetterContact)拉取候选人,用 LLM 逐个对照你的 ICP 评判,并把每个人的入选理由写成文字随 CSV 导出。搜索和判定免费,只有验证邮箱地址这一步按命中收费(每条一积分)。仓库还带一个 Claude Code 插件和 Agent Skill(skills/find-leads/SKILL.md),让代理可以安全地调用它——绝不会未经要求就花钱或发信。
核心动词:openoutreach status 查看配置与计数(不花钱);init 一次性引导配置(数据库、LLM 密钥、BetterContact 密钥、邮箱凭证、法律声明);find N 免费地再找 N 条合格线索并把全部线索按 CSV 打到 stdout;find N --emails 或 find N emails 额外购买验证邮箱(积分封顶);send / run 从用户邮箱实际发信(发件窗口、每日上限、节奏控制)。输出列名兼容 Instantly/Smartlead 导入,无需列映射;-- 输出 JSON Lines(含 profile_text)。还支持 --agent-qualify/--agent-draft,让调用代理自己完成资格判定或撰写开场白,省掉第二个 LLM 密钥。失败以 error: <type> 给出稳定类型(如 goal_unreached、qualify_pending),stdout 永远只含结果数据。
- 一个人或小团队销售自研 SaaS,想用 Claude Code 会话直接拉一批 ICP 匹配的潜在客户清单,再导入 Instantly/Smartlead。
- 已有发信工具(Lemlist、HubSpot、电子表格)的团队,只需要一份带「为什么选这个人」理由的导入即用 CSV。
- 在意数据合规与平台风控的销售负责人:无浏览器、无社交账号、无爬虫,自托管、可审计整条流水线。
- 预算敏感的用户:先用免费的 `find N` 看人质量和理由,再决定是否花钱购买验证邮箱。
- 运行自动化流水线的工程师:以 `--` + stdout/stderr 分离的契约把 find 接进自己的发送管道(`outfind find 50 -- | outsend`)。
- 不想被代理乱花钱的运营者:skill 明确规定不问不发信、不买地址,法律声明也必须由用户本人接受。
这个 Skill 有哪些优点和局限?
- 自托管、GPLv3 开源,整条流水线(ICP、判定、学习循环)都在本地可读、可审计。
- 每条线索附 LLM 写出的文字理由,能读、能质疑、能通过改产品描述来纠正判定。
- 零平台 ToS 风险面:无浏览器、无社交账号、无爬虫,不存在被封号一说。
- 成本模型清晰:发现与判定免费,只有验证邮箱按命中计费,`find N` 构造上不可能花钱。
- CSV 列名按 Instantly/Smartlead 导入器设计,无需列映射即可导入。
- 安全护栏细致:代理绝不会未经明示同意发信或购买地址,退出码与错误类型稳定可分支。
- 地址解析依赖 BetterContact(唯一付费第三方),README 承认这是联盟链接;完全替代需要另找数据源。
- README 明示其基于高斯过程的学习循环是实验性功能,未证明优于随机挑选。
- 发冷邮件本质上有法律与合规责任(数据控制者义务、发件人义务),全部由用户承担——Legal Notice 声明不承担责任。
- 运行可能较慢(每条线索一次 LLM 调用、付费查询需轮询),需要足够长的超时。
- 依赖对方序列器的去重功能:Smartlead 需手动开启、Instantly 未记录,重复导出可能导致联系人被发两次。
- 仅文档化了 Google Workspace 开箱即用,其他邮箱服务商需自行查找 SMTP/IMAP 主机与端口。
如何安装这个 Skill?
最简单安装:uv tool install openoutreach,然后运行 openoutreach 即完成引导。或 pip install openoutreach。开发方式:git clone https://github.com/eracle/OpenOutreach.git && cd OpenOutreach && make setup。需要准备:LLM API 密钥(OpenAI/Anthropic/兼容端点)、BetterContact API 密钥(免费账户 40 积分,无需信用卡)、产品描述与目标市场文本文件、发信邮箱地址及应用的专用密码(app password)。服务器部署可用 GitHub Container Registry 上的 Docker 镜像(详见仓库 docs/docker.md)。
如何使用这个 Skill?
在 Claude Code 中:/plugin marketplace add eracle/OpenOutreach 然后 /plugin install openoutreach@openoutreach;或把 skills/find-leads/ 复制到 ~/.claude/skills/。非 Claude Code 用户可让任意代理(Codex、Cursor 等)直接读 SKILL.md 并调用同样的命令。典型触发语:「帮我找 10 个符合我们 ICP 的线索」→ 代理运行 openoutreach find 10(免费);只有明确要求邮箱地址才会加 emails;只有明确要求发信才会运行 send/run。首次未配置时运行 openoutreach init;长文本用 init --product-docs product.md --target target.md 传文件。检查状态用 openoutreach status --。
这个 Skill 与同类方案有什么区别?
README 明确对标两类商业产品:冷邮件序列器(如 Instantly、Smartlead——你需要自带清单)与线索数据库(输出是行数据、没有理由)。OpenOutreach 的差异是:输入一句产品描述即可,输出是带文字理由的判定。它也指出「所有帮你判定线索的可比工具都是付费 SaaS」,而本项目免费自托管。另有商业 SaaS 型竞品的说法属营销语境,未见具体点名。