en un clic
callable-lead-count
// Daily callable lead inventory with ATL/BTL breakdown. Health check for 50+ daily dials.
// Daily callable lead inventory with ATL/BTL breakdown. Health check for 50+ daily dials.
Map task types to the best agent, skill, model, and fallback. Route any task to the right tool. Use when: which agent, route task, agent for this, best agent, capability matrix.
Orchestrate teams of parallel Claude Code sessions working on the same codebase. Handles task decomposition, agent coordination, context isolation, and merge strategies. Builds on worktree-manager for infrastructure.
REST/GraphQL API design patterns - resource naming, HTTP methods, error handling, pagination, versioning. Use when: design API, REST endpoints, GraphQL schema, error responses, pagination, rate limiting, API documentation.
Tool-based API testing with Postman and Bruno - collections, environments, test assertions, CI integration. Use when: postman, bruno, API testing, test API endpoint, API collection, HTTP request testing, endpoint validation.
Blue Ocean Strategy analysis using ERRC framework and Strategy Canvas. Use when: blue ocean, market differentiation, competitive strategy, value innovation, ERRC framework, strategy canvas, new market space, competitive analysis.
Business model design using Alexander Osterwalder's 9 building blocks. Use when: business model, canvas, value proposition, customer segments, revenue streams, startup planning, analyze business, business strategy.
| name | callable-lead-count |
| description | Daily callable lead inventory with ATL/BTL breakdown. Health check for 50+ daily dials. |
| schedule | 0 7 25 * * 1-5 |
| timezone | America/New_York |
<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>
<success_criteria>
MCP Tool: search_crm_objects (HubSpot)
objectType: "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
Pagination: Loop through all results (may be 200+ contacts)
Output: Full contact list with all properties (no filtering yet)
Golden Rules (Hard Exclusions):
Skip contacts if:
Retention Logic:
Output: Filtered callable list (typically 50-70% of input after Golden Rules)
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:
GRAY Tier (Contextual - Budget Authority >$25K):
BTL Tier (No Budget Authority):
NEVER ATL (Automatic Exclusions):
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
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_count
ATL Runway Metric:
atl_runway_days = ROUND(atl_count / 15, 1)
# Tim's target: 15 ATL dials/day
# Example: 45 ATL contacts = 3 days of ATL inventory
Total Runway Metric:
total_runway_days = ROUND(total_callable / 50, 1)
# Tim's target: 50+ dials/day (mix of ATL, GRAY, BTL)
# Example: 200 callable = 4 days of total inventory
Lead Age Metrics:
avg_days_in_system = AVERAGE(TODAY() - contact.createdate)
recent_engagers = count(hs_analytics_num_page_views > 0)
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)
Format: Markdown summary + detailed table
Summary Section:
# Daily Callable Lead Inventory — 2026-03-19
## Health Status
✓ ATL Inventory: 42 contacts (2.8 days)
✓ Total Callable: 185 contacts (3.7 days)
🔍 NEVER ATL: 2 contacts (review)
## 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** |
## Trend vs Yesterday
- ATL: +3 (was 39)
- GRAY: -2 (was 67)
- BTL: +5 (was 73)
- Total: +6 (was 179)
## Top Companies by Leads
1. Acme Corp: 12 contacts (5 ATL)
2. State University: 8 contacts (6 ATL)
3. County Courts: 6 contacts (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 |
This skill feeds into morning-brief (7:30 AM):
Output format for morning-brief:
{
"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 },
...
]
}
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:
As the final step, write to ~/.claude/skill-analytics/last-outcome-callable-lead-count.json:
{"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.
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)