HabitaAi
Find your next home, just by chatting. AI-powered property search across Kenya.
HabitaAi is a property search app for the Kenyan market that lets people look for a home the way they'd actually describe it out loud. Instead of filling in dropdowns for bedrooms, price bands and location, a house hunter types something like “two bedroom in Kilimani under 80k with parking and backup water” and gets back real listings that match. It serves both sides of the market, giving property managers a place to list and house hunters a way to search, though the app is built primarily around the person doing the looking.
Property search interfaces make people query like a database. You arrive knowing roughly what you want, then spend the next ten minutes translating that into checkboxes and sliders, and the things you actually care about, backup water, a landlord who allows pets, somewhere quiet but close to the matatu route, either aren't filterable or get buried in the description text where no filter can reach them. Kenyan listings are also inconsistently structured, so the same estate might be written five different ways across five agents. HabitaAi removes the translation step. The search handles the language people already use, and the retrieval layer does the work of matching it against messy real-world listing data.
I was the sole developer on HabitaAi, building it end to end. The Flutter app runs on Firebase, with Firestore holding the listings and Firebase Auth handling accounts. Retrieval runs on a separate service I deployed to Railway, where ChromaDB stores the listing embeddings and handles semantic search over them. Keeping those two in sync is the part that matters: a Cloud Function fires on listing writes in Firestore and calls a sync endpoint on the Railway service, so a newly posted property is searchable without a manual reindex. Queries hit that service, come back with the listings that actually match, and get passed to Claude to compose the answer. A good deal of the work went into the system prompt, getting the model to answer only from the retrieved listings and to handle the shorthand Kenyan renters actually use.


