callable-lead-count
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCallable Lead Count Skill
可呼叫线索统计Skill
<objective>
Generate daily inventory of callable prospects (contacts with phone numbers) in HubSpot. Apply Golden Rules filtering. Classify by ATL/BTL tier. Calculate ATL Runway metric (days of ATL dials at 15/day target). Alert if daily inventory falls below 50 or ATL inventory below 15. Support morning brief and dial-list priority-setting.
</objective>
<quick_start>
Trigger: M-F 7:25 AM ET (daily, before morning-brief at 7:30 AM)
Manual Trigger: "Show callable leads" or "Lead inventory check"
Dependencies: Requires HubSpot portal 21530819 access
Output: Callable lead count by tier, ATL Runway days, health alerts </quick_start>
Manual Trigger: "Show callable leads" or "Lead inventory check"
Dependencies: Requires HubSpot portal 21530819 access
Output: Callable lead count by tier, ATL Runway days, health alerts </quick_start>
<success_criteria>
- Query HubSpot for contacts with phone != null
- Apply Golden Rules (exclude customers, channel, device owners, product-page engagers)
- Classify each by ATL/BTL tier (per CLAUDE.md Decision-Maker rules)
- Count totals: ATL, GRAY, BTL, NEVER (for awareness)
- Calculate ATL Runway = ATL count ÷ 15 dials/day = X days of inventory
- Calculate total Runway = total callable count ÷ 50 dials/day = X days
- Alert if ATL < 15 (⚠️ warning)
- Alert if total < 50 (🚨 critical)
- Alert if NEVER ATL > 0 (🔍 review, remove from sequences)
- Output: Summary stats + detailed table + trend vs previous day </success_criteria>
<objective>
生成HubSpot中每日可呼叫潜在客户(带电话号码的联系人)库存,应用黄金规则过滤,按ATL/BTL层级分类,计算ATL可用天数指标(按每日15个呼叫目标的ATL拨号天数)。如果每日库存低于50或ATL库存低于15则发出警报,支持晨会和拨号列表优先级设置。
</objective>
<quick_start>
触发条件:周一至周五美国东部时间早上7:25(每日,早于7:30的晨会)
手动触发:"Show callable leads" 或 "Lead inventory check"
依赖项:需要HubSpot门户21530819的访问权限
输出:按层级划分的可呼叫线索数量、ATL可用天数、健康警报 </quick_start>
手动触发:"Show callable leads" 或 "Lead inventory check"
依赖项:需要HubSpot门户21530819的访问权限
输出:按层级划分的可呼叫线索数量、ATL可用天数、健康警报 </quick_start>
<success_criteria>
- 查询HubSpot中phone不为空的联系人
- 应用黄金规则(排除客户、渠道合作伙伴、设备所有者、产品页面访客)
- 按ATL/BTL层级分类(参考CLAUDE.md决策者规则)
- 统计总数:ATL、GRAY、BTL、NEVER(用于排查)
- 计算ATL可用天数 = ATL数量 ÷ 每日15个呼叫 = X天库存
- 计算总可用天数 = 总可呼叫数量 ÷ 每日50个呼叫 = X天
- 若ATL数量 <15则发出⚠️警告
- 若总数量 <50则发出🚨严重警报
- 若NEVER ATL数量 >0则发出🔍审核警报(从序列中移除)
- 输出:汇总统计 + 详细表格 + 较昨日的趋势对比 </success_criteria>
Stage 1: Query HubSpot for Callable Contacts
阶段1:查询HubSpot获取可呼叫联系人
MCP Tool: (HubSpot)
search_crm_objectsobjectType: "contacts"
filterGroups: [{
filters: [
{ propertyName: "phone", operator: "HAS_PROPERTY" }
]
}]
properties: [
"firstname",
"lastname",
"email",
"phone",
"jobtitle",
"company",
"hs_lead_status",
"hubspot_owner_id",
"hs_analytics_num_page_views",
"custom_atl_btl_tier",
"custom_prospect_vertical",
"lifecyclestage",
"createdate"
]
limit: 100Pagination: Loop through all results (may be 200+ contacts)
Output: Full contact list with all properties (no filtering yet)
MCP工具:(HubSpot)
search_crm_objectsobjectType: "contacts"
filterGroups: [{
filters: [
{ propertyName: "phone", operator: "HAS_PROPERTY" }
]
}]
properties: [
"firstname",
"lastname",
"email",
"phone",
"jobtitle",
"company",
"hs_lead_status",
"hubspot_owner_id",
"hs_analytics_num_page_views",
"custom_atl_btl_tier",
"custom_prospect_vertical",
"lifecyclestage",
"createdate"
]
limit: 100分页处理:循环遍历所有结果(可能有200+联系人)
输出:包含所有属性的完整联系人列表(尚未过滤)
Stage 2: Apply Golden Rules Filter
阶段2:应用黄金规则过滤
Golden Rules (Hard Exclusions):
Skip contacts if:
- Email domain matches crm_customers table (customer account)
- Contact tagged "Channel Partner" (hubspot_owner_id = channel owner)
- Contact tagged "Device Owner" or in device-owner list
- Contact tagged "Product Page Engager" (marketing-only engagement)
- Job title contains BTL keywords: Technician, Support, Intern, Volunteer, Operator, Designer (non-director)
- Job title in NEVER ATL list (Warehouse Manager, Network Manager, Systems Admin, AV Tech, Graphic Design Instructor, Program Administrator, Web Designer, Classroom Support, Lab Coordinator, Maintenance, Building Engineer, Multimedia Services Manager, Video Production Specialist, Streaming Crew)
- Lead status in exclusion list: Unqualified, Opted Out, Bad Fit
- Phone number invalid or duplicate
Retention Logic:
- Keep contacts with hs_lead_status in: Subscriber, Qualified Lead, Inbound Lead, Marketing Qualified Lead, Sales Qualified Lead
- Keep prospects created in last 90 days
- Keep contacts with hs_analytics_num_page_views > 0 (engagement signal)
Output: Filtered callable list (typically 50-70% of input after Golden Rules)
黄金规则(硬排除):
满足以下任一条件则跳过联系人:
- 邮箱域名匹配crm_customers表(客户账户)
- 联系人标记为"Channel Partner"(hubspot_owner_id为渠道所有者)
- 联系人标记为"Device Owner"或在设备所有者列表中
- 联系人标记为"Product Page Engager"(仅营销互动)
- 职位包含BTL关键词:Technician、Support、Intern、Volunteer、Operator、Designer(非总监级别)
- 职位在NEVER ATL列表中(Warehouse Manager、Network Manager、Systems Admin、AV Tech、Graphic Design Instructor、Program Administrator、Web Designer、Classroom Support、Lab Coordinator、Maintenance、Building Engineer、Multimedia Services Manager、Video Production Specialist、Streaming Crew)
- 线索状态在排除列表中:Unqualified、Opted Out、Bad Fit
- 电话号码无效或重复
保留逻辑:
- 保留hs_lead_status为Subscriber、Qualified Lead、Inbound Lead、Marketing Qualified Lead、Sales Qualified Lead的联系人
- 保留过去90天创建的潜在客户
- 保留hs_analytics_num_page_views > 0的联系人(互动信号)
输出:过滤后的可呼叫列表(通常应用黄金规则后为输入的50-70%)
Stage 3: Classify by ATL/BTL Tier
阶段3:按ATL/BTL层级分类
MCP Tool: N/A (logic-based classification using jobtitle)
Apply ATL/BTL Decision-Maker Classification (per CLAUDE.md):
ATL Tier (Always Prospect) — 10 Universal Keywords:
- Chief, CIO, CTO, CFO, COO
- Vice President, VP, AVP, SVP, EVP
- President, Provost, Vice Provost
- Superintendent, Director (IT/Tech/Facilities/Academic Tech/Procurement)
- Dean, Court Administrator, Clerk of Court
- City Manager, County Manager, Senior Pastor, Executive Pastor
GRAY Tier (Contextual - Budget Authority >$25K):
- Manager (AV/Facilities/IT) — only if reports to Director+
- Department Chair — context-dependent (small vs large institution)
- Director of Educational Technology — depends on reporting line
- Program Director — only if dept-level budget authority
BTL Tier (No Budget Authority):
- Technician, Specialist, Coordinator, Support
- Administrator (Systems/Network/Database)
- Engineer (AV/Network/Systems), Operator
- Instructor, Professor, Faculty, Designer, Assistant
- Clerk (non-Court), Volunteer, Help Desk
- Student, Resident, Intern
NEVER ATL (Automatic Exclusions):
- Warehouse Manager, Network Manager, Systems Administrator
- AV Technician, Graphic Design Instructor
- Program Administrator, Web Designer
- Classroom Support, Lab Coordinator, Maintenance
- Building Engineer, Multimedia Services Manager
- Video Production Specialist, Streaming Crew
Classification Algorithm:
FOR each contact IN filtered_list:
title = contact.jobtitle.lower()
IF title matches any NEVER_ATL keyword:
tier = "NEVER"
action = "REVIEW" (may need removal from sequences)
ELIF title matches any ATL keyword:
tier = "ATL"
ELIF title matches any GRAY keyword:
tier = "GRAY"
note = "Verify budget authority >$25K via company research"
ELSE:
tier = "BTL"Output: Classified callable contacts with tier assignment
MCP工具:无(基于职位的逻辑分类)
应用ATL/BTL决策者分类(参考CLAUDE.md):
ATL层级(优先挖掘) — 10个通用关键词:
- Chief、CIO、CTO、CFO、COO
- Vice President、VP、AVP、SVP、EVP
- President、Provost、Vice Provost
- Superintendent、Director(IT/技术/设施/学术技术/采购)
- Dean、Court Administrator、Clerk of Court
- City Manager、County Manager、Senior Pastor、Executive Pastor
GRAY层级(需判断 - 预算权限>$25K):
- Manager(AV/设施/IT)——仅当汇报给总监及以上
- Department Chair——视情况而定(小型vs大型机构)
- Director of Educational Technology——取决于汇报线
- Program Director——仅当拥有部门级预算权限
BTL层级(无预算权限):
- Technician、Specialist、Coordinator、Support
- Administrator(Systems/Network/Database)
- Engineer(AV/Network/Systems)、Operator
- Instructor、Professor、Faculty、Designer、Assistant
- Clerk(非法院)、Volunteer、Help Desk
- Student、Resident、Intern
NEVER ATL(自动排除):
- Warehouse Manager、Network Manager、Systems Administrator
- AV Technician、Graphic Design Instructor
- Program Administrator、Web Designer
- Classroom Support、Lab Coordinator、Maintenance
- Building Engineer、Multimedia Services Manager
- Video Production Specialist、Streaming Crew
分类算法:
FOR each contact IN filtered_list:
title = contact.jobtitle.lower()
IF title matches any NEVER_ATL keyword:
tier = "NEVER"
action = "REVIEW" (may need removal from sequences)
ELIF title matches any ATL keyword:
tier = "ATL"
ELIF title matches any GRAY keyword:
tier = "GRAY"
note = "Verify budget authority >$25K via company research"
ELSE:
tier = "BTL"输出:带层级分配的已分类可呼叫联系人
Stage 4: Calculate Callable Inventory Metrics
阶段4:计算可呼叫库存指标
Count by Tier:
atl_count = count(tier == "ATL")
gray_count = count(tier == "GRAY")
btl_count = count(tier == "BTL")
never_count = count(tier == "NEVER")
total_callable = atl_count + gray_count + btl_countATL Runway Metric:
atl_runway_days = ROUND(atl_count / 15, 1)按层级计数:
atl_count = count(tier == "ATL")
gray_count = count(tier == "GRAY")
btl_count = count(tier == "BTL")
never_count = count(tier == "NEVER")
total_callable = atl_count + gray_count + btl_countATL可用天数指标:
atl_runway_days = ROUND(atl_count / 15, 1)Tim's target: 15 ATL dials/day
Tim的目标:每日15个ATL呼叫
Example: 45 ATL contacts = 3 days of ATL inventory
示例:45个ATL联系人 = 3天ATL库存
**Total Runway Metric:**total_runway_days = ROUND(total_callable / 50, 1)
**总可用天数指标**:total_runway_days = ROUND(total_callable / 50, 1)
Tim's target: 50+ dials/day (mix of ATL, GRAY, BTL)
Tim的目标:每日50+呼叫(ATL、GRAY、BTL混合)
Example: 200 callable = 4 days of total inventory
示例:200个可呼叫 = 4天总库存
**Lead Age Metrics:**avg_days_in_system = AVERAGE(TODAY() - contact.createdate)
recent_engagers = count(hs_analytics_num_page_views > 0)
---
**线索年龄指标**:avg_days_in_system = AVERAGE(TODAY() - contact.createdate)
recent_engagers = count(hs_analytics_num_page_views > 0)
---Stage 5: Generate Health Alerts
阶段5:生成健康警报
Alert Thresholds:
| Metric | Threshold | Alert Level | Action |
|---|---|---|---|
| ATL count | < 15 | ⚠️ Warning | "Increase ATL prospecting (prospect-enrich + prospect-refresh)" |
| Total callable | < 50 | 🚨 Critical | "Insufficient inventory for 50 dials/day—escalate prospecting" |
| NEVER ATL count | > 0 | 🔍 Review | "X contacts in NEVER ATL tier—remove from sequences" |
| ATL Runway | < 2 days | ⚠️ Warning | "Less than 2 days of ATL dials—restock urgently" |
Alert Output:
✓ ATL inventory: 42 contacts (2.8 days runway)
✓ Total callable: 185 contacts (3.7 days runway)
🔍 NEVER ATL: 2 contacts (remove from sequences)
✓ Health: GREEN (acceptable inventory)警报阈值:
| 指标 | 阈值 | 警报级别 | 操作 |
|---|---|---|---|
| ATL数量 | < 15 | ⚠️ 警告 | "增加ATL潜在客户挖掘(prospect-enrich + prospect-refresh)" |
| 总可呼叫数量 | < 50 | 🚨 严重 | "库存不足,无法满足每日50个呼叫——升级挖掘优先级" |
| NEVER ATL数量 | > 0 | 🔍 审核 | "X个联系人属于NEVER ATL层级——从序列中移除" |
| ATL可用天数 | < 2天 | ⚠️ 警告 | "ATL呼叫库存不足2天——紧急补充" |
警报输出示例:
✓ ATL库存:42个联系人(2.8天可用)
✓ 总可呼叫:185个联系人(3.7天可用)
🔍 NEVER ATL:2个联系人(从序列中移除)
✓ 健康状态:GREEN(库存充足)Stage 6: Output Summary Report
阶段6:生成汇总报告
Format: Markdown summary + detailed table
Summary Section:
undefined格式:Markdown汇总 + 详细表格
汇总部分示例:
undefinedDaily Callable Lead Inventory — 2026-03-19
每日可呼叫线索库存 — 2026-03-19
Health Status
健康状态
✓ ATL Inventory: 42 contacts (2.8 days)
✓ Total Callable: 185 contacts (3.7 days)
🔍 NEVER ATL: 2 contacts (review)
✓ ATL库存:42个联系人(2.8天)
✓ 总可呼叫:185个联系人(3.7天)
🔍 NEVER ATL:2个联系人(需审核)
Detailed Breakdown
详细分层
| Tier | Count | % of Total | Runway Days | Status |
|---|---|---|---|---|
| ATL | 42 | 22.7% | 2.8 | ✓ Good |
| GRAY | 65 | 35.1% | 1.3 | ⚠️ Monitor |
| BTL | 78 | 42.2% | 1.6 | ✓ OK |
| TOTAL | 185 | 100% | 3.7 | ✓ GREEN |
| 层级 | 数量 | 占比 | 可用天数 | 状态 |
|---|---|---|---|---|
| ATL | 42 | 22.7% | 2.8 | ✓ 良好 |
| GRAY | 65 | 35.1% | 1.3 | ⚠️ 需监控 |
| BTL | 78 | 42.2% | 1.6 | ✓ 正常 |
| 总计 | 185 | 100% | 3.7 | ✓ GREEN |
Trend vs Yesterday
较昨日趋势
- ATL: +3 (was 39)
- GRAY: -2 (was 67)
- BTL: +5 (was 73)
- Total: +6 (was 179)
- ATL:+3(昨日39)
- GRAY:-2(昨日67)
- BTL:+5(昨日73)
- 总计:+6(昨日179)
Top Companies by Leads
线索Top企业
- Acme Corp: 12 contacts (5 ATL)
- State University: 8 contacts (6 ATL)
- County Courts: 6 contacts (5 ATL)
- Acme Corp:12个联系人(5个ATL)
- State University:8个联系人(6个ATL)
- County Courts:6个联系人(5个ATL)
Activity Signal
互动信号
- Recent engagers (>5 page views): 45 contacts
- Avg days in system: 23 days
- New adds (last 7 days): 18 contacts
**Detailed Callable Table:**
| Contact | Title | Company | Vertical | Phone | Tier | Days in System | Engagement | Sequence |
|---------|-------|---------|----------|-------|------|--------|-----------|----------|
| Jane Smith | Director of IT Services | Acme Corp | Corp AV | ✓ | ATL | 34 | 12 views | BDR_CorporateAV_1 |
| Bob Jones | Manager, IT Infrastructure | State Univ | Higher Ed | ✓ | GRAY | 45 | 3 views | BDR_HigherEd_1 |
| Carol White | AV Technician | Example Inc | Healthcare | ✓ | NEVER | 12 | 1 view | REMOVE |
---- 近期高互动(>5次页面浏览):45个联系人
- 平均在系统中天数:23天
- 新增线索(近7天):18个联系人
**详细可呼叫列表示例**:
| 联系人 | 职位 | 企业 | 垂直领域 | 电话 | 层级 | 在系统中天数 | 互动量 | 序列 |
|---------|-------|---------|----------|-------|------|--------|-----------|----------|
| Jane Smith | Director of IT Services | Acme Corp | Corp AV | ✓ | ATL | 34 | 12次浏览 | BDR_CorporateAV_1 |
| Bob Jones | Manager, IT Infrastructure | State Univ | Higher Ed | ✓ | GRAY | 45 | 3次浏览 | BDR_HigherEd_1 |
| Carol White | AV Technician | Example Inc | Healthcare | ✓ | NEVER | 12 | 1次浏览 | REMOVE |
---Stage 7: Integration with Morning Brief
阶段7:与晨会集成
This skill feeds into morning-brief (7:30 AM):
- Pass ATL/GRAY/BTL breakdown to morning-brief
- Pass alert flags (⚠️ warning, 🚨 critical, 🔍 review)
- Pass top 15 ATL contacts for priority dial list
- Pass runway metrics for inventory planning
Output format for morning-brief:
json
{
"atl_count": 42,
"gray_count": 65,
"btl_count": 78,
"never_count": 2,
"total_callable": 185,
"atl_runway_days": 2.8,
"total_runway_days": 3.7,
"alerts": ["NEVER_ATL_REVIEW"],
"top_atl_contacts": [
{ "name": "Jane Smith", "company": "Acme", "days_in_system": 34 },
...
]
}该技能数据会输入到晨会(7:30 AM):
- 将ATL/GRAY/BTL分层数据传递给晨会
- 传递警报标记(⚠️警告、🚨严重、🔍审核)
- 传递前15个ATL联系人作为优先拨号列表
- 传递可用天数指标用于库存规划
晨会输出格式:
json
{
"atl_count": 42,
"gray_count": 65,
"btl_count": 78,
"never_count": 2,
"total_callable": 185,
"atl_runway_days": 2.8,
"total_runway_days": 3.7,
"alerts": ["NEVER_ATL_REVIEW"],
"top_atl_contacts": [
{ "name": "Jane Smith", "company": "Acme", "days_in_system": 34 },
...
]
}Stage 8: Comparison Metrics (Week-over-Week)
阶段8:对比指标(周环比)
Optional: Track 7-day trend
| Date | ATL | GRAY | BTL | Total | ATL Runway | Status |
|---|---|---|---|---|---|---|
| 2026-03-19 | 42 | 65 | 78 | 185 | 2.8 | ✓ |
| 2026-03-18 | 39 | 67 | 73 | 179 | 2.6 | ✓ |
| 2026-03-17 | 35 | 64 | 70 | 169 | 2.3 | ⚠️ |
| 2026-03-16 | 32 | 62 | 68 | 162 | 2.1 | ⚠️ |
Trend Analysis:
- ATL growing 3-4/day (good)
- Total growing 6/day (good, at target from prospect-enrich + prospect-refresh)
- Runway stable at 2.8-3.7 days (acceptable; 2+ days is minimum)
可选:跟踪7天趋势
| 日期 | ATL | GRAY | BTL | 总计 | ATL可用天数 | 状态 |
|---|---|---|---|---|---|---|
| 2026-03-19 | 42 | 65 | 78 | 185 | 2.8 | ✓ |
| 2026-03-18 | 39 | 67 | 73 | 179 | 2.6 | ✓ |
| 2026-03-17 | 35 | 64 | 70 | 169 | 2.3 | ⚠️ |
| 2026-03-16 | 32 | 62 | 68 | 162 | 2.1 | ⚠️ |
趋势分析:
- ATL每日增长3-4个(良好)
- 总库存每日增长6个(良好,达到prospect-enrich + prospect-refresh的目标)
- 可用天数稳定在2.8-3.7天(可接受;最低要求2+天)
Emit Outcome Sidecar
输出结果附文
As the final step, write to :
~/.claude/skill-analytics/last-outcome-callable-lead-count.jsonjson
{"ts":"[UTC ISO8601]","skill":"callable-lead-count","version":"1.0.0","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"atl_count":[n],"gray_count":[n],"btl_count":[n],"total_callable":[n],"never_atl_flagged":[n],"atl_runway_days":[n]},
"error":null,"session_id":"[YYYY-MM-DD]"}Use status "partial" if some stages failed but results were produced. Use "error" only if no output was generated.
作为最后一步,写入文件:
~/.claude/skill-analytics/last-outcome-callable-lead-count.jsonjson
{"ts":"[UTC ISO8601]","skill":"callable-lead-count","version":"1.0.0","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"atl_count":[n],"gray_count":[n],"btl_count":[n],"total_callable":[n],"never_atl_flagged":[n],"atl_runway_days":[n]},
"error":null,"session_id":"[YYYY-MM-DD]"}若某些阶段失败但仍生成结果,使用状态"partial";仅当未生成任何输出时使用"error"。
Skill Metadata
Skill元数据
Version: 1.0
Last Updated: 2026-03-19
Author: Tim Kipper
Status: Production
Integration: HubSpot (portal 21530819)
Tier: P1 (Core BDR Automation)
Triggers: Scheduled (M-F 7:25 AM) + Manual ("Show callable leads")
Dependencies: Feeds into morning-brief (7:30 AM)
Last Updated: 2026-03-19
Author: Tim Kipper
Status: Production
Integration: HubSpot (portal 21530819)
Tier: P1 (Core BDR Automation)
Triggers: Scheduled (M-F 7:25 AM) + Manual ("Show callable leads")
Dependencies: Feeds into morning-brief (7:30 AM)
版本:1.0
最后更新:2026-03-19
作者:Tim Kipper
状态:生产环境
集成:HubSpot(门户21530819)
优先级:P1(核心BDR自动化)
触发方式:定时(周一至周五7:25 AM)+ 手动("Show callable leads")
依赖项:数据输入到晨会(7:30 AM)
最后更新:2026-03-19
作者:Tim Kipper
状态:生产环境
集成:HubSpot(门户21530819)
优先级:P1(核心BDR自动化)
触发方式:定时(周一至周五7:25 AM)+ 手动("Show callable leads")
依赖项:数据输入到晨会(7:30 AM)