Build Your 24/7 Voice Agent
Answer every call. Qualify every lead. Book every appointment. While you sleep.
The Playbook
Six steps. Your own code. No subscriptions.
You'll own every line of code. No drag-and-drop tools. No $20/mo automation platforms. Claude Code builds the entire app. You deploy it and it runs.
Create your Vapi account and get your API key
15 minGo to vapi.ai ↗ and click Get Started Free. You get $10 in free credits, enough for ~60 minutes of test calls.
Once logged in, go to Dashboard > API Keys ↗. Click Create API Key. Copy it somewhere safe.
You do NOT need to manually create the assistant in the dashboard. The Claude Code prompt includes a setup script that creates it via API with all the right settings.
- Create Vapi account at vapi.ai ↗
- Copy your API key from Dashboard > API Keys ↗
Write your qualifying criteria
30 minThis is YOUR buy box, not a generic script. The agent needs to know exactly what makes a lead qualified for YOUR business.
Open the Claude Code prompt (below) and replace every bracketed value in the qualifying criteria section:
- Property types you buy: Single-family? Multi-family? Commercial? Be specific.
- Target markets: Which cities, states, or zip codes? List them all.
- Price range: What's your minimum and maximum?
- Motivation filter: What timeline qualifies? 6 months? 3 months? Immediate?
- Deal killers: What instantly disqualifies a lead? Listed with an agent? Out of market? No timeline?
- What to do with unqualified leads: Collect email for nurture? Just thank them?
Get your API keys and credentials
15 minYou need credentials for four services. All have free tiers.
- Anthropic (Claude): Get your key at console.anthropic.com/settings/keys ↗. Add $5 in credits at Billing ↗.
- Twilio (SMS): Sign up at twilio.com/try-twilio ↗. Get your Account SID and Auth Token from the Console dashboard ↗. Buy a number ($1.15/mo).
- Google Calendar: Create a service account in Google Cloud Console ↗. Enable the Calendar API. Download the JSON key. Share your calendar with the service account email.
- CRM Webhook: Get your inbound webhook URL from GoHighLevel ↗, Follow Up Boss ↗, or HubSpot ↗.
.env file when Claude Code generates the project.Run the Claude Code prompt and deploy
30 minThis is where it all comes together. Paste the prompt below into Claude Code. It generates the entire project: Express server, webhook handler, Claude analysis, calendar booking, CRM push, notifications, and the Vapi setup script.
- Paste the full prompt into Claude Code
- Fill in your
.envfile with the API keys from Step 3 - Update the qualifying criteria in the code with your answers from Step 2
- Run
npm install - Run
node scripts/setup-vapi.jsto create your Vapi assistant - Run
node server.jsto start locally and test
Deploy to the cloud (pick one):
- Railway (easiest): railway.app ↗. Free tier. Connect your repo, set env vars, deploy.
- Render: render.com ↗. Free tier. Auto-deploys from GitHub.
- Any VPS: Run with
pm2 start server.jsfor production.
Set up your phone number and forwarding
15 min- Buy a number in Vapi: Go to Phone Numbers ↗ > Buy Number. Choose your area code. ~$1-2/mo. Assign to your assistant.
- Or import from Twilio: In Vapi > Phone Numbers ↗ > Import from Twilio. Enter your Twilio SID and Auth Token.
- Forward your business line: On most carriers, dial
*72then the Vapi number. For after-hours only, use conditional forwarding (forward on no answer). - Google Voice: Settings > Calls > Forward calls > Add your Vapi number.
Test and go live
30 minCall your agent from a different phone. Run through each scenario:
- Qualified seller: Describe a property in your buy box. Does it book an appointment?
- Unqualified lead: Describe something outside your criteria. Does it exit gracefully?
- Quick hang-up: Call and hang up after 10 seconds. Does the server handle it without crashing?
- Check your CRM: Did the lead data arrive with the right tags?
- Check your calendar: Is the appointment booked with the right details?
- Check your phone: Did you get the SMS notification?
Common fixes:
- Agent sounds robotic: Update the system prompt. Add "Speak naturally. Use contractions. Mirror the caller's energy."
- Too many false qualifications: Tighten your criteria in the analyze.js system prompt.
- Webhook not firing: Check Vapi > Assistant > Server URL matches your deployed URL. Enable "end-of-call-report" in Server Events.
- Calendar not booking: Make sure you shared your calendar with the Google service account email.
Done For You
Get the complete Voice Agent prompt
Drop your info to unlock the full Claude Code prompt. Ready to copy and paste.
Choose wisely. One playbook per person.