A phone-callable AI agent that represents your professional profile to recruiters. Built with Syrin (agent brain) + Pipecat (voice pipeline).
cd examples/resume_agent
uv venv .venv
uv sync
source .venv/bin/activate # Windows: .venv\Scripts\activateSee ARCHITECTURE.md for the full system diagram.
Flow: Twilio (phone) → Pipecat (STT/TTS/VAD) → Syrin Agent (Knowledge, tools) → response
From this directory with the venv activated:
source .venv/bin/activate # or .venv\Scripts\activate on Windows
python agent.pyType questions; the agent uses the knowledge base (data/about.md, data/skills.yaml, data/projects/).
pip install "pipecat-ai[deepgram,elevenlabs]"
# Or: uv sync (from this directory)Ensure examples/.env (parent of resume_agent) has:
OPENAI_API_KEY— LLM + embeddingsDEEPGRAM_AUTH_TOKENorDEEPGRAM_API_KEY— STTELEVENLABS_API_KEY— TTSTWILIO_ACCOUNT_SID,TWILIO_AUTH_TOKEN— telephony
Edit data/about.md, data/skills.yaml, and data/projects/ with your resume and projects. The agent answers from this knowledge.
# Terminal 1: Expose local server
ngrok http 7860
# Terminal 2: Start voice server (from examples/resume_agent/)
source .venv/bin/activate
python voice_server.py -t twilio -x YOUR_NGROK_SUBDOMAIN.ngrok.ioUse -x with your ngrok host (e.g. abc123.ngrok-free.app) so Twilio can reach the WebSocket.
- Go to Twilio Console → Phone Numbers → your number.
- Under "Voice Configuration", set "A call comes in" to TwiML Bin.
- Create a TwiML Bin with:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Connect>
<Stream url="wss://https://6487-2405-201-d061-7-109e-2475-3a67-5aeb.ngrok-free.app/ws" />
</Connect>
</Response>Replace YOUR_NGROK_HOST with your ngrok URL (e.g. abc123.ngrok-free.app).
Call your Twilio number. The agent will greet you and answer questions about the resume content in data/.
For production, use Postgres + pgvector for Knowledge:
-
Start Postgres with pgvector:
docker run -d --name syrin-pg -p 5434:5432 -e POSTGRES_PASSWORD=postgres pgvector/pgvector:pg16 -
Set in
examples/.env:DATABASE_URL=postgresql://postgres:postgres@localhost:5434/postgres -
Install:
uv sync --extra knowledge-postgres
The agent will use Postgres for the knowledge store.
| Need | Action |
|---|---|
| Different ElevenLabs voice | Set ELEVENLABS_VOICE_ID in .env |
| Deepgram key | Use DEEPGRAM_AUTH_TOKEN (mapped to DEEPGRAM_API_KEY in code) |
| Twilio number | Ensure it supports Voice; configure the TwiML Bin as above |