Letting Renters Search Listings by Intent, Not Just Filters
How Keystone Properties made inconsistent listing data findable with hybrid semantic and structured search.
View project overview →Customer context
Keystone Properties manages residential listings across multiple markets, with listing descriptions written by different property managers and varying significantly in detail and consistency.
The challenge
Keystone's filter-based search required renters to know exactly which checkboxes corresponded to what they wanted, and listings with inconsistent or incomplete structured metadata were effectively invisible to filtered search — even when the listing description itself was a strong match for what a renter was looking for.
Requirements
- Search that tolerates inconsistent data
Results needed to surface good matches even when structured metadata was incomplete.
- Natural-language query support
Renters should be able to describe what they want instead of learning the filter taxonomy.
- Keep structured filters available
Renters who know exactly what they want still needed precise filtering, not just semantic search.
- Near-real-time index updates
New and changed listings needed to be searchable quickly, not after an overnight batch job.
Discovery
Auditing a sample of Keystone's listings showed the core problem clearly: many strong matches for common search intents (“quiet, near transit, pet-friendly”) existed in the free-text listing description but weren't captured in structured fields at all, because property managers described their units differently. No amount of tuning the existing filter system would have fixed that — the information genuinely wasn't in the structured data.
Solution
We built a hybrid search system: a vector index over listing descriptions handles semantic relevance, while structured filters continue to handle hard constraints like price range and bedroom count. Renters can search with a natural description, structured filters, or both together, with results merged and ranked across both signals.
Technical architecture
Listing descriptions and metadata are embedded into a vector index that updates as listings are added or changed, kept current through an event-driven pipeline tied to Keystone's listing management system rather than a scheduled batch job. Search queries run against both the vector index and structured filter criteria, with a ranking step that blends semantic relevance and filter match strength rather than treating them as separate, sequential steps.
Implementation approach
We built the semantic search layer as an addition alongside the existing filter system, not a replacement, and ran both in parallel during evaluation — comparing which listings each approach surfaced for the same real renter queries pulled from Keystone's search logs. This made the value of the semantic layer measurable before asking Keystone to commit to it as the primary search experience.
Key features
- Natural-language search
Renters describe what they want in plain language instead of selecting filters.
- Hybrid ranking
Semantic relevance combined with structured filters for hard constraints.
- Real-time index updates
New and changed listings are searchable within minutes.
- Fallback to traditional filters
Structured search remains available alongside semantic search.
Integrations
- Listing management system
Automatic re-indexing as listings are added, updated, or removed.
Challenges & decisions
We considered asking property managers to standardize their listing descriptions instead of building semantic search — cheaper technically, but unrealistic operationally across a large, distributed team of property managers with varying writing styles. Building search that tolerates real-world data inconsistency, rather than requiring the data to be cleaner, was the more durable solution.
Representative outcomes
Improved match relevance
Listings with inconsistent structured data became findable through semantic matching.
Fewer zero-result searches
Natural-language queries surface relevant listings that keyword filtering would miss.
Faster listing discovery
Renters find relevant options without needing to know the right filter combination.
No dependency on data cleanup
Search quality improved without requiring property managers to change how they write listings.
Technology stack
In their words
“The search team ran their new semantic approach side by side with our existing filters against real search logs before recommending we switch. It wasn't a sales pitch — it was evidence, and that's how they made the case for every decision on the project.”
James Turner
Product Manager, Keystone Properties
Related services
Interested in a similar outcome?
We're glad to walk through how this approach would translate to your situation.