deal-momentum-analyzer
Deal health scoring + next-best-action for every open deal. Pulls HubSpot deals, CRM activity history, and engagement data to flag stalled deals, predict close probability, and recommend specific recovery actions. Runs daily at 7am CST or on-demand. Use when: 'deal health', 'pipeline review', 'stalled deals', 'deal momentum', 'which deals need attention', 'morning brief', 'SOD'.
What this skill does
<objective>
Score every open deal on momentum (not just stage) using multi-signal analysis: days in stage, activity recency, stakeholder engagement, call/activity sentiment, and MEDDIC completeness. Surfaces the 3-5 deals most likely to slip and prescribes specific next-best-actions to recover them. Target: recover 5-10% of stalled pipeline monthly (~$18K/mo at current pipeline levels).
</objective>
<quick_start>
**Daily automated run (7am CST):**
Scheduled task pulls all open deals → scores momentum → delivers prioritized action list
**On-demand:**
"deal momentum" → runs full analysis now
"pipeline review" → same, formatted as pipeline review
"which deals need attention" → filtered to at-risk only
**Trigger phrases:**
- "deal health" / "deal momentum"
- "pipeline review" / "stalled deals"
- "which deals need attention"
- "morning brief" / "SOD" (integrates into daily brief)
</quick_start>
<success_criteria>
- Every open deal scored 0-100 on momentum
- Deals classified: GREEN (on-track), YELLOW (slowing), RED (stalled)
- Top 3-5 at-risk deals surfaced with specific next-best-action
- Weekly trend: are deals accelerating or decelerating?
- Target: recover 5-10% of stalled deals per month via timely intervention
- Zero false negatives on deals about to slip close date
</success_criteria>
<workflow>
## Architecture
```
SCHEDULED (7am CST) ANALYSIS OUTPUT
─────────────────────────────────────────────────────────────────
HubSpot: all open deals → Score each deal on → Prioritized dashboard
CRM: activity history → 6 momentum signals → Next-best-action per deal
Activity: emails/calls → Classify G/Y/R → Gmail draft (optional)
→ Compare to last run → Calendar blocks (optional)
```
## Stage 1: Data Collection
### 1a. Pull All Open Deals (Owner OR Collaborator)
Use `search_crm_objects` (HubSpot MCP) with **two OR-ed filter groups** to capture both owned and collaborated deals:
**FilterGroup 1 — Tim is COLLABORATOR:**
- `hs_all_collaborator_owner_ids` CONTAINS_TOKEN `87486452`
- `hs_is_closed` EQ `false`
**FilterGroup 2 — Tim is OWNER:**
- `hubspot_owner_id` EQ `87486452`
- `hs_is_closed` EQ `false`
**Properties to request:**
`dealname`, `dealstage`, `amount`, `hubspot_owner_id`, `hs_lastmodifieddate`, `notes_last_updated`, `closedate`, `pipeline`, `createdate`, `hs_all_collaborator_owner_ids`, `num_associated_contacts`, `hs_deal_stage_probability`
Sort by `hs_lastmodifieddate` DESCENDING. Limit 100.
For each deal, capture:
| Field | HubSpot Property |
|-------|-----------------|
| Deal name | `dealname` |
| Amount | `amount` |
| Stage | `dealstage` |
| Close date | `closedate` |
| Create date | `createdate` |
| Last activity | `notes_last_updated` or `hs_lastmodifieddate` |
| Owner | `hubspot_owner_id` |
| Collaborators | `hs_all_collaborator_owner_ids` |
| Associated contacts | via associations |
| Associated company | via associations |
### 1a-bis. Deal Role Tagging
After pulling deals, tag each deal with Tim's role:
- **OWNER** — `hubspot_owner_id` = `87486452` → Tim owns the deal directly
- **COLLABORATOR** — `hs_all_collaborator_owner_ids` contains `87486452` but `hubspot_owner_id` ≠ `87486452` → Tim is helping close (AE-owned or SE-owned deal)
**Display both types** in the momentum report. Collaborator deals where an AE owns them (owner IDs 82625923 Lex Evans, 423155215 Ron Epstein, 190030668 Phillip Sandler) are deals Tim sourced or is actively supporting — they ARE his pipeline contribution and must be tracked.
**Exclude from scoring** only deals where Tim is NEITHER owner NOR collaborator (i.e., deals that somehow appeared but have no Tim involvement).
### 1b. Clari Call Intelligence (Signal 4 Data Source)
Pull recent Clari call data for contacts associated with each deal:
| Tool | Purpose |
|------|---------|
| `clari_search_calls` | Find calls involving deal contacts (filter by attendeeEmail, last 30 days) |
| `clari_get_call_summary` | Get AI summary + action items for each relevant call |
For each deal's associated contacts:
1. Search Clari calls: `clari_search_calls(attendeeEmail=contact_email, daysBack=30)`
2. For calls found: `clari_get_call_summary(callId=call_id)`
3. Extract:
- **Call sentiment**: positive/neutral/negative from AI summary
- **Discovery completeness**: were MEDDIC questions asked?
- **Competitor mentions**: any competitor names in summary
- **Action items**: unresolved action items = stall risk
- **Last call date**: recency signal for Signal 4 scoring
**Signal 4 Enhancement (Call Momentum — 15 points):**
| Sub-signal | Points | Criteria |
|-----------|--------|----------|
| Clari call in last 7 days | 5 | Recent engagement confirmed |
| Positive sentiment | 4 | AI summary = positive/constructive |
| MEDDIC questions asked | 3 | Discovery topics covered in transcript |
| No unresolved action items | 2 | All action items closed |
| No competitor mentions | 1 | Clean competitive position |
If no Clari data found, fall back to HubSpot activity recency (existing logic). Never score 0 just because Clari is empty.
### 1c. Pull Activity History
For each deal's associated company, use `ask_agent`:
- Query: "Show all activity, notes, and engagement for [company] deals in last 30 days"
- Extracts: call notes, email activity, meeting outcomes, deal stage changes
### 1c. Pull Contact Engagement
For each deal's associated contacts, use `hubspot_search_contacts`:
- Last email open/click dates
- Form submissions
- Page views
- Meeting bookings
## Stage 2: Momentum Scoring (0-100)
Score each deal on 6 weighted signals:
### Signal 1: Days in Current Stage (25 points)
| Condition | Points |
|-----------|--------|
| < median for this stage | 25 |
| At median | 15 |
| 1.5x median | 8 |
| > 2x median | 0 |
Stage medians (calibrate from Tim's historical data):
| Stage | Expected Days |
|-------|--------------|
| Appointment Scheduled | 7 |
| Qualified to Buy | 14 |
| Presentation Scheduled | 10 |
| Decision Maker Bought-In | 14 |
| Contract Sent | 7 |
| Closed Won | — |
### Signal 2: Activity Recency (20 points)
| Last activity | Points |
|--------------|--------|
| < 3 days ago | 20 |
| 3-7 days | 15 |
| 7-14 days | 8 |
| 14-21 days | 3 |
| > 21 days | 0 |
### Signal 3: Stakeholder Breadth (15 points)
**ATL/BTL Validation Required (see CLAUDE.md § ATL/BTL Classification v1.0):**
For each deal's associated contacts, classify by title before scoring:
- **ATL:** Chief, VP, Director, Dean, Provost, Superintendent, Court Administrator, City Manager, Senior Pastor, Executive Pastor
- **GRAY:** Manager (AV/Facilities/IT) — only counts as ATL-equivalent if confirmed budget >$25K
- **BTL:** Technician, Specialist, Coordinator, Support, Administrator (Systems/Network/Database), Engineer, Operator, Instructor/Faculty, Designer, Assistant, Clerk (non-Court Admin), Volunteer, Intern, Student, Resident, Help Desk
- **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
| Contacts engaged | Points |
|-----------------|--------|
| 3+ contacts, including at least 1 ATL-tier contact (confirmed EB) | 15 |
| 2+ contacts with at least 1 ATL-tier | 12 |
| 2+ contacts but ALL are BTL/GRAY (no confirmed ATL) | 7 |
| 1 contact (champion only, regardless of tier) | 5 |
| 1+ contacts but ALL are NEVER ATL titles | 2 |
| 0 active contacts | 0 |
**Penalty flag:** If a deal has 0 ATL-tier contacts, add a ⚠️ flag in the report: "NO ECONOMIC BUYER IDENTIFIED — deal at risk of stalling at Decision Maker stage. Action: ask champion to intro Director+/VP+."
### Signal 4: Call Momentum (15 points)
Uses Clari call data as primary signal source (see Stage 1b: Clari Call Intelligence).
| Activity signal | Points |
|Related in Code Review
gstack
IncludedFast headless browser for QA testing and site dogfooding. Navigate pages, interact with elements, verify state, diff before/after, take annotated screenshots, test responsive layouts, forms, uploads, dialogs, and capture bug evidence. Use when asked to open or test a site, verify a deployment, dogfood a user flow, or file a bug with screenshots. (gstack)
startup-due-diligence
IncludedLegal due diligence review for seed-stage and Series A startups (US, Delaware C-Corp focus). Supports both investor and founder perspectives. Capabilities include: (1) Interactive document review and issue spotting; (2) Document request list generation; (3) Cap table and SAFE/convertible note analysis; (4) Red flag identification with severity ratings; (5) Diligence report generation. TRIGGERS: due diligence, DD, startup investment, cap table review, Series A, seed round, investor diligence, legal review startup, SAFE analysis, convertible note, 409A, founder vesting.
interview-master
IncludedThis skill should be used when the user asks to "generate interview questions", "prepare for interview", "optimize resume", "conduct mock interview", "analyze git commits for resume", "generate resume from code", "review my resume", or mentions interview preparation, career assistance, or extracting project experience from git history. Provides comprehensive interview and career development guidance for both job seekers and interviewers.
fix-issue
IncludedFixes GitHub issues using parallel analysis agents for root cause investigation, code exploration, and regression detection. Reads issue context from gh CLI, searches codebase and memory for related patterns, generates a fix with tests, and links the resolution back to the issue via PR. Includes prevention analysis to avoid recurrence. Use when debugging errors, resolving regressions, fixing bugs, or triaging issues.
sf-apex
IncludedGenerates and reviews Salesforce Apex code with 150-point scoring. TRIGGER when: user writes, reviews, or fixes Apex classes, triggers, test classes, batch/queueable/schedulable jobs, or touches .cls/.trigger files. DO NOT TRIGGER when: LWC JavaScript (use sf-lwc), Flow XML (use sf-flow), SOQL-only queries (use sf-soql), or non-Salesforce code.
swift-development
IncludedComprehensive Swift development for building, testing, and deploying iOS/macOS applications. Use when Claude needs to: (1) Build Swift packages or Xcode projects from command line, (2) Run tests with XCTest or Swift Testing framework, (3) Manage iOS simulators with simctl, (4) Handle code signing, provisioning profiles, and app distribution, (5) Format or lint Swift code with SwiftFormat/SwiftLint, (6) Work with Swift Package Manager (SPM), (7) Implement Swift 6 concurrency patterns (async/await, actors, Sendable), (8) Create SwiftUI views with MVVM architecture, (9) Set up Core Data or SwiftData persistence, or any other Swift/iOS/macOS development tasks.