AI Voice Agents - San Francisco, CA
The Bay Area has the highest concentration of voice-AI talent in the world. Anthropic, OpenAI, Cartesia, Deepgram, ElevenLabs (NY and SF), Pipecat, and LiveKit all ship from within 50 miles of each other. Production-grade voice agents are no longer research; they are a stack with sharp tradeoffs.
We build production voice agents for SF SaaS support deflection, sales-qualification call flows, and developer-tool support escalation. The decisions that matter live below the marketing layer: VAD threshold tuning, STT provider choice, whether to use OpenAI Realtime API or stitch the pipeline yourself, and how to instrument it for actual debuggability.
Pricing for a production voice agent build is scoped per engagement, depending on call flow complexity, integration count, and SOC 2 evidence requirements.
Tell us your call flow and latency target and we will scope the architecture.
The classical voice agent pipeline is four discrete stages: VAD detects end of caller speech, STT transcribes the caller, an LLM generates a response, and TTS speaks the response back. Each stage is a network hop. End-to-end latency under 800 ms requires streaming at every stage and provider colocation in the same AWS region (we default to us-west-2 for Bay Area callers).
Voice activity detection is the most under-engineered stage in most builds. Default thresholds in Vapi and Retell are tuned for broad applicability and produce 300 to 500 ms end-of-turn latency. We tune the Silero VAD model with shorter silence windows (around 120 ms instead of 300 ms) plus a fast-followup rule that allows the agent to start generating its response speculatively at 80 ms of silence and only commit if the silence holds. That alone saves 200 ms of perceived latency.
STT provider choice is a real tradeoff. Deepgram Nova-2 is the fastest streaming model on the market (40 to 80 ms per partial update) with strong accuracy on US English. AssemblyAI Universal-1 has better accuracy on speakers with non-native English pronunciation but adds 100 ms of latency. Whisper large-v3 has the best accuracy on technical jargon and acronyms common in B2B SaaS conversations but is not viable for streaming at sub- second latencies.
The LLM stage is where most teams waste latency. Long system prompts (more than 2,000 tokens) add 100 to 150 ms of TTFT without proportional quality gains. We compress the prompt, cache the static portion via Anthropic prompt caching or OpenAI cached prefixes, and structure tool definitions tightly. For call flows that require strict slot filling, we constrain the model output with response-format JSON schemas instead of hoping the prompt produces clean structure.
TTS provider choice is mostly a voice-quality call. ElevenLabs Turbo v2.5 is the production default: 100 to 150 ms first chunk, natural prosody, supports voice cloning if you want a branded voice. Cartesia Sonic ships even faster first-chunk latency (60 to 100 ms) with a slightly more synthetic feel. PlayHT Play3.0- mini is the fastest available but the prosody on long turns can drift. We A/B test voices with your actual callers during pilot, not from internal preference.
OpenAI Realtime API collapses the STT and LLM stages into a bidirectional speech-to-speech model. Median TTFT around 500 ms, but the cost of giving up explicit STT control is loss of transcript fidelity for downstream analytics and a less predictable tool-calling latency profile. We choose Realtime API for highly conversational flows (qualification, FAQ deflection) and the discrete pipeline for slot-filling flows (booking, support ticket creation).
Voice agent handles tier-1 SaaS support calls: password reset, billing inquiries, status of an open ticket, basic feature questions. Resolves 50 to 70% end-to-end. Escalates to human with structured handoff (ticket, attempted steps, sentiment).
Inbound MQL becomes outbound qualification call within 60 seconds. Agent runs your BANT or MEDDIC script, books the AE meeting via Cal.com or Chili Piper, and writes the call summary back to Salesforce. Voicemail detection on first 4 seconds of answer audio.
Real-time calendar reads, atomic write with idempotency keys, conflict resolution on near-simultaneous bookings. Tested against actual rate limits. Round-robin assignment for SE pools where the receiving rep matters.
Structured traces per call: STT transcripts, LLM prompts and responses, tool calls, TTS chunks, latency per span. Queryable. Tagged with caller hash, agent version, outcome. Daily rubric-scored sample reviewed by ops.
Voice agent calls on-duty human, summarizes the caller context in 2 to 3 sentences over the wire while the caller stays on hold, then bridges. Human picks up briefed. Reduces the average handle time on the human side by 40%.
Encrypted audio in S3 with retention policies, encrypted transcripts in Postgres, separate IAM controls for PII access, audit trail of every model invocation. BAA available on healthcare-adjacent SaaS clients. SOC 2 Type II evidence package on request.
Three call-flow patterns that recur in SF and Peninsula engagements. Each shapes the architecture differently.
Salesforce, Stripe, Figma, and the mid-market SaaS companies in SoMa and the Mission run support operations where tier-1 volume dominates engineer time. We build voice agents that resolve password resets, billing inquiries, plan changes, and ticket status without a human in the loop. Tool calls into the product API (or a read-only mirror) let the agent answer factual questions accurately. Deflection rates we have hit in production sit between 55 and 70% on tier-1 volume.
Inbound MQL from a content download or pricing-page CTA gets a callback within 60 seconds. The voice agent runs your qualification script (we have shipped BANT, MEDDIC, and SPIN variants), determines fit, and books the AE meeting via Cal.com, Chili Piper, or HubSpot Meetings. The call summary is written to Salesforce with structured fields (budget, timeline, decision-maker, current stack). Unqualified leads get a nurture path tag instead.
Companies like Anthropic, OpenAI, and the smaller dev-tool startups in the city deal with technical support calls that are too varied for a closed FAQ but too repetitive for senior engineering time. The voice agent collects the structured problem report (product, error code, last action, environment), runs documentation retrieval against the internal corpus, attempts a self-serve answer, and escalates unresolved cases to the on-call engineer with full context and a draft response.
Tell us the call flow, your latency target, your integration list, and your SOC 2 posture. We reply within one business day with an architecture and price range.