from osmoda research · real estate
12 new listings, 47 buyer matches, before you pour coffee.
haku reads the MLS while you sleep. RESO Web API v1.7, ICP scoring, signed buyer-agent agreement check (post-NAR-settlement), drafts that name the actual kitchen on Maple — pushed into Follow Up Boss / kvCORE / Sierra by 6am.
TL;DR
- • haku pulls overnight MLS deltas via RESO Web API v1.7, matches against buyer ICP profiles, and drafts invites by 6am
- • Replaces the Monday-morning scroll across Bright MLS, MRED, NorthstarMLS — typical 10-trans/yr agent loses ~7 hrs/week to triage [NAR 2024]
- • Post-Aug 2024 NAR rules require signed buyer-agent agreements before a tour — haku checks agreement-on-file before sending
- • SHA-256 hash-chained ledger logs every match + outreach for compliance audits (commission disclosure, fair-housing)
- • 28-minute run, $0.21 in LLM cost. Self-hosted on NixOS or managed cloud from $29/mo
1. The pain — Monday morning at 6am
The typical REALTOR closed 10 sides on $2.5M of volume in 2024 and netted a median $58,100. Most of that grind is unpaid: top producers spend 60–70% of their day on income work, strugglers spend 15–20%. Overnight MLS triage — scrolling Bright MLS, MRED, NorthstarMLS, mentally crosswalking 30+ active buyers against 12 new listings — is the single most repeatable, lowest-leverage chunk of that day, and it happens before any showings can be booked.
The legacy stack does not fix this. Top Producer, Follow Up Boss ($69–$1k+/mo), kvCORE/BoldTrail, and Sierra Interactive are CRMs with saved searches and drip nurtures — they alert the buyer, not the agent, and they don't draft a personal showing invite. RESO Web API v1.7 (now the default transport for Bright, CRMLS, MRED, MLS Grid) exposes Property/Member/Office resources via OData, but using it requires OAuth, a developer, and a place to put the data.
It's getting worse. Since August 17, 2024, NAR's settlement requires a written, signed buyer-agent agreement before a tour, with a specific compensation amount and source. Forgetting to confirm one before sending a showing invite is now a brokerage-risk event, not a paperwork annoyance.
Follow Up Boss
Team CRM with smart drips; great inbox, but doesn't write a personalized invite that names the listing's actual kitchen.
kvCORE / BoldTrail
Brokerage-bundled lead engine with IDX site; alerts the buyer first, leaves the agent reacting to "did you see this?" texts.
Sierra Interactive
Behavior-based lead nurture with Lead Engage SMS; still makes you do the listing-to-buyer crosswalk by hand each morning.
Top Producer
Classic CRM with saved MLS searches; surfaces matches but produces no draft outreach and no buyer-agreement-on-file check.
2. The workflow — sleep to send
- 1 · soot fires at 04:30 local; pulls last 8 hours of new/changed listings from Bright MLS / MRED via RESO Web API v1.7 (OAuth2, OData
$filteron ModificationTimestamp). - 2 · haku scores each listing against buyer ICPs in Postgres — beds, price band, school, commute polygon, must-haves vs. dealbreakers — using a tool-call against the embeddings table.
- 3 · naga checks each candidate buyer for a signed buyer-agent agreement on file (post-NAR-settlement gate); KEYD vault holds DocuSign tokens. No agreement → flag, no send.
- 4 · haku writes a 4-line showing invite per match, naming a real feature ("the south-facing kitchen you flagged on Maple"), inserts agent calendar slots from Google Calendar via MCP.
- 5 · tofu pushes drafts to Follow Up Boss / kvCORE via API as queued emails for one-tap send, and writes the SHA-256-ledgered audit row: who-was-matched-to-what-and-why.
3. Why it works
Auditable matching
RESO standardized the data; nobody standardized the morning workflow. haku is a named microservice with 92 typed tools — RESO fetch, embedding match, calendar slot, CRM write — chained by a deterministic graph, not a vibey "AI assistant." You see exactly which listing matched which buyer and why. Auditable for the broker and explainable to the client.
NAR settlement, in code
The NAR settlement made compliance a runtime concern, not a quarterly one. naga gates every outreach on a signed buyer-agreement-on-file; the hash-chained ledger is your defensible record if a fair-housing or commission-disclosure question lands. NixOS atomic rollback means a bad prompt update never bricks the morning run.
Keep your CRM
haku writes into Follow Up Boss / kvCORE / Sierra rather than replacing them. BYO LLM key, EU residency by default, self-host on a $29/mo VPS or run the managed tier — same code, same audit ledger, your data.
FAQ
Does this actually plug into my MLS, or is it scraping?
Native RESO Web API v1.7 (OAuth2 + OData) against your MLS's developer portal — Bright MLS, MRED, CRMLS, MLS Grid. No scraping, fully ToS-compliant.
Will it send before a buyer signs a representation agreement?
No. naga gates outreach on a signed agreement-on-file (DocuSign / Dotloop integration). The flag goes to your inbox instead, with the candidate match attached.
I'm on Follow Up Boss / kvCORE — do I have to switch?
No. haku writes drafts into your existing CRM via API. The CRM stays the system of record; the AI lives one layer below it.
Self-host haku on your own NixOS box, or start managed at $29/mo — buyer matches by 6am.
Spawn an MLS agent →