Call Audit Platform
AI-assisted call QA, shipped to production at DCM Shriram.
- Started
- May 2026
- Stack
- React · FastAPI · PostgreSQL · Whisper · Nginx
01 · Problem
The problem
DCM Shriram's QA and customer-service teams needed one place to audit calls: score them, collect agents' self-evaluations and HOD ratings, and keep a permanent feedback trail.
- Recordings are sensitive. Employees should see that an audit exists, but only the right people may hear it.
- Audio is large and shouldn't pile up forever, yet the feedback history must never be lost.
- It started on SQLite and had to become a production service on the company's Ubuntu server.
02 · Approach
How it works
- 01AI first pass on every callEach upload is transcribed by Whisper large-v3 and scored by Llama 3.3 70B (both on Groq): quality score, CSAT, sentiment, topics, keywords and coaching suggestions. Calls are tagged by ISO week for reporting.
- 02A workflow for three rolesAdmins create audits and design the self-evaluation form (yes/no, 1–5 ratings, free text), agents fill it in and HODs add a compliance rating. Scores roll up into scorecards and leaderboards.
- 03Audio that can't leakNo audio URL is ever exposed. The browser fetches each recording as an authenticated blob through Axios interceptors and renders it with WaveSurfer.js; other people's calls show up locked.
- 04Retention without data lossAn APScheduler job deletes recordings after an admin-configurable number of days and runs weekly disk checks, while transcripts and feedback are kept permanently.
- 05From SQLite to productionA migration script copies every table into PostgreSQL and re-syncs the sequences. The app runs on Ubuntu with Uvicorn under systemd behind an Nginx reverse proxy that also serves the React build.
03 · Architecture
Architecture
One Ubuntu server: Nginx in front, FastAPI in the middle, AI in the cloud.
- 01Three kinds of user
Admins upload recordings, call agents review their own calls, HODs rate compliance.
- 02One entry point
Nginx serves the React build and reverse-proxies API calls to FastAPI on the same Ubuntu server.
- 03FastAPI owns the rules
JWT auth and strict role boundaries decide who can see and hear what.
- 04AI does the first pass
Whisper large-v3 transcribes; Llama 3.3 70B returns scores, sentiment, topics and tips.
- 05Split storage
Audits and feedback live in PostgreSQL; audio stays on disk with only its path in the database.
- 06Retention on autopilot
Recordings are purged after the configured number of days; the text record is kept for good.
04 · Results
Results
- roles with separate permissions
- 3
- AI models per call: Whisper large-v3 and Llama 3.3 70B
- 2
- audio URLs exposed to the browser
- 0
- in production, migrated from SQLite
- PostgreSQL
Built and supported in production during my May–July 2026 internship, resolving production issues and shipping features with the HR, QA and infrastructure teams.