用途
Contact Hunter 用于在指定人名或公司下查找、丰富并筛选联系人。触发方式包括“Find the VP of Sales at [Company]”“Get contact info for [Name] at [Company]”“Hunt contacts at [Company]”。输入可以是人名、公司、职位、地点或 LinkedIn URL。输出为合格的联系人卡片,包含邮箱、电话、LinkedIn、ATL/BTL 层级、抑制状态和 HubSpot 记录链接。
主要能力
- 通过 HubSpot 搜索联系人,判断联系人/公司是否已存在。
- 使用 qualify_lead 对每个候选执行 Gate Q:排除、STALE AE LEAD、ATL/BTL 分层。未获得裁决的候选不会进入丰富环节。
- 通过 Apollo 的 apollo_contacts_search 和 Clay 的 find-and-enrich-contacts-at-company 执行丰富瀑布流,仅针对通过 Gate Q 的联系人。
- 输出联系人卡片和汇总行;当请求为呼叫清单时,为每条线索创建 Gmail 草稿(Gate D),或将 CSV 交给 sequence-load-skill。
使用方式
工具调用顺序:
- hubspot_search_contacts(Epiphan AI)——检查联系人/公司是否已存在。
- qualify_lead(Epiphan AI)——对每个候选执行 Gate Q:排除 / STALE AE LEAD / ATL-BTL 分层。
- apollo_contacts_search(Apollo 插件)→ find-and-enrich-contacts-at-company(Clay)——仅对通过 Gate Q 的联系人执行瀑布流。
- 交付:联系人卡片 + 汇总行;当请求为呼叫清单时,为每条线索创建 Gmail 草稿(Gate D),或将 CSV 交给 sequence-load-skill。
阶段说明:
- 阶段 1:先搜索 HubSpot。按公司名、人名或邮箱域名搜索,返回 contactId、姓名、邮箱、电话、职位、hubspot_owner_id、lifecyclestage、device_count、bdr_suppression_until、last_activity_date、country。无论是否找到,每个候选都进入阶段 2。若目标公司此时解析为现有客户,则停止、告知 Tim、不进行丰富。
- 阶段 2:Gate Q——qualify_lead(去重、分层、抑制的权威来源)。每个候选联系人调用一次(或按公司查找职位时先按公司调用,再对返回的每个人调用)。裁决顺序:排除(现有客户、渠道合作伙伴、仅产品互动者、AE 拥有且活动 < 90 天、被抑制、或在美国/加拿大之外,除非请求指定其他地区);STALE AE LEAD(AE 拥有且活动 > 90 天,仅限 Lex 和 Phil 的北美范围,向 Tim 展示层级和建议动作,由 Tim 决定,未获指示前不丰富);层级(power_level atl / btl / unknown 即卡片上的 ATL/BTL 层级,unknown 标记为 GRAY 供人工审核)。qualify_lead 默认是 dry run,本技能绝不传入 writeToHubSpot: true。若 qualify_lead 一次重试后仍不可用:停止本次查找,报告“Gate Q unavailable”,提醒 Tim。未经 Gate Q 的清单绝不产出。HubSpot 中找到且通过 Gate Q 的联系人跳到阶段 4(已足够丰富)。无 HubSpot 匹配的职位查找继续到阶段 3。
- 阶段 3:丰富瀑布流(仅限通过 Gate Q 的)。使用 apollo_contacts_search,按 person_title 或 organization_name 搜索,过滤 country IN [US, CA]、seniority IN [director, vp, c_suite, owner],限制 10 条结果。Apollo 返回的新人需再次经过阶段 2(qualify_lead)才能进一步丰富或展示。若 Apollo 有邮箱但无电话,则运行 Clay 丰富:find-and-enrich-contacts-at-company,参数 company、title_keywords、enrich_phone: true。层级阶梯:某层级无结果则进入下一层级;所有层级为空则报告零结果并说明各层级原因(“Apollo: 0 matches”“Clay: no phone”)。某层级出错(认证、限流、超时)重试一次,然后跳过并在汇总中指明——绝不报告为“0 found”。不猜测邮箱模式,不进行网络搜索:仅使用已验证来源(HubSpot、Apollo、Clay)。
- 阶段 4:输出联系人卡片。每个通过 Gate Q 的联系人输出一张卡片,包含姓名、层级、职位、公司、邮箱(来源)、电话(来源)、LinkedIn、地点、HubSpot 链接、Owner、Qualify 状态。批量输出为 CSV 格式(First,Last,Title,Company,Email,Phone,LinkedIn,ATL_Tier,HubSpot_ID)。每次查找后输出汇总行:Found: [N] contacts | [A] ATL | [G] Gray | [B] BTL | [X] excluded by qualify_lead | [S] stale AE surfaced | tiers skipped: [none|Apollo error|Clay error]。
- 阶段 5:交付(Gate D)。呼叫清单请求:为每张卡片通过 mcp__claude_ai_Gmail__create_draft 从 tkipper@epiphan.com 创建 Gmail 草稿;草稿中任何产品线先通过 Gate S,正文通过 check_my_copy(Gate B)。绝不发送。序列请求:将 CSV 交给 sequence-load-skill(确认后注册)。仅查询:卡片 + 汇总行,无草稿。
适用场景
- 查找某公司特定职位(如销售副总裁)的联系人。
- 获取某人在某公司的联系信息。
- 批量查找某公司的联系人并生成呼叫清单或序列加载文件。
限制
- 数据仅来自 HubSpot(现有 CRM 记录)、Apollo(公开职业数据)或 Clay(已验证丰富)。不进行抓取。外发遵循 CAN-SPAM。
- 仅使用已验证来源,不猜测邮箱模式,不进行网络搜索。
- 未经 Gate Q 的清单绝不产出。
- qualify_lead 不可用时停止并提醒 Tim。
- 外发文本仅生成 Gmail 草稿,绝不发送。
- 自愈规则:partial 表示卡片已产出但某阶段降级(丰富层级出错被跳过、Clay 无电话、草稿跳过 Gate B/S 并加前缀标记);error 表示无卡片且无带原因的零结果汇总(HubSpot 搜索重试后失败,或输入无法解析为人/公司);halt 表示 qualify_lead 不可用,停止、提醒 Tim、写入状态。阶梯:重试一次 → 降级并标记 → 提醒 Tim → 停止。每次运行追加一行到 ~/.claude/skill-runs/contact-hunter-skill.jsonl。
- 最终步骤写入结果侧车到 ~/.claude/skill-analytics/last-outcome-contact-hunter-skill.json,包含时间戳、技能名、版本、变体、状态、运行时长、指标(contacts_searched、contacts_found、phones_found、emails_found、excluded_by_qualify、stale_ae_surfaced、tiers_errored)、错误和会话 ID。若部分阶段失败但产出结果,状态用 partial;error 必须指明阶段;仅当无输出生成时用 error。
暂未提供
关于收费、价格、平台支持范围、具体效果等事实,资料中暂未提供。