SEO Services
Real Estate Industry / Technical Guide
Build a Fair-Housing-Compliant AI Lead Qualification System for Real Estate Step-by-Step Guide
A complete walkthrough for building an n8n + Claude workflow that ingests Zillow / Realtor.com / website / WhatsApp leads, extracts BANT signals, matches MLS inventory, and routes to the right agent in 18 seconds — without ever touching protected-class data.
Lead source (Zillow / web / WhatsApp)
Claude — extract intent
MLS match (RESO API)
BANT score → A / B / C
Agent route (round-robin)
Auto-engage (drip + showings)
CRM sync (Follow Up Boss)
1. The Problem — Why Lead Response Time Decides Who Wins the Deal
The NAR’s own data is brutal: 35-50% of real estate leads go to the agent who responds first, and the first-five-minute response window converts 21x better than 30+ minutes. The average brokerage responds in 47 minutes. The math is not subtle.
Real numbers from a 22-agent residential brokerage
| Inbound leads / month (peak season) | ~3,800 |
| Median first-response time | 47 min |
| Leads contacted within 5 min | 11% |
| Tire-kicker rate (no budget / no timeline) | 58% |
| ISA (inside sales agent) salary spend | $140K/yr |
The brokerage was burning $140K/year on 1.5 ISAs to manually qualify leads — and they still missed the 5-minute window 89% of the time. Worse, ISAs trained on “sales scripts” routinely brushed against Fair Housing landmines without realizing it (asking “what kind of neighborhood are you looking for?” is a phrase the DOJ has specifically flagged in steering investigations).
What “qualification” means here
Qualification is not closing the deal. It’s a four-step funnel that ends with a warm handoff to a licensed agent:
- Capture & respond in <60 sec — every channel, every hour, every time zone.
- Extract intent without bias — budget, timeline, financing, must-haves. Never demographics, never neighborhood “feel”.
- Score BANT & tier — A (showing-ready), B (nurture), C (long-horizon).
- Route to the right human — geographic farm, specialty, current workload, license status.
2. System Architecture
Six components, each replaceable. Built on self-hosted n8n so a brokerage’s broker-of-record can audit every byte that touches a consumer’s PII — a hard requirement under most state real estate licensing laws.
The stack
Cost estimate (4,000 leads/month)
| Claude Haiku (4k extractions + scoring, ~800 tok in / 200 tok out) | ~$14 |
| Claude Sonnet (1,800 nurture replies, ~1,400 tok in / 350 tok out) | ~$48 |
| VM (n8n + Postgres, DigitalOcean) | ~$28 |
| Twilio SMS + Calendly + monitoring | ~$110 |
| RESO API access (varies — Trestle / Bridge) | ~$200 |
| Total / month | ~$400 |
$400/month vs. $140K/year in ISA salary. The architecture pays for itself in the first 12 hours of operation.
Lead Source Aggregation
Real estate leads come from at least five sources, each with its own format, latency, and consent posture. The first job is a single normalized lead schema landing in n8n inside 60 seconds of the consumer hitting submit.
Source matrix
- Zillow Premier Agent — webhook to n8n endpoint, JSON payload, signed with HMAC-SHA256 in
X-Zillow-Signature. - Realtor.com Connections — webhook + email-based fallback. Always validate sender DKIM.
- Brokerage website (kvCORE / Chime / BoomTown) — native webhook on form submit.
- Facebook / Instagram Lead Ads — Meta Webhooks v18+ with
leadgenfield subscription. - WhatsApp Business — Cloud API webhook, message events filtered by
type=text.
Normalized lead schema
tcpa_consent to false unless the source explicitly passes it. Email and voice are safe; SMS is not.Buyer Intent Extraction (with Fair Housing Guardrails)
Claude Haiku reads the free-text inquiry and returns a structured JSON of buyer criteria. The prompt is engineered with explicit refusal patterns for protected-class signals — this is the most important component in the whole system.
Extraction system prompt (Fair Housing hardened)
n8n HTTP Request node
must_haves/nice_to_haves, strip them and log the incident. Defense in depth — never trust the model alone with regulated content.MLS Property Match
With objective criteria in hand, query the RESO Web API for matching active listings. The query uses only the fields extracted in Step 2 — no demographic enrichment, no “similar buyers also looked at” graph. The same disciplined data-flow pattern shows up in our property management automation work.
RESO OData query
What you store, what you don’t
- Store: ListingKey, address, price, beds/baths, sqft, ZIP, list date.
- Never store as match criteria: any demographic data, even if the MLS exposes
SchoolDistrictratings or “neighborhood walkability” flags. These can become Fair Housing exhibits in litigation.
BANT Scoring → Tier A / B / C
BANT (Budget, Authority, Need, Timeline) is the classic B2B framework adapted to residential real estate. Claude scores each dimension 0-3 using ONLY the objective criteria from Step 2 plus optional context from MLS history.
Scoring rubric
| Dimension | 3 (Strong) | 1 (Weak) |
|---|---|---|
| Budget | Pre-approval mentioned + range stated | “Just looking”, no range |
| Authority | Sole decision OR co-buyer copied | “My parents will decide” |
| Need | Lease ending, relocation, life event | No urgency cue |
| Timeline | Now / 30 days | 12+ months |
Tier mapping: A = total ≥ 9 (showing-ready, immediate agent assignment). B = 5-8 (drip nurture, follow-up in 7 days). C = ≤ 4 (long-horizon nurture, monthly market update only).
Persistence — lead_score table
fh_flag_count on a lead is a yellow flag — review the prompt. A high count across many leads is a red flag — your extraction prompt is too permissive. Track this metric weekly.Agent Routing
An n8n routing function picks the agent based on geography (which farm covers the ZIP), specialty (luxury / first-time / investor), current workload, and availability (PTO, license status, vacation). Round-robin within the eligible pool prevents one rainmaker from hoarding leads.
Routing query
Forbidden routing signals
The routing logic must not consider:
- Consumer surname (proxy for national origin)
- Consumer language preference (proxy for national origin) — UNLESS it’s matching to an agent who explicitly speaks that language and the consumer requested it
- Property neighborhood demographic data
- Any agent attribute used as a “match” to consumer demographics
RESPA also forbids routing logic that creates kickback patterns. If your brokerage has affiliated services (lender, title), routing leads to agents who push those services more aggressively can trigger RESPA Section 8 violations. Route on workload and farm only.
Auto-Engage Layer
For Tier A leads, the system fires within 60 seconds: personalized email with the top 5 MLS matches, a Calendly link for the agent’s showing slots, a neighborhood data sheet (objective: median price, days on market, school NAMES). For Tier B/C, a measured drip via Follow Up Boss or kvCORE. SMS is gated by TCPA consent.
First-touch payload (Sonnet)
TCPA-compliant SMS sender
Common Failures & Fixes
Three failure modes show up in every real estate AI deployment. Plan for them on day one, not after the first complaint to your state real estate commission.
Failure 1: Steering by proxy
Symptom: Consumer types “we want a family-friendly neighborhood with good schools.” Claude obediently filters MLS results to ZIPs with high-rated schools. Those ZIPs correlate with one demographic. The Justice Department calls this digital steering.
Fix: The Step 2 prompt must drop those phrases entirely. The Step 3 query must use only ZIPs the consumer typed by name. Add a Code node that compares “criteria as captured” vs. “criteria after FH strip” and flags the diff for review.
Failure 2: Tire-kicker classified as Tier A
Symptom: A casual browser fills a Zillow form (“I love this house!”) and BANT misreads urgency, agent calls them, no pre-approval, wasted hour.
Fix: Tier A requires both Budget ≥ 2 AND Timeline ≥ 2. Without an explicit financing signal (pre-approval mentioned, cash stated) or urgent timeline, the lead drops to B regardless of total. Tune the rubric monthly using the lead_score table joined to actual showing-conversion data.
Failure 3: SMS to a non-consenting consumer
Symptom: A Realtor.com lead arrives with a phone but no TCPA consent flag. The drip workflow assumes consent, fires SMS, $1,500 statutory damages and a TCPA litigation letter.
Fix: The TCPA gate from Step 6. Default tcpa_consent=false at ingestion, and the only way it becomes true is the consumer separately opting in via a documented form (with the consent URL stored in consent_source_url). For first-touch, use email until consent arrives.
Compliance: Fair Housing, NAR Code of Ethics, TCPA, RESPA
Real estate is one of the most heavily regulated consumer-facing industries in the US. An AI workflow that doesn’t account for the full compliance regime is not an asset — it’s a liability multiplier. Every brokerage we deploy this for goes through a Fair Housing audit before a single line of code goes live.
Fair Housing Act (the dominant constraint)
The FHA protects seven federal classes: race, color, religion, sex (including sexual orientation and gender identity per HUD’s 2021 directive), familial status, national origin, disability. Many states add: source of income (Section 8 vouchers), age, marital status, veteran status. The AI system must not filter, score, route, or match on any of these — directly OR by proxy.
Forbidden Claude prompt patterns
These are the prompts and instructions you must NEVER include — they create FHA exposure even if the model “behaves”:
- “Suggest neighborhoods that match the buyer’s lifestyle“
- “Find areas similar to [demographic-correlated location]”
- “Score the quality or desirability of a neighborhood”
- “Identify family-friendly, safe, up-and-coming, or diverse areas”
- “Match the buyer to an agent who understands their background“
- “Use the buyer’s name to infer language preference”
- “Recommend properties based on school ratings” (use district NAMES only if consumer asked)
- “Filter out areas with high rental concentration” (proxy for source-of-income)
NAR Code of Ethics — Articles 10 & 12
Article 10 is FHA at REALTOR® scale (broader than federal). Article 12 mandates truthful advertising — every AI-generated message must include the agent’s license number, brokerage name, and the brokerage’s mandated equal-opportunity disclosure. Bake the disclosure into the Sonnet prompt as a non-removable footer.
TCPA & CAN-SPAM
SMS requires prior express written consent with a clear disclosure of message frequency and that consent is not a condition of purchase. CAN-SPAM requires every email to include a working unsubscribe link, the brokerage physical address, and to honor opt-outs within 10 business days.
RESPA Section 8
Routing logic that systematically funnels leads to agents who push affiliated lender/title services in exchange for any consideration is a kickback. Route on objective workload and geography only.
Measured Results — 12 Months In
Numbers from a real implementation at a 22-agent residential brokerage in Austin TX after a full 12-month operating cycle.
73% of qualified Tier-A leads booked a showing within 48 hours — versus 19% before automation. The Fair Housing flag-and-strip layer triggered on 2.4% of inbound inquiries (mostly “good schools” / “safe neighborhood” phrases), all properly handled without surfacing in the agent-facing data.
Implementation Timeline & Cost
- Fair Housing audit + legal review: 8–12 hrs
- Lead source webhook plumbing: 10–14 hrs
- RESO API onboarding (Trestle/Bridge): 14–20 hrs
- Claude prompts + FH guardrail testing: 20–28 hrs
- CRM bidirectional sync (FUB/kvCORE): 12–18 hrs
- TCPA consent flow + Twilio: 8–12 hrs
- Agent training + shadow-mode validation: 8–16 hrs
- Week 1: Fair Housing audit + lead source inventory
- Week 2: MLS API integration + Claude FH-hardened prompts
- Week 3: CRM routing + TCPA consent flow
- Week 4: Agent training + go-live in shadow mode first
- Includes: 90-day SLA, prompt tuning, FH-flag monthly audit
- Ongoing: ~$400/mo API + MLS + hosting
FAQ
fh_flag_count column to catch prompt drift before regulators do. For broader compliance context, see our parent real estate AI automation service.investor_intl specialty. Note: language detection MUST come from the message body, never from the consumer’s name or phone country code — both are protected-class proxies.lead_score table — once you have 90 days of data, join it to actual showing-conversion outcomes and tune the rubric monthly. Misclassifications drop from ~12% in week one to under 4% by month three. The cost of an over-classified lead is one agent phone call; the cost of an under-classified hot lead is a lost deal — the rubric is intentionally tuned toward the cheaper failure.Want this built for your brokerage?
SEOKRU deploys this exact system in 4 weeks. We handle the Fair Housing audit, MLS onboarding, prompt engineering, TCPA consent plumbing, agent training, and 90 days of accuracy + compliance monitoring. You keep ownership of every component and every prompt.
Talk to a real estate automation engineer