关于 intent-signal-aggregator-skill
根据 Apollo 信号和 Epiphan CRM 活动对目标账户的购买意向排序。它会先对账户进行资格判断,再收集信号,并通过 Slack 摘要和交接数据供后续 Skill 跟进。
主要功能
- 01解析账户列表和域名
- 02收集信号前判断账户资格
- 03汇总招聘、融资、增长和领导层变动
- 04纳入一方互动和技术栈数据
- 05按信号衰减规则评分并排序
- 06发送 Slack 摘要及热门账户交接 JSON
适用场景
- 01发现近期出现购买意向信号的账户
- 02按账户意向分数安排外联优先级
- 03监控目标账户的招聘或领导层变化
- 04将热门账户信息交给拨号和联系人研究工作流
MCP 相关
使用 MCP 工具进行账户资格判断,获取 Apollo 组织及人员信号,并查询 Epiphan CRM 活动。结果可通过 Slack 和交接 JSON 文件传递;外联文案须经检查后才创建草稿。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scientiacapital/ skills --skill intent-signal-aggregator-skill安装后在 Claude Code 中输入/intent-signal-aggregator-skill确认已加载。
附带文件config.json
详细介绍
Intent Signal Aggregator
将目标账户列表转化为按意向排序的信息流,其中每个信号都是工具结果:通过 Apollo 职位发布和组织信息补全,获取招聘、融资、增长和领导层变动信号;通过 Epiphan CRM 活动获取第一方互动信号。账户必须先通过 `qualify_lead` 才能成为高意向账户,评分范围为 0-100,并以 Slack 摘要和交接文件的形式交付给 sdr-dial-lists 和 contact-hunter。时机就是产品:同一个潜在客户,不同的一周,结果不同。 关键词:`intent signals`、`buying signals`、`hot accounts`、`job postings`、`funding`、`in-market`<quick_start> 触发条件:“跟踪[账户列表 / 垂直行业]的意向信号”或“本周哪些账户显示出购买信号?”
工具调用顺序:
- 账户列表 — 来自请求、HubSpot 列表(
hubspot_search_lists+hubspot_list_members),或通过execute_sql查询垂直行业对应的hubspot_companies。解析域名。 - Gate Q — 对每个账户调用
qualify_lead,然后再获取任何信号(排除的账户不消耗额度)。判定结果决定排除 /STALE AE LEAD/ 新增潜在客户。 - 对每个符合条件的域名获取信号:
apollo_organizations_job_postings→ 获取开放职位;将职位名称 / 描述与下方的 AV/视频关键词列表进行匹配。apollo_organizations_enrich→ 获取融资事件、estimated_num_employees趋势和领导层信息(current_technologies、latest_funding_stage、founded_year)。- 使用 ATL 职位名称和域名调用
apollo_mixed_people_api_search,再通过apollo_people_bulk_match获取任职时间 → 入职未满 90 天的新高管。 - 第一方信号:对已知联系人调用
activity_get_timeline,并通过analytics_search_by_email查询产品页面 / 定价 / 演示活动。 - 可选:在已配置时,使用 Clay
track-event获取融资 / 新闻信息。
- 评分(见下表)、排序并撰写摘要。
- 交付:通过 Slack 私信向 Tim 发送摘要;将交接 JSON 写入
~/.claude/skill-state/intent-signal-aggregator/<date>-hot.json,供 sdr-dial-lists / contact-hunter 使用;任何外联文案都必须先通过 Gate B,再调用create_draft。 </quick_start>
<house_rules> 面向客户的技能。输出前,按顺序通过各项关卡(详情:~/.claude/skills/epiphan-house-rules-skill/reference/gates.md): S:在提出任何产品声明之前,先搜索产品目录(Epiphan AI)或 Epiphan Knowledge。B:对每条面向客户的文案调用 check_my_copy。 Q:在获取候选名单后立即调用 qualify_lead,先于分级 / 信息补全 / 草稿撰写。D:外发文本应保存为 Gmail 草稿,绝不能发送。 标识符(所有者 ID、portal、电子邮件、席位)来自该技能中的 reference/identifiers.md — 请勿在此处重复。 任何关卡失败时,遵循 reference/self-healing.md(重试、降级并添加标记、提醒 Tim、停止),并在 ~/.claude/skill-runs/.jsonl 中追加一行。 </house_rules>
<success_criteria>
- 每个账户在获取信号前都已通过
qualify_lead;统计排除账户和STALE AE LEAD - 每个信号都注明来源调用和日期(职位发布 ID、融资事件、时间线事件);不叙述未经记录的信息
- 每个账户都有一个 0-100 的意向分数,并清楚显示各信号的贡献分值
- 报告各来源的降级情况(哪个来源为空 / 失败),不得静默跳过
- 摘要已通过 Slack 私信发送;高意向账户交接 JSON 已写入
- 每个高意向账户的建议操作都注明联系人层级(来自
qualify_lead)和下一项技能 - 已写入结果附属文件和运行日志行 </success_criteria>
阶段 1 — 账户列表和 Gate Q
将列表解析为 HubSpot 公司 ID 和域名。对每个账户调用 qualify_lead;黄金规则、AE 90 天规则、抑制规则和地理区域默认值(美国 / 加拿大)都会在该调用中评估 — 请参阅 epiphan-house-rules-skill reference/gates.md 和 reference/identifiers.md,请勿在此处重复所有者 ID。排除的账户会在消耗任何 Apollo 额度之前移除。若 qualify_lead 不可用 → 停止。
| 信号 | 工具 | 计入条件 |
|---|---|---|
| 招聘(相关岗位) | apollo_organizations_job_postings | 职位名称/描述匹配:AV、视听、媒体服务、课堂录制、视频制作、流媒体、教室技术、教学技术、法庭技术、广播工程师 |
| 招聘(数量) | 同上 | IT/设施/媒体部门有 ≥ 3 个空缺岗位 |
| 融资 | apollo_organizations_enrich | latest_funding_stage/融资事件发生在 ≤ 90 天内;对于公共机构,如果已配置,则通过 Clay track-event 跟踪债券或资本项目新闻 |
| 员工人数增长 | apollo_organizations_enrich | 员工人数估算值较 skill-state 中存储的先前值增长 ≥ 10% |
| 领导层变动 | apollo_mixed_people_api_search + apollo_people_bulk_match | ATL 职位的任职开始时间 ≤ 90 天 |
| 技术栈 | apollo_organizations_enrich current_technologies | 存在或新增 Panopto、Kaltura、Echo360、YuJa、Zoom Rooms、Crestron、Extron |
| 第一方互动 | activity_get_timeline、analytics_search_by_email | 过去 30 天内的定价/演示页面浏览、表单提交、邮件回复 |
每个来源在发生临时错误时重试一次,然后降级处理:来源为空或失败 → 该信号得分为 0,账户标记为 partial:<source>,运行继续。
阶段 3 — 评分
| 信号 | 分值 | 衰减 |
|---|---|---|
| 相关职位招聘信息 | 25(首个)+ 每增加一个 5 分,最高 35 分 | 30 天后减半 |
| 新任 ATL 高管 | 25 | 60 天后减半 |
| 融资/资本事件 | 15 | 90 天后减半 |
| 第一方互动 | 15 | 14 天后减半 |
| 员工人数增长 | 5 | 每季度 |
| 技术栈匹配 | 5 | 固定 |
最高 100 分。Hot ≥ 60(本周行动)· Warm 35-59(2 周内行动)· Watch < 35。
阶段 4 — 输出
# Intent Signal Report — [date range]
Accounts in: [n] · excluded by Gate Q: [n] · stale AE surfaced: [n] · scored: [n] · hot: [n] · warm: [n]
Sources degraded: [none | job_postings for 3 accounts | …]
## HOT
### #1 [Company] — [vertical] — score [n]/100
1. Hiring: [n] relevant roles — "[title]" posted [date] (job posting id) — mentions [keyword]
2. Leadership: [Name], [Title], started [date] (Apollo id) — tier [ATL] per qualify_lead
3. First-party: [contact] viewed pricing [date] (timeline event)
Action: [call this week via sdr-dial-lists | contact-hunter for the new exec] — contact tier [ATL/GRAY]
Opener (draft id [Gmail id] after check_my_copy): "[one line]"
## WARM … ## WATCH …
## STALE AE LEADS — Tim decides
[Company] — owner [AE] — last activity [date] — score [n]
除非根据 ~/.claude/skill-analytics/outcomes.jsonl 计算,否则不输出信号赢率表;报告中不提供示例百分比。
阶段 5 — 发送与交接
- 向 Tim 发送 Slack 私信:包含 HOT 部分和计数,以及完整报告的保存路径
~/.claude/skill-state/intent-signal-aggregator/<date>.md。 - 交接 JSON
~/.claude/skill-state/intent-signal-aggregator/<date>-hot.json:[{company_id, domain, score, signals[], recommended_skill, contact_tier}],由sdr-dial-lists和contact-hunter-skill使用。 - 开场白:调用一次
get_writing_style,每行调用一次check_my_copy,为有已验证联系人的热门账户调用create_draft。绝不发送。 - 按域在 skill-state 中持久化员工人数快照,以供下次运行比较增长情况。
阶段 6 — 输出结果附属文件 + 运行日志
写入 ~/.claude/skill-analytics/last-outcome-intent-signal-aggregator-skill.json:
{"ts":"[UTC ISO8601]","skill":"intent-signal-aggregator-skill","version":"<frontmatter version>","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"accounts_in":[n],"excluded_by_qualify":[n],"stale_ae_surfaced":[n],"accounts_scanned":[n],"signals_detected":[n],"hot_accounts":[n],
"signal_types":{"hiring":[n],"funding":[n],"leadership":[n],"tech_stack":[n],"engagement":[n]},"sources_degraded":["job_postings"]},
"error":null,"session_id":"[YYYY-MM-DD]"}
status 为 partial 时,必须在 error 中注明降级的来源。向 ~/.claude/skill-runs/intent-signal-aggregator-skill.jsonl 追加一行。
<self_healing>
partial = 已生成排名,但某个来源降级:职位信息或补充数据在重试后仍为空/失败(信号评分为 0,账户标记为 partial:<source>)、Slack DM 失败(在聊天中返回报告路径)、create_draft 失败(在聊天中返回开场白)。error = 无法解析账户列表、Apollo 完全不可用,或 qualify_lead 不可用(停止:绝不将未经 Gate Q 审核的账户标记为热门)。根据 ~/.claude/skills/epiphan-house-rules-skill/reference/self-healing.md 中的流程:重试一次 → 标记后降级 → Slack DM 给 Tim → 将状态写入 ~/.claude/skill-state/intent-signal-aggregator/ 后停止。
</self_healing>
<anti_patterns>
- 没有职位信息结果可供引用,却写“发布了 5 条职位信息”。
- 在正文中重复陈述负责人 ID 或黄金规则;由
qualify_lead给出判定。 - 输出从未测量过的赢单率基准。
- 仅凭一个过时信号就将账户标记为热门;应应用衰减规则。 </anti_patterns>
<reference_guides>
~/.claude/skills/epiphan-house-rules-skill/reference/gates.md— Gate Q 判定、抑制规则、地理位置默认值~/.claude/skills/epiphan-house-rules-skill/reference/identifiers.md— 负责人 ID、门户、电子邮件(此处绝不重复陈述)- 同类技能:
linkedin-sales-navigator-alt-skill(查找更换过职位的人)、lookalike-customer-finder-skill(确定监控对象)、sdr-dial-lists/contact-hunter-skill(跟进热门账户) </reference_guides>