Zillow's confusing keyword UX
Tags: design, ux, webdev, machinelearning
Published: 2021-10-27 02:20:14

[Zillow](https://zillow.com) has consistently been one of the most popular real estate marketplaces for several years, and for good reason — Zillow has dominated the space for buying and selling homes, as well as listing rentals and providing home loans for prospective buyers. While searching for apartments this summer (and as I'm planning to buy a home), I used Zillow almost exclusively to explore options and contact properties.

Almost [half of all people](https://www.nar.realtor/sites/default/files/documents/2019-profile-of-home-buyers-and-sellers-highlights-11-21-2019.pdf) searching for homes start by looking online before contacting a local realtor. Despite the amount of information that searchers have immediately at their disposal, finding a property is nothing like a product on Amazon. Homebuyers using Zillow and similar platforms spent, on average, ten weeks searching for homes; those who took traditional routes spent closer to four weeks.

This brings us to one of the key features in any search or commerce context: filtering. For being such a large name in the real estate space, it's hard to believe that the options for filtering are so primitive. Filtering is limited to specifying a price range, beds/baths, and other basic features, but almost nothing more. As you use the platform, you have to potentially spend hours trying to find properties that fit your criteria. While this increases engagement, you end up frustrating the user.

Intuitively, you would expect the "keywords" field to give you more control of what you're looking for. The ability to specify certain words or phrases is convenient, especially when you're looking for a certain style of home or other qualitative traits beyond the generics. With so much information attached to listings, it's surprising that there isn't a more developed way of finding this deeper engrained yet relevant information.

With this, let's explore the keywords field: what it gets right, how it can improve, and how other platforms can change the approach to home searching.

## What they get right

From the input, it's clear that they expect you to input keywords as a comma-delimited list. After you've finished and clicked "Done", your list of results decreases. This is expected behavior but doesn't offer much feedback. Zillow isn't alone in this behavior – another well-known marketplace, [Redfin](https://redfin.com), also has the same "keywords" field that functions similarly.

![Zillow's keywords field](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/54dkyjer9ursm580obsc.png)
_The keywords input is clear as it's comma-delimited and gives examples of what it's looking for._

Without trying several cases to see how the search performs, it's difficult to see how the keywords field works. After trying several sequences of keywords ("open", "open, modern", "open, modern, pool"), I found that it matches each keyword and works as a strict filter, rather than evaluating each keyword individually.

This works, and once you understand it, functions as expected. But it's kind of useless.

## Complex queries aren't possible

To start, I made a baseline search around Dallas, TX:

```text
Price Range: $400k-$1m
Home Type: Single-family, for sale
3+ beds, 2+ baths

Results: 5,964 listings
```

This yielded 5,964 listings which is a healthy number to filter down. At this point, _any_ home matching these criteria will be returned and doesn't take other features into account.

As mentioned before, I'm using a combination of phrases such as "open, modern, pool" to evaluate how filtering works with this field and what it potentially misses.

Here are the results of using different combinations of these phrases to illustrate how big of an impact the keywords field has on search results:

```text
Listings by keyword:

"Open": 2,749
"Pool": 1,273
"Open, Pool": 502
```

A single keyword significantly reduces the number of results and hopefully can filter out non-matching properties. However, this field is only useful if the information is available and it takes the _correct_ information into account.

## Wildly inaccurate

With a little bit more investigation on my baseline query, I decided I'd try to test the accuracy of the keywords field. As an example, I entered "3 bed" into the field on its own, which reduced the number of results to 162 listings. This seems somewhat promising, yet my first result was a four-bedroom house. Even if I'm allowing more than three bedrooms in my base query, properties matching the keyword should be returned first. What gives?

![Keywords field with "3 bed" specified](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0k0wx6d7lu4w9s2i8asg.png)
_Just supplying "3 bed" as the phrase for the keywords returns 162 listings, opposed to the original 5,964._

I looked throughout the listing to find any mention of "3 bed" or the number 3 at all. All I could find was the "3 CAR GARAGE" tag, which is not even contextually relevant.

![A listing found under the "3 bed" keyword, but there is no mention of 3 bed on the listing itself](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uxzquoypt4qkrhidlljq.png)
_With "3 bed" in the keywords input, this listing is returned — but the description has no mention of "3 beds" (only "3 car garage"), and the house itself has 4 bedrooms._

I looked to see what the sorting options were for results to see if there was a "Relevance" option. Nothing would change the results appropriately to what I wanted, despite being a very basic filter. The nearest option is "Homes for You", which is supposedly determined based on the homes you've viewed and your prior searches, but I don't want a feed — I want better search results. Yes, there is a dedicated filter functionality for choosing the number of beds you want to have returned, but this result speaks volumes on the limitations of filtering.

![A dropdown of the listing results sorting options, with "Homes for You" selected](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fid5i5qxop6hwdks5vhp.png)
_Zillow offers different types of sorting options, but nothing to do with search relevancy beyond "Homes for You"._

It's evident that when the filter does work, it seems to only search the description of the listing. This leaves out a lot of valuable information, especially if the description is incomplete, or if the relevant data is in some other property of the listing. Despite the number of attributes that can be filled out for a listing, these are very loosely compared against the keywords input.

For final verification of the attributes that are likely considered, I searched the "Parcel Number" that was found under a property listing in the keywords (Zillow gives an example of "MLS #" in their input, so I figured other IDs would be supported), and that listing could no longer be found. While I don't know how their data is modeled, I believe they could instead do a more exhaustive, comprehensive search over the listing with proper indexing.

## A better way of home searching

From testing, it seems that keywords are all evaluated as a strict filter, meaning that they are matched directly against. I didn't see support for fuzzy text searching (i.e. misspelling a keyword may return zero results), and the "3 bed" experiment showed that there is no contextual relevancy.

On Zillow and other platforms, it would be nice if you could input a more generic search term or phrase that allowed for more specificity. There may not be a huge market need for it, but it could potentially be a major help to people who want to find homes that are aligned with their needs, without having to reach out to realtors and agents. I haven't come across a real estate listing site that operates as a search engine – while it's a lot to ask, it would offer homebuyers a faster path to finding candidate homes that they might want.

Aside from working with a realtor, it can be tough to find exactly what you want without spending a lot of time looking at options. Even if you're casually browsing, it can be frustrating to have a massive list of potentially irrelevant options shown to you, especially if you know what you're looking for.

I briefly explored this issue earlier in the year while developing an MVP for a small-time project of mine called [Abode](https://abodelistings.com). The model for home searching has been consistent for years, but that doesn't necessarily mean it works well, especially as usage patterns evolve.

While drafting ideas on how to solve some of these problems, I came across an [article written by Zillow](https://www.zillow.com/tech/improve-quality-listing-text/) which explored improving results by putting the listing's description through an embedding model paired with existing recommender systems. The article states that Zillow uses different features of the listing "to build recommendations on similar homes, personalized search rankings, and other personalization systems for customers", so it seems that much of this recommendation is done behind the scenes, without the user being aware of it. It's a bit ironic that their behind-the-scenes systems seem to be well-thought-out, but their search functionality is so primitive – despite being the point of entry for users looking to find a home.

It seems like [Zillow is working on solutions](https://www.zillow.com/tech/personalized-search-refinements/) to solve this through their existing filters, which looks to be based on localized demand (on-site parking, allowing pets in complexes, etc.) – but still haven't offered a solution to more "fuzzy" suggestion. Using embeddings and making predictions based on provided phrases seems like a great solution to improving search quality and allowing for a more attractive search process. While I'm doubtful Zillow will solve this problem themselves, it could be an attractive offering if a new platform presents itself.

## But is it necessary?

Admittedly, it might not be solving all that large of a problem. After looking at various results on Google Trends, the most popular searches are things like "new construction houses for sale", "beach houses for sale", "manufacturer homes" — results which are easily returned through the dedicated filters. But, if a property listing is incomplete beyond the basic information and a description, information that is important to some people (such as the "view" or certain amenities) may be lost. People searching for apartments, for example, may input several criteria into the keywords field, but don't expect them all to be matched. Even if they do, too many keywords may return no results. Apps like [ApartmentList](https://www.apartmentlist.com/) have solved some of these issues, but it's less known than Zillow and other platforms.

Real estate listing sites and aggregators are difficult to do, in some respects. You can't always have perfect information, especially at scale — but there are ways of solving some of the limitations. The root of this problem seems to be the incompleteness of data. In the future, I would love to see a real estate platform use more advanced concepts, such as [RNNs](https://en.wikipedia.org/wiki/Recurrent_neural_network)/[CNNs](https://en.wikipedia.org/wiki/Convolutional_neural_network), to automatically extract features from photos to pre-fill or supplement listings. Building extra layers such as checking image quality, description quality, and providing feedback or predictions on how well a listing may perform may ultimately ease frustrations for a homebuyer.