call-recording-analyzer

v2026.09.24

Gong/Chorus-style call transcript analysis using Clari data. Scores calls against MEDDIC framework, flags missed discovery questions, surfaces competitor mentions, extracts action items, and identifies coaching moments. Feeds deal-momentum-analyzer and morning-brief with call quality signals. Use when: 'analyze call', 'call review', 'score my call', 'what did I miss', 'call coaching', 'review transcript', 'Clari analysis', 'call scorecard', 'how did my call go', 'review my last call with [company]'.

GitHub
Install command
npx skhub add scientiacapital/call-recording-analyzer
Markdown
SKILL.md
<objective> Replace manual call review with automated Clari transcript analysis. Every call Tim makes gets scored against MEDDIC dimensions, flagged for missed discovery questions, and fed into downstream skills (deal-momentum-analyzer, morning-brief). Targets: identify 3+ coaching moments per call, surface competitor intel automatically, and reduce post-call admin from 10 minutes to under 60 seconds. </objective>

<quick_start> After a call: "analyze my last call with Baylor" → pulls Clari transcript → scores against MEDDIC → outputs scorecard

Batch review: "review today's calls" → analyzes all calls from today → summary report

Coaching mode: "call coaching for my University of Michigan demo" → deep analysis with talk ratio, question quality, objection handling

Trigger phrases:

  • "analyze call [company]"
  • "call review [company]"
  • "score my call"
  • "what did I miss on [company] call"
  • "call coaching [company]"
  • "review my last call"
  • "review today's calls"
  • "how did my call go"
  • "Clari scorecard" </quick_start>

<success_criteria>

  • MEDDIC scorecard generated for every analyzed call
  • Missed discovery questions identified (what SHOULD have been asked)
  • Competitor mentions extracted and mapped to battlecard responses
  • Talk-to-listen ratio calculated (target: prospect talks 60%+)
  • Action items extracted with owner assignment
  • Coaching moments flagged (interruptions, missed objection follow-ups, premature pitching)
  • Results feed into deal-momentum-analyzer Signal 4 (call momentum scoring)
  • Analysis completes in under 60 seconds per call </success_criteria>
<workflow>

Architecture

TRIGGER                    DATA PULL                 ANALYSIS                OUTPUT
──────────────────────────────────────────────────────────────────────────────────
"analyze call X"  →  Clari: transcript +     →  MEDDIC scoring      →  Call Scorecard
                     summary + action items   →  Discovery gaps       →  Coaching Report
                  →  HubSpot: deal context    →  Competitor extract   →  Action Items
                  →  Prior call history       →  Talk ratio analysis  →  Deal Update
                                              →  Objection mapping    →  Morning Brief Feed

Stage 1: Data Collection

Run these MCP calls in parallel:

1a. Clari Call Data

ToolPurpose
clari_search_callsFind the call by company name, attendee email, or date range
clari_get_callFull call metadata: duration, participants, recording URL
clari_get_call_summaryAI summary, key moments, action items, sentiment

Search strategy:

  1. If company name provided: clari_search_calls(query=company_name, daysBack=7)
  2. If "last call" or "today's calls": clari_search_calls(daysBack=1)
  3. If attendee specified: clari_search_calls(attendeeEmail=email, daysBack=14)

1b. HubSpot Deal Context

ToolPurpose
hubspot_search_companiesCompany record for the prospect
hubspot_search_dealsActive deals associated with this company
hubspot_search_contactsContact records for call participants

Pre-Flight Golden Rules Check:

  • If contact.lifecyclestage = 'customer' → Skip. Route to CSM.
  • If hubspot_owner_id IN ('82625923', '423155215', '190030668') AND Tim is NOT collaborator → Skip.

1c. Prior Call History

ToolPurpose
clari_search_callsFind previous calls with same contacts (last 90 days)
clari_get_call_summarySummaries of prior calls for progression context

Stage 2: MEDDIC Call Scoring

Score the call transcript against each MEDDIC dimension (0-100 total).

M — Metrics (0-20 points)

EvidencePoints
Prospect stated specific success metrics20
Prospect described general goals12
Tim asked but prospect deflected8
Not discussed0

Missed question: "How will you measure success? What does ideal look like in numbers?"

E — Economic Buyer (0-20 points)

EvidencePoints
EB identified by name and confirmed as budget holder20
EB referenced indirectly12
Tim asked, answer unclear8
No discussion of budget authority0

ATL/BTL Validation (MANDATORY — per CLAUDE.md § ATL/BTL Classification v1.0): Classify ALL call attendees. If NO ATL attendee → Flag ⚠️ COACHING MOMENT: "Get the economic buyer on the next call."

D — Decision Criteria (0-15 points)

EvidencePoints
Prospect listed specific evaluation criteria15
Some factors mentioned10
Tim asked, prospect uncertain5
Not discussed0

D — Decision Process (0-15 points)

EvidencePoints
Clear timeline + stakeholders + process15
Partial timeline10
Tim asked, vague5
Not discussed0

I — Identify Pain (0-20 points)

EvidencePoints
Specific quantified pain20
Qualitative pain12
Pain implied6
No pain discussion (pitch without discovery)0

C — Champion (0-10 points)

EvidencePoints
Contact volunteered to champion internally10
High engagement (detailed questions, requested next steps)7
Passive engagement3
No champion signal0

MEDDIC Classification

ScoreRatingMeaning
80-100STRONGWell-qualified deal
60-79ADEQUATE1-2 gaps to fill next call
40-59WEAKIncomplete discovery
0-39MISSEDCall was a pitch, not discovery

Stage 3: Coaching Analysis

Talk-to-Listen Ratio

  • Target: Prospect talks 60%+, Tim talks 40% or less
  • Red flag: Tim talked 60%+ = premature pitching

Question Quality

TypeQuality
Open-ended discoveryHIGH
Calibrated (NSTTD style)HIGH
Closed confirmationMEDIUM
Leading/assumptiveLOW
Product feature dumpCOACHING MOMENT

Competitive Intelligence Extraction

Scan for: Extron, Blackmagic, Crestron, vMix, Matrox, Teradek, Kaltura, Panopto, YuJa, Echo360

Stage 4: Output Format

╔══════════════════════════════════════════════════════════════╗
║  CALL SCORECARD: [Company Name]                              ║
║  [Date] [Duration] | [Call Type: Discovery/Demo/Follow-up]   ║
╠══════════════════════════════════════════════════════════════╣

MEDDIC SCORE: [XX/100] — [STRONG/ADEQUATE/WEAK/MISSED]

DISCOVERY GAPS — ASK THESE NEXT TIME:
1. [Specific question for biggest MEDDIC gap]
2. [Specific question for second gap]

COACHING MOMENTS:
⚠️ [Context] — [What happened] → [What to do differently]

COMPETITIVE INTEL: [Competitor mentioned + battlecard response]

TALK RATIO: Tim [X%] / Prospect [X%]

ACTION ITEMS:
☐ [Action] — Owner: [Tim/Prospect] — Due: [date]

╚══════════════════════════════════════════════════════════════╝
</workflow>

<downstream_integration>

Feed to Sibling Skills

deal-momentum-analyzer (Signal 4: Call Momentum)

Push: call_recency, call_sentiment, meddic_score, unresolved_actions, competitor_detected

morning-brief

Include: yesterday's call scores, unresolved action items, deals with MEDDIC gaps needing follow-up

meddic-call-prep-auto

Feed prior call gaps into next call prep </downstream_integration>

<dependencies> ## Required MCP Tools - **Epiphan Clari MCP:** clari_search_calls, clari_get_call, clari_get_call_summary - **Epiphan CRM MCP:** hubspot_search_companies, hubspot_search_contacts, hubspot_search_deals, ask_agent - **Gmail MCP:** gmail_create_draft

Sibling Skills Referenced

  • deal-momentum-analyzer — Consumes call quality signals for Signal 4 scoring
  • meddic-call-prep-auto — Receives call gaps to inform next call prep
  • morning-brief — Displays yesterday's call summaries </dependencies>

Emit Outcome Sidecar

As the final step, write to ~/.claude/skill-analytics/last-outcome-call-recording-analyzer.json:

{"ts":"[UTC ISO8601]","skill":"call-recording-analyzer","version":"1.0.0","variant":"default",
 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
 "metrics":{"calls_analyzed":[n],"avg_meddic_score":[n],"coaching_moments_found":[n],"competitors_detected":[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.

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

active/call-recording-analyzer-skill

Default branch

main

Latest commit

9e03af3

Tree SHA

5b28287