Work / AI · Agents / RealtyAssistant

No. 25 · Live · Real Estate Lead Qualification

11 PM. Hindi-Punjabi mix.
Lead qualified anyway.

Real estate sales lose 70% of leads to follow-up failure. The leads call at 11 PM in code-mixed Indian English. Sales reps speak office English by day only. RealtyAssistant picks up on the first ring, handles Noida-Gurugram accents, and never drops a lead, even when the database breaks.

~₹500Per month VPS · all-in
70%Industry follow-up failure
0Leads lost on DB failure
2LLM tiers · Ollama + Gemini
1-clickDeploy · Windows or Linux

Act I · The Lost Leads

The lead is awake.
The agent is asleep.

11 PM When the leads call

The phone rings after dinner, after the kids, after the Zoom calls. The agent's office-hour answering service takes a name. By morning the lead has already toured a competitor's project.

Hindi+Punjabi+English In one sentence

"Bhai 3BHK chahiye Noida Extension mein, around 50 lakh, schools nearby, RERA approved, kal site visit ho sakta hai?" Most voice bots stop existing at sentence two.

70% Industry follow-up failure

The lead asks four questions. The CRM gets two. Sales calls back twice. The lead has moved on. Industry-standard outcome: lost.

SaaS bots Cost ₹40K+ per month

Most "AI receptionist" platforms price for US enterprises. The mid-market broker in Gurugram cannot afford the wrapper, let alone the AI.

Act II · The Promise

"I want a 3 BHK in Noida under 50 lakhs."
Understood instantly.

REC Call · 22:47 IST · Sector 150 inquiry Whisper STT · Hybrid LLM · session #14829
00:02

Lead

Hi, I am looking for a 3 BHK apartment in Noida Extension, around 50 lakhs.

3 BHKApartmentNoida Extension≤ ₹50L

00:09

RealtyAssistant

Got it. Three-BHK in Noida Extension under 50 lakhs. One quick check, RERA-approved projects only, or are open-plot too?

00:16

Lead

RERA approved, school nearby, possession within 1 year.

RERASchool proximityPossession ≤ 12mo

00:21

RealtyAssistant

Pulling live listings from realtyassistant.in. Six matches. I will text you the top three with site-visit slots for tomorrow. What time works?

00:28

Lead

11 baje free hoon, brother.

11:00 ISTSite visit confirmed

Act III · The Fail-Safe

When the database breaks,
RealtyAssistant does not.

A ₹500/month VPS will fail. The disk will fill. The LLM will time out. The hybrid architecture treats every dependency as untrusted. Leads are captured, no matter what.

Layer 01 · Voice

Whisper STT · Indian-tuned fuzzy match

Local Whisper engine for transcription. Fuzzy-matching for Indian place names: Noida, Greater Noida, Noida Extension, Sector 150 are all canonicalised to one entity.

Scenario: lead says "Noyda" → matched → entity captured

Layer 02 · Brain

Hybrid LLM · Ollama → Gemini

Local Ollama serves the common case. If the local model times out or hallucinates, Gemini takes over. If both fail, deterministic regex extraction still captures the structured fields.

Scenario: Ollama hangs → Gemini in 1.2s → lead saved

Layer 03 · Memory

Self-healing SQLite

Auto-detects database corruption, runs integrity check, repairs in place. If the disk is unwritable, falls back to an in-memory store and writes to log so leads can be replayed.

Scenario: disk full → in-memory + log → zero loss

Layer 04 · Surface

Live property scraper

Scrapes realtyassistant.in in real time so the listings shown to the lead are the listings still on market. Cached for 60 seconds, refreshed in the background.

Scenario: scraper down → cached pool served

Act IV · One-Click Deploy

Two scripts.
Either OS.
Production by lunch.

run_project.bat Windows · development

Checks Python 3.10+, creates venv, installs deps, frees port 20000, starts the server. Open localhost:20000/demo and start qualifying.

run_project.sh Ubuntu VPS · production

Installs system deps, sets up nginx reverse-proxy, registers as a systemd service, comes back up after reboot. Total cost: one ₹500/month VPS.

Act V · Proof

Production-ready. Indian-priced.

~₹500 per month, all-in

Single Ubuntu VPS. Nginx reverse-proxy. Local Ollama for the common case. Gemini for the hard cases. Cheaper than a single junior outbound call.

Indian-tuned fuzzy match

Place names like Noyda, NOIDA, Noida-Ext, Greater Noida West all normalise to canonical entities. Pricing tokens like "50 lakh" and "5 crore" parsed at extraction time.

Twilio + VAPI voice providers

Pluggable voice provider via VOICE_PROVIDER env. Switch from Twilio to VAPI without code changes. Webhook-driven, scales horizontally.

Admin lead dashboard at /leads

Every captured lead, every extracted entity, every transcript chunk. SQLite-backed, exportable. Sales sees what the AI saw.

The Stack

FastAPI in. Indian English out.

  • Python 3.10+
  • FastAPI 0.115
  • Whisper STT
  • Ollama LLM
  • Gemini fallback
  • SQLite self-heal
  • Twilio · VAPI
  • Nginx
  • systemd
  • Ubuntu VPS

If a ₹500 VPS can run a Hindi-English voice agent, your customer support can too.

I build voice-first products for India that survive bad disks, bad networks and code-mixed sentences. If your CX is leaking leads, talk to me.