Claude Code Builds Voice Sales Agents in Minutes
Nate Herk demos building a voice agent with Claude Code that captures leads, answers questions, and books Cal.com calls via ElevenLabs—just describe the idea in natural language, no manual dashboard config or docs needed.
Manual Voice Agents Are Obsolete—Natural Language Builds Win
Voice agents traditionally require tedious dashboard navigation in tools like ElevenLabs: manually crafting system prompts (personas), selecting voices, uploading knowledge bases, and wiring tools via API endpoints. Nate Herk argues this 'clicks over code' approach leads to errors like forgotten saves or misconfigured endpoints. Instead, he uses Claude Code—a VS Code extension powered by Anthropic's Claude—to generate everything from a high-level description. In a demo, he built a voice agent trained on his 400 YouTube transcripts in 15 minutes; it pulls data, integrates ElevenLabs, and embeds on his site. The agent answered queries like "best scraping tools Nate mentioned?" with specifics: "Nate talks a lot about Firecrawl as a powerful scraping tool... used with Claude Code through an MCP server."
This shifts from manual labor to AI-orchestrated planning and execution. Claude Code's 'Plan Mode' brainstorms architecture, asks clarifying questions (e.g., "What's your ElevenLabs setup? How should the widget appear?"), drafts system prompts, and executes steps like API integrations. Nate emphasizes: "Code beats clicks... it's so much better to just build a voice agent by speaking into your computer rather than going onto the dashboard and clicking."
Tradeoffs: Requires paid Claude access and API keys, but eliminates docs-reading. No computer-use beta needed for most steps, though advanced automation could handle dashboard logins.
Voice Agent Anatomy: Persona, Voice, Knowledge, Tools
Every voice agent runs a transcription-response loop: microphone input → STT (speech-to-text) → LLM processing (prompt/tools/DB queries) → TTS (text-to-speech) → speaker output. Nate breaks it into four essentials:
- Persona (System Prompt): Defines behavior. E.g., "warm, professional B2B sales tone" for his Neural AI consultancy agent. Could make it rude, jokey, or Nate-like.
- Voice: ElevenLabs offers clones (Nate used his 4-hour professional clone), trending/iconic options.
- Knowledge: Business info, customer DBs, or RAG sources like YouTube transcripts, Pinecone, or NotebookLM.
- Tools: API calls, MCP servers, Zapier, custom scripts. Claude Code auto-configures these per ElevenLabs docs.
Deployment options: ElevenLabs dashboard testing, website widget (single script snippet), or Twilio phone integration. Nate picks widget embed for sites: "It's literally just one little block... copy this, give it to Claude Code, and say 'put this onto my website.'"
"Now just by brainstorming with Claude Code... it will go ahead and do the research and figure out the best method for you and then it will build a voice agent in ElevenLabs and configure it all up."
Live Build: Sales Agent for Lead Capture and Auto-Booking
Nate's project: Embed a voice agent on Neural's landing page (AI consultancy site built via Claude). Goal: Answer client questions, capture details (name, email, company, problem, team size/RO), push to book 30-min discovery calls via Cal.com (calendar sync like Calendly).
Planning Phase (Plan Mode): Natural language prompt: "Embed voice agent widget... use ElevenLabs... connect to Cal.com... book meetings." Claude Code clarifies: ElevenLabs/Cal.com status, widget style (default floating bubble), voice/persona, extra fields. Outputs architecture:
- Cal.com prep: API key, event type ID (30-min slot).
- ElevenLabs agent creation: Voice/LLM selection, first message, system prompt (sales-focused), tools (check availability, book slot).
- Widget embed in site HTML.
Draft system prompt: Tailored for sales, e.g., qualify leads, collect data, book directly (no intermediary N8N/Zapier—"too many pieces").
Execution: Claude Code creates .env for keys (Cal.com/ ElevenLabs API). Nate pastes keys (ElevenLabs: full perms or spend limit; Cal.com: new demo key). Claude handles auth, verifies calendar, creates agent "Neural Diagnostics," adds tools (availability check, booking with name/email/etc.). Renames event for clarity.
Full build: ~10-15 mins post-planning. Site updated with widget script. Agent live: Answers queries, books calls.
"All I have to do is speak to it, and it's going to help ask me questions and guide us in the right way."
Debugging Time Zones and Iterations Without Docs
First test: Agent misread PST time zone, booked wrong slots. Nate iterated verbally: Claude Code diagnosed via logs (no docs lookup needed), fixed prompt/tools for user-local TZ detection. Subsequent tests flawless.
Process: Run → spot bug → describe issue to Claude Code → it debugs/redeploys. "You'll see the full build, the bugs I hit along the way, and how I debugged them without ever touching the docs."
Final demo: Widget starts call, agent qualifies lead (e.g., "What's your biggest AI challenge?"), books Cal.com slot with details.
Security, Costs, and Production Realities
- Security: API keys in
.env(git-ignore). ElevenLabs keys: Set perms/spend limits. Cal.com: Revoke demo keys post-test. - Costs: ElevenLabs (voice clone best-in-class), Claude sub, Cal.com free tier. Widget scales; monitor usage.
- Why ElevenLabs: Superior voice cloning/UI/widget. Alternatives exist, but this stack minimizes friction.
Tradeoffs: Claude Code needs VS Code install/extension; Windows GLO STT pending (Nate switched from Whisper for speed/privacy). Not fully autonomous (manual key paste), but 90% hands-off.
"It has never been so easy to build whatever you want."
Key Takeaways
- Start in Claude Code's Plan Mode: Describe end-goal (e.g., "sales voice agent with Cal.com booking"), let it clarify and plan—saves rework.
- Use
.envfor API keys: Cal.com (settings → API keys), ElevenLabs (dev settings → full perms + spend cap). - Embed widgets directly: Copy ElevenLabs snippet to Claude Code for site integration—no custom frontend.
- Debug iteratively: Verbal prompts to Claude Code fix issues like TZ mismatches faster than docs.
- Prioritize voice clones: ElevenLabs for pro quality; train on 4+ hours audio.
- Direct tool calls > intermediaries: ElevenLabs → Cal.com skips N8N/Zapier latency.
- Test loops end-to-end: Transcription → LLM → tools → TTS.
- Scale knowledge: RAG on transcripts/DBs via Claude Code auto-setup.
- Monitor costs/security: Spend limits, revoke keys, git-ignore secrets.
- VS Code > desktop app: Better for projects with site embeds.