A 24/7 AI receptionist that answers in under a second, books appointments, captures and qualifies leads, and hands off to humans with AI-drafted replies — that's what I shipped to production. Here's exactly how it's built.
The problem
Most small businesses (clinics, salons, law firms) lose leads when no one answers the phone. This agent never misses one: it books the slot, sends reminders, and only escalates when it genuinely should.
The stack
- Frontend/app: Next.js + React Native (one codebase, web + Android)
- Backend: NestJS
- Vector store: PostgreSQL + pgvector
- Realtime: Socket.io (streaming chat)
- LLM: Gemini
The RAG knowledge base
The agent is grounded in the business's own data — services, prices, FAQs, policies. Documents are auto-extracted, chunked, and embedded into pgvector. When a customer asks, we retrieve the relevant chunks and the model answers with citations. No hallucinations, no inventing prices.
// chunk → embed → query pipeline (simplified)
const chunks = await chunkDocument(pdfText)
const embeddings = await embed(chunks)
await insertVectors(tenantId, chunks, embeddings) // pgvector
// query time
const q = await embed(userQuestion)
const top = await similaritySearch(q, tenantId)
return llmAnswer(top, userQuestion)
Why it works
- Multi-tenant: every business gets its own isolated knowledge base
- Streaming: answers start in under a second — customers don't leave
- Human handoff: it writes the draft reply so staff with the context
- Embeddable widget: drops into any website or WhatsApp
Try it
The live agent is running on my portfolio — ask it anything about my work, pricing, or availability:
→ Live demo: chat.djaouad.tech
I also built a Smart PDF Workspace (ask-your-documents with citations) and an AI Customer Support Agent — all in production.
If you're building AI agents or need one for your business: hire an AI developer.
Top comments (0)