Larlink AI Agents for Real Estate
Built an end-to-end AI agent platform that automates real estate lead qualification via WhatsApp, featuring a custom dashboard for seamless human handoff.
Overview
Larlink is a B2B SaaS for real estate agencies serving as a complete AI pipeline. It autonomously manages multi-modal WhatsApp conversations (text, audio, image) to qualify leads, fetches matching properties using semantic vector search, and delivers structured client profiles to human agents. I spearheaded the orchestration and frontend architecture alongside the team to explore AI agents in a high-friction sales environment.
Problem
Real estate agents waste many hours daily answering repetitive early-stage questions about budget, location, and timeline. This manual bottleneck delays response times and prevents agents from focusing on high-value closing negotiations.
Constraints
- The system had to operate entirely through WhatsApp without imposing any app downloads or friction on the buyer.
- Conversational AI responses needed to feel natural, intelligent, and context-aware.
- Human agents needed a way to monitor the AI and instantly take control of the conversation when a lead was hot.
Approach
We used Windmill for backend orchestration to centralize all logic, with Gemini AI handling natural language understanding and Supabase (pgvector) for semantic property matching. On the frontend, I built a custom React dashboard with a WhatsApp-like interface that connects to Windmill APIs, allowing real estate agents to monitor chats in real-time and effortlessly interrupt the AI to take over the conversation.
Key Decisions
Windmill as the central orchestrator
Windmill centralizes all the backend logic, scheduled tasks, and API endpoints. When a human agent replies via the dashboard, it calls a generic Windmill function that hits the Meta WhatsApp API. This orchestration was much more flexible and scalable than alternatives we tested, like n8n.
Gemini AI with explicit 'Tool Calling'
Instead of hardcoding what the bot should say next, we gave the AI 'tools'. Based on the conversation, the AI dynamically decides whether it should just reply naturally or trigger a 'search_property' tool to look up inventory. This makes the conversation feel organic rather than like a rigid phone tree.
Two-stage property matching (pgvector + AI filtering)
First, Supabase semantic search finds properties conceptually close to the user's request (e.g., matching 'quiet place' with 'low noise index'). Then, the AI agent performs a second pass to filter those results, selecting only the absolute best matches to present to the user.
Custom Dashboard for Human Handoff
We couldn't just automate everything; sales require a human touch. The custom dashboard lists all active AI and client interactions. If an agent hits 'reply', Windmill instantly pauses the AI and routes the human's message directly to the client's WhatsApp.
Tech Stack
- Windmill
- Gemini AI
- Supabase (pgvector)
- TypeScript
- WhatsApp API (Meta)
- React / Next.js
Result & Impact
The platform completely streamlines lead qualification by providing 24/7 instant responses based on actual inventory. When human agents step in using the custom dashboard, they already have a structured summary of the client's budget and preferences. Industry data shows that conversational AI can improve lead qualification conversion by up to 40%, and this architecture positions agencies to capture that value without losing the personal touch.
Learnings
- We initially tested n8n for orchestration, but ultimately chose Windmill. Windmill's code-first approach offered the flexibility and scalability required for complex AI state management.
- Semantic search (pgvector) combined with a final AI filtering pass yields better property recommendations than traditional keyword database queries.
- In B2B SaaS, the 'human handoff' mechanism is just as critical as the AI itself. Building a familiar, WhatsApp-like UI for the agents facilitated initial testing and validated the interface architecture.