A deterministic classifier — no LLM, no telemetry — reads your local Twilio data + Deepgram transcripts and labels your AI's calling style. Eight archetypes. One label. The rationale always cites real numbers from your data, never vibes.
Each label is triggered by a specific signal in your call data. Tie-break order favors the most actionable label — if your AI both ducks AND closes hard, it gets Ducker because that's the one worth fixing.
The pitch is short and the line clears fast. Great for transactional confirmation calls. Worth checking that you're not hanging up before the prospect can respond.
Your AI lets the prospect talk. Strongest archetype for discovery + relationship-building inbound flows. Inbound receptionists usually land here.
"Let me get back to you." "I'll have my team follow up." "I'm not authorized." Your AI deflects when pressed. Worth tightening the system prompt with explicit answers to your top FAQs.
"Would you like to book?" "What time works?" "Can I confirm?" Your AI is going for the booking on every call. High intent, sometimes too aggressive — TCPA-watch.
Your AI runs discovery before pitching. Usually a good sign — leads feel heard. Make sure you're acting on what gets said, not just collecting it.
Most of your AI's work is leaving messages. Could mean stale list, wrong call windows, or a real lead-quality problem. Run crixin voice ducked to see whether the messages actually trigger callbacks.
Most dials don't complete. Worth checking your list quality before scaling — burning a list across an AI agent is just as expensive as burning it across a human SDR.
Your AI just shows up and does the job. Nothing extreme — moderate call length, average completion, balanced ask/listen. The default fallback when no other archetype triggers.
Three real-shape rationales from three different operators running crixin voice archetype on three different call corpora. Same algorithm, three completely different reads.
31.2% of your calls run past 3 minutes — your AI lets the prospect talk. Sage-ish caller behavior; if you wanted more closes, this is the dial to turn.
22.7% of transcripts contain a close-attempt phrase ("can I schedule", "shall we get you on the calendar"). Your AI is going for the booking on every call. High intent. TCPA-watch: are these all consented?
18.4% of transcripts contain a dodge phrase ("let me get back to you", "I'll have my team follow up", "I'm not authorized"). Your AI deflects when pressed. Tighten the system prompt with explicit answers to your top FAQs.
npm i -g crixin crixin voice ingest # pull recent Twilio calls + Deepgram transcripts crixin voice archetype # prints one of the above cards, computed from YOUR corpus
No LLM. No prompt fragility. Same input → same label, every time. The 9 signals (shortCallRate, longCallRate, dodgeRate, closeRate, noAnswerRate, questionRate, completedRate, etc.) are computed in SQL against your local DB. You can audit the math in src/voice/analyze.ts.