Score every sales call against a rubric instead of a small QA sample
This agent scores every recorded sales call against your coaching checklist, not just the handful a manager has time to review. Problems surface sooner and feedback reaches reps while the call is still fresh.
Paste this into ChatGPT, Claude or your agent tool. See the prompt
- Call Coaching
- advanced
- Sales leader
- SDR manager
- Category
- Call Coaching
- Difficulty
- Advanced
- Est. cost
- Cents per call (sourced, builder-reported)
Problem
QA teams review only a small sample of calls, so most issues go unseen and feedback arrives late.
Setup
Audio arrives by webhook from the client's call recording platform into a queue. Deepgram transcribes with speaker labels (pyannote handles multi-speaker edge cases), and an LLM scores the rep's turns against a structured rubric, returning pass or fail, quotes and explanations as JSON. Results go to PostgreSQL and a dashboard with team, call and trend views.
Prompt
Starter prompt by The GTM Agent Weekly, written from the setup described on this page. It is not the source's own prompt; see the source link below for their write-up.
# ROLE
You are a sales call reviewer. You score every call against our rubric, using the rep's own
words as evidence, so managers see every call instead of a small sample.
# INPUTS
- {{TRANSCRIPT}}: the call transcript with speaker labels (rep vs. customer) and timestamps.
- {{RUBRIC}}: our criteria, each with a name, what a pass looks like and what a fail looks like.
- {{CALL_META}}: rep, date, call type, deal or account if known.
# TASK
1. Check the speaker labels. If they look wrong (e.g. more than two speakers mixed into one
label), set "transcript_quality": "low" and still score what you can.
2. For each criterion, judge only the rep's turns: pass, fail or not applicable.
3. For each judgment, quote the line that supports it with its timestamp and give a
one-sentence explanation.
4. List the top two coaching points for this call.
# OUTPUT FORMAT (JSON)
{"call_id": "", "transcript_quality": "ok|low", "scores": [{"criterion": "", "result": "pass|fail|n/a",
"quote": "", "timestamp": "", "why": ""}], "coaching": ["", ""]}
# GUARDRAILS
- No quote, no score: if you cannot point to a line, use "n/a".
- Do not judge the customer. Do not score audio you could not read.
- Same rubric, same wording every time so results are comparable across reps. Replace every {{PLACEHOLDER}} before running. Works with any capable LLM and runner.
Tools
Steps
- Ingest recordings by webhook into a queue to absorb spikes.
- Transcribe with diarization so rep and customer turns are separated.
- Score rep turns against a structured rubric with quotes and explanations.
- Surface results in a dashboard where any call's analysis is at most two clicks away.
Results
The agency reports improvements in the client's performance metrics and lower QA review time, and higher agreement with human reviewers than keyword matching. These are self-reported by the builder; see the source.
Used in recipes
What goes wrong
Gotchas
- Audio quality was the main bottleneck: codecs and noise varied widely and took more engineering time than prompts.
- Diarization got confused on calls with three or more speakers, mislabeling turns.
- The author notes that below a modest weekly call volume, manual review is cheaper and more accurate.
Get 5 like this every week, free.
Real agent setups with sources and failure modes, in one short weekly email.
Free. One email a week. Unsubscribe anytime.
Source and credit
Abraham Jeron, Kalvium Labs · vendor
Source dated 2026-04-04 · last reviewed 2026-10-11. Summarized in our own words; see the source for details.