The AI agent for real-estate offices that answers leads 24/7 — on your own stack. One office = one self-hosted deployment, your data in your own database.
A small, focused product for real-estate agencies (target: USA realtors, also EU/LATAM):
- 24/7 multichannel agent — Inbound leads arrive via WhatsApp, Email, or SMS (Twilio); the AI answers, qualifies, and helps book visits. (Voice is on the roadmap.)
- Lead capture + intent classification — Every conversation creates a
structured lead, auto-tagged
rent | buy | valuation, with zone, budget, property type, and urgency extracted. - Bilingual — Detects the lead's language and replies in kind (English / Spanish), configurable per deployment. The dashboard UI is also bilingual (English default + Spanish) with a language switcher on every page.
- Realtor dashboard — Monitor conversations, take over from the AI, compose replies (with AI-suggested drafts), and manage visits.
- Visit booking — Cal.com integration (slots → booking → confirmation), with a SIMULATED mode for dev.
- Listings + matching — Ingest MLS/IDX inventory via a RESO Web API feed,
browse it at
/properties, and auto-match listings to each lead's intent, zone, and budget — the agent even offers matching listings in the chat. 6b. Autonomous follow-ups — Post-visit nurture (24h / 72h / 7d) + visit reminders sent automatically, skipped on human takeover. Works 24/7. - Lead intelligence — Every lead gets a 0-100 priority score (🔥/🟡/⚪) from intent, budget, engagement, urgency, recency, and visits, so the realtor sees who to call first; plus a daily "hot leads" digest.
- Brandable — Set the agency name, agent persona, greeting, languages, and business hours from a Settings page; one-command installer for a new office.
- Data ownership — Lead conversations, names, budgets stay in the office's own database. Not commingled with anyone else's.
- One office = one stack — Each customer gets an isolated Docker Compose deployment (their own Postgres / Redis / backend / frontend). No multi-tenant blast radius.
- No per-seat cloud SaaS lock-in — The office runs it on a small VPS or box.
- LLM — Cloud-hosted Kimi 2.6 (primary) + MiniMax M2.7 (fallback),
both spoken over the
anthropic-messagesprotocol with inline failover. On-prem LLM (Ollama) is an optional swap, not required.
| Layer | Tech |
|---|---|
| Backend | FastAPI (Python 3.11) + SQLAlchemy async + Alembic |
| Database | Postgres 16 |
| Queue / cache | Redis 7 |
| LLM | Kimi 2.6 (kimi-for-coding) primary + MiniMax M2.7 fallback (cloud, anthropic protocol). Ollama optional. |
| Frontend | Next.js 14 (App Router) + TailwindCSS |
| Channels | WhatsApp Business Cloud API + Email (Resend) + SMS (Twilio). Voice planned. |
| Calendar | Cal.com (Google Calendar planned) |
| Listings | RESO Web API (OData) — the USA MLS/IDX standard |
| Container | Docker Compose |
git clone git@github.com:enderjnets/Eko-AI-RealEstate.git
cd Eko-AI-RealEstate
cp .env.example .env
# Edit .env — at minimum set KIMI_API_KEY + MINIMAX_API_KEY
# Channels default to SIMULATED (log instead of send) — no external accounts needed
docker compose up -d
docker compose exec backend alembic upgrade head
# Frontend: http://localhost:3004 · Backend: http://localhost:8011/docs
# Seed the public-demo dataset so the dashboard looks alive:
docker compose exec backend python scripts/seed_demo.py
# Simulate a WhatsApp inbound message end-to-end:
docker compose exec backend python scripts/simulate_inbound.py \
"+13055550111" "Hi, I'm looking for a 2-bed condo in Brickell under 850k"./scripts/install.shThe interactive installer checks prerequisites, generates a .env with strong
random secrets, builds + starts the stack, runs migrations, and sets the agency
branding. See docs/install.md for the full guide,
docs/setup-whatsapp.md /
docs/setup-calcom.md to enable the real channels, and
docs/setup-demo.md to expose a public demo URL.
See docs/roadmap.md for the phased plan.
| Phase | Status |
|---|---|
| 0. Bootstrap | ✅ done (v0.0.1) |
| 1. WhatsApp + LLM + lead capture + classification | ✅ done (v0.1.0) |
| 2. Realtor dashboard (Next.js) | ✅ done (v0.2.0) |
| 3. Multichannel + Email (Resend) + bilingual (USA pivot) | ✅ done (v0.3.0) |
| 4. Manual reply composer + AI reply suggestions | ✅ done (v0.4.0) |
| 5. Calendar booking (Cal.com) | ✅ done (v0.5.0) |
| 6. Single-customer installer + branding panel + public demo | ✅ done (v0.6.0) |
| 7. MLS / IDX listings (RESO) + per-lead matching | ✅ done (v0.7.0) |
| 8. Lead intelligence (scoring + prioritization + digest) | ✅ done (v0.8.0) |
| 9. SMS channel (Twilio) | ✅ done (v0.9.0) |
| 10. Autonomous follow-ups + in-conversation listing offers | ✅ done (v0.11.0) |
| 11. Pilot hardening — dashboard auth + analytics | ✅ done (v0.12.0) |
| 12. Voice agent (VAPI / Retell) — deferred until provider account ready | ⏳ |
This repo is the customer-facing product for the real-estate vertical, sold
under the Eko AI brand. It is intentionally separate from
Eko-AI-Business-Automation
(the Eko AI sales platform that we use to sell this product). Different
deployments, different stacks, different data lifecycles.
Proprietary. © 2026 Eko AI Automation. All rights reserved.