Call Compass · Tech Lead · Oct 2023 — Present · 1 min read
An AI pipeline that transcribes, redacts and scores 500+ sales calls a week.

- Calls / week
- 500+
- Pipeline stages
- 5
- Ingestion cycle
- 6h
The problem
The business wanted consistent quality scoring and sales insight across every recorded call, and the recordings contained personal data that had to be redacted before analysis.
What we did
- Built a five-stage serverless pipeline on AWS Step Functions, triggered every 6 hours by EventBridge to fetch new Talkdesk recordings.
- Transcribed calls with Gemini 2.0 Flash into structured JSON with timestamps, speaker identification and automatic PII redaction (names, phone numbers, addresses, card numbers, emails, government IDs and more).
- Scored transcripts with Gemini 2.5 Pro against configurable, versioned evaluation frameworks stored in DynamoDB.
- Extracted sales insights and generated weekly and monthly agent reports sent through AWS SES.
- Built a Next.js 15 dashboard with SSO, filters by date, agent and status, and detailed analysis views.
Key decisions
- 01
Two models: Flash for transcription, Pro for evaluation
Trade-off: Two prompts to maintain, in exchange for cheaper transcription and stronger judgement where it matters.
- 02
Schema-validated structured outputs with Zod
Trade-off: Occasional retries on invalid output, in exchange for data the dashboard can trust.
- 03
Concurrency limit of 5 with per-recording error isolation
Trade-off: Lower peak throughput, but one bad recording never stops the batch.
Architecture
Hover or tab through the components to trace the data path.
- EventBridge — Every 6 hours; weekly and monthly report schedules
- Talkdesk — Call recordings
- Step Functions — Orchestrates the five stages
- Gemini Flash — Transcription and PII redaction
- Gemini Pro — Framework scoring and insights
- DynamoDB — Frameworks, scores and reports
- AWS SES — Weekly and monthly reports
- Next.js dashboard — SSO, filters, analysis views
- Salesforce — Agent and guest enrichment
Screenshots
Call analysis dashboard
Result
Every ingested call is transcribed, redacted and scored automatically, and agents get weekly and monthly performance reports.
What I learned
- 01
Treat prompts as code: version them, validate their output and test them.
- 02
Redact before you store; it is far cheaper than cleaning up later.
Stack
- Next.js 15
- React 19
- Google Gemini
- AWS CDK
- Step Functions
- Lambda
- DynamoDB
- EventBridge
- AWS SES
- Zod
Want something like this for your business?