Eine Immobilien-Listing-Plattform mit KI bauen (statt ein Template zu mieten)
Kurzantwort
Die meisten Immobilien-Listing-Websites starten mit einem gemieteten Template — Placester, IDX Broker, ein WordPress-IDX-Plugin —, das Ihnen eine Homepage und eine Suchbox liefert, die an die Datenbank eines anderen angebunden ist. Bauen Sie stattdessen mit Greta, und Listings, Makler, Leads und MLS-Feed-Daten leben von Commit eins an in Ihrem eigenen Postgres-Schema, sodass die Plattform mit Ihrer Maklerfirma wächst, statt gegen sie zu arbeiten.
Warum brechen die meisten Listing-Websites, sobald ein zweiter MLS-Feed dazukommt?
Eine Single-Office-Website mit einer MLS-Mitgliedschaft und 400 Listings läuft mit fast jedem Template problemlos. Der Ärger beginnt bei Büro Nummer zwei. Sagen wir, Ihre Maklerfirma erschließt einen zweiten Markt und zieht nun Daten von einem anderen MLS-Board — einem, das ein Feld BathroomsTotalInteger nennt, während Ihr erster Feed es bathrooms_full nennt. Ein templatebasiertes IDX-Plugin hat keine echte Möglichkeit, das zu vereinheitlichen. Es wurde gebaut, um einen Feed anzuzeigen, nicht um zwei zu einem kohärenten Listing-Datensatz zu verschmelzen. Ich habe Maklerfirmen gesehen, die für jeden MLS-Feed parallele Suchseiten betreiben, nur um die internen Strukturen des Plugins nicht anfassen zu müssen — mit doppelten Listings, inkonsistenten Filtern und Maklern, die den Zahlen auf der Website nicht mehr trauen.
Individuelle Felder sind die andere Wand. Sobald jemand in Ihrem Büro "Wasserlage" als filterbares Kästchen möchte oder HOA-Gebührenbereiche durchsuchbar machen will, wird das bei einem gemieteten Template zu einem Support-Ticket und einer Warteschlange. Besitzen Sie das Schema selbst, ist es eine Migration, die Sie an einem Nachmittag selbst schreiben.
Wie muss das Datenmodell tatsächlich aussehen?
Weniger Tabellen, als man denkt. Eine Listing-Plattform braucht kein ausuferndes Schema — sie braucht die richtigen fünf, korrekt verknüpft, mit Indizes auf den Spalten, nach denen tatsächlich gefiltert wird: Preis, Schlafzimmer, Postleitzahl, Status.
Die Kern-Tabellen
- Listing enthält Adresse, Preis, Schlafzimmer, Badezimmer, Wohnfläche, Status (aktiv, ausstehend, verkauft), MLS-Nummer, Quell-Feed-ID und georeferenzierte Lat/Lng-Koordinaten.
- Agent enthält Profilinformationen, Lizenznummer, Maklerfirma, Kontakt-Routing-Präferenzen und einen Fremdschlüssel zurück zu jedem Listing, das dieser Makler besitzt.
- MediaAsset speichert Fotos, Grundrisse und Virtual-Tour-URLs, geordnet pro Listing — die Fotoreihenfolge beeinflusst die Klickrate stärker als fast jedes andere Feld auf der Seite.
- Lead erfasst Name, Kontaktinformationen, das auslösende Listing, die Quelle (Besichtigungstermin, Suche-speichern-Alarm, Kontaktformular) und den Zuweisungsstatus.
- SavedSearch speichert die Filterkriterien, die ein Besucher gespeichert hat, verknüpft mit einer E-Mail-Adresse, sodass Sie "3 neue Listings passen zu Ihrer Suche"-Digests versenden können, ohne ein separates CRM zu bauen.
Bekommen Sie diese fünf richtig hin, und fast alles andere — Suche, Dashboards, Alarme — ist eine Abfrage darauf, kein neues Subsystem.
Wie bindet man MLS-artige Feeds ein, ohne sich an einen Anbieter zu binden?
Die meisten US-Märkte sind von RETS auf die RESO Web API umgestiegen, ein standardisiertes Format, das Anbieter wie Bridge Interactive, Spark API und Trestle alle implementieren — theoretisch identisch, praktisch mit genug Abweichungen in der Feldbenennung, dass eine Normalisierungsschicht trotzdem nötig bleibt. Bauen Sie Ihre Listing-Tabelle nicht so, dass sie zur Rohantwort eines Anbieters passt. Bauen Sie sie so, dass sie zu Ihrem eigenen Schema passt, und schreiben Sie dann einen Sync-Job, der die Felder jedes Feeds darauf abbildet.
Dieser Sync-Job ist der unglamouröse Teil, den niemand ins Demo-Video packt, und er entscheidet auch darüber, ob Ihre Plattform eine MLS-Anbieter-Migration übersteht. Ein Cron-Job oder eine Supabase Edge Function nach Zeitplan zieht alle 15 Minuten neue und aktualisierte Datensätze, bildet sie auf Ihr Schema ab, geokodiert neue Adressen und markiert alles, was vom Markt genommen wurde, damit es aus der Suche verschwindet, statt als toter Link herumzuliegen. Bauen Sie das als entkoppelte Ingestion-Schicht, und der spätere Wechsel des MLS-Anbieters kostet Sie eine Mapping-Datei. Kein Rewrite.
Wo sollte Lead-Erfassung auf einer Listing-Seite tatsächlich sitzen?
Nicht in einem Popup, das 30 Sekunden nach dem Laden der Seite auftaucht. Dieses Muster ist tot, und wer je einen A/B-Test darauf gefahren hat, weiß, dass es schlechter konvertiert als gar nichts zu tun. Funktionierende Lead-Erfassung ist kontextbezogen: ein "Besichtigung vereinbaren"-Button neben dem Preis, eine Makler-Karte mit einer Antwort-in-Minuten-SMS-Option und ein Suche-speichern-Prompt, der erscheint, nachdem jemand drei oder mehr Filter angewendet hat — denn das ist der Besucher, der tatsächlich auf Haussuche ist, nicht nur stöbert.
Routing zählt genauso viel wie das Formular. Ein Lead für ein 2-Millionen-Dollar-Listing sollte nicht sechs Stunden lang in einem generischen Posteingang liegen. Verdrahten Sie Formulareinreichungen direkt zum zuständigen Makler per Twilio-SMS oder transaktionaler E-Mail über Resend, mit einem Round-Robin-Fallback zur Lead-Warteschlange des Büros, falls der zuständige Makler nicht innerhalb von 15 Minuten reagiert. Das ist ein Workflow, kein Formular, und es ist der Unterschied zwischen einer Listing-Seite, die Geschäft generiert, und einer, die nur Bestand anzeigt.
Wie sieht es mit virtuellen Touren und kartenbasierter Suche aus?
Virtuelle Touren sind heute größtenteils ein Medienproblem, kein technisches. Ein Matterport- oder YouTube-Rundgang bettet sich genau wie ein Foto in den MediaAsset-Datensatz eines Listings ein, nur mit einer anderen Render-Komponente. Der Teil, den es sich lohnt, richtig zu machen, ist sicherzustellen, dass die Tour lazy geladen wird. Niemand braucht einen 3D-Scan, der Bandbreite auf einer Karte in einem Suchergebnis-Grid frisst.
Bei der Kartensuche entscheidet sich, ob eine Listing-Plattform aktuell wirkt oder wie 2014 stecken geblieben. Plotten Sie Listings auf Mapbox GL JS oder der Google Maps Platform, clustern Sie Marker, sobald mehrere Hundert Pins im sichtbaren Bereich sind, und lassen Sie Menschen einen Suchradius oder ein grobes Polygon um ein Viertel ziehen, statt nur nach Postleitzahl zu filtern. Wer drei Städte entlang einer Pendelstrecke vergleicht, denkt nicht in Postleitzahlen. Er denkt in einer Form auf einer Karte. Bauen Sie die Suche entsprechend.
Template-Builder vs. den Stack selbst besitzen
| Ansatz | Templatebasierte IDX/Placester-artige Website | Greta |
|---|---|---|
| Datenmodell | Fest an das Schema des Anbieters gebunden | Ihres — Postgres, frei erweiterbar |
| Zweiter MLS-Feed | Oft eine separate Website oder Plugin-Konflikt | Ein Sync-Job, gemappte Felder |
| Lead-Routing-Logik | Einfaches Kontaktformular an einen geteilten Posteingang | Individuelle Regeln: SMS, Round-Robin, CRM-Webhook |
| Code-Ownership | Gemietet; nirgendwohin exportierbar | Ihres, in Ihrem eigenen GitHub-Repo |
| Individuelle Felder | Ein Support-Ticket und eine Wartezeit | Eine Schema-Migration, die Sie selbst schreiben |
FAQ
Brauche ich eine MLS-Datenlizenz, bevor ich einen Feed einbinden kann? Ja. MLS-Zugang erfordert eine kostenpflichtige Datenlizenz über Ihr lokales Board oder einen Syndicator wie Bridge Interactive oder Spark API. Greta umgeht das nicht — es ist die Ingestion-Schicht, sobald Sie den Zugang bereits haben.
Kann ich Listings direkt von Zillow oder Realtor.com beziehen? Nein. Das sind keine offenen Feeds, und sie zu scrapen verstößt gegen deren Nutzungsbedingungen. Nutzen Sie den MLS-Feed, für den Sie lizenziert sind, oder einen Syndizierungspartner, der ihn legal weiterverteilt.
Wie lange dauert der Bau einer ersten Version? Eine Single-Market-Listing-Website mit Suche, Listing-Detailseiten, einem Makler-Dashboard und grundlegender Lead-Erfassung ist ein realistisches Ein-bis-Zwei-Wochen-Projekt. MLS-Feed-Normalisierung und Multi-Office-Support kosten zusätzliche Zeit, je nachdem, wie viele Feldabweichungen zu vereinheitlichen sind.
Kann ein Makler, der nicht programmieren kann, nach dem Launch Listings verwalten? Ja. Makler arbeiten über das Dashboard, nicht über die Codebasis. Das Datenmodell und die Feed-Synchronisierung richten Sie einmal ein; die tägliche Bearbeitung von Listings und die Lead-Nachverfolgung berühren nie Code.
Ersetzt das die MLS-Mitgliedschaft meiner Maklerfirma? Nein. Sie brauchen weiterhin die MLS-Beziehung und -Lizenz. Dies ist die Plattform, die diesen Feed konsumiert und in eine Website verwandelt, die Ihnen tatsächlich gehört, statt in ein gemietetes Template, das auf dieselben Daten zeigt.
Fazit
Ein Template verschafft Ihnen schnell eine Homepage. Es verschafft Ihnen keine Plattform, die über ein Büro, einen Feed oder einen Makler-Posteingang hinaus skaliert, weil die Daten nie Ihre eigenen waren, um sie zu erweitern. Bauen Sie zuerst das Schema, verdrahten Sie den Feed damit, und platzieren Sie die Lead-Erfassung dort, wo der Käufer auf der Seite tatsächlich ist — nicht in einem Popup, das er schließt, bevor er es liest.
Beginnen Sie noch heute mit dem Bau Ihrer Immobilien-Plattform mit Greta.
