Customer Story
How Apartment List uses Chalk to power personalized apartment recommendations
Example screenshot of the Apartment List app

Client

Apartment List logo

Use Case

Recommendations

Industry

Marketplace

Cloud

GCP

Challenges

  • Delays in feature computation impacted search relevance for renters updating preferences
  • Manually defining and fetching features led to duplicated logic, inconsistencies, and slow deployment cycles.
  • Querying multiple sources introduced data latency and performance bottlenecks

Solutions

  • Enables immediate search updates for a more responsive UI
  • Delivers dynamic personalization for more relevant recommendations
  • Supports seamless integration of heterogeneous data sources through direct API calls

Overview

Apartment hunting is time-consuming and frustrating. Renters often sift through hundreds of listings, repeatedly adjusting price, location, and amenity filters, only to see results that don’t bring them closer to finding their next home.

Unlike traditional listing sites, Apartment List redefines this experience by leveraging machine learning (ML) to deliver a curated, responsive, and highly personalized search. By dynamically updating recommendations based on renters’ preferences and in-session behavior, Apartment List ensures that users see the most relevant listings in real time.

For Apartment List, delivering this level of real-time personalization requires integrating fresh data from SQL, streams, Python UDFs, Expressions, and APIs, all while maintaining sub 10ms response times. To ensure that renters instantly see up-to-date, high-quality listings, Apartment List turned to Chalk’s feature platform to compute in real time, accelerate ML deployment, eliminate data bottlenecks, and reduce latency across its search experience.

Manually managing feature data worked—until it didn’t. As we scaled to multiple models, the cracks started showing. We needed a centralized system to handle features seamlessly and power real-time inference.
hi
Matthew Phillips Software Engineer, Apartment List

The Challenge:

Finding an apartment is an interactive and personalized process. Renters continuously refine their budget, location preferences, and desired amenities—expecting search results to adjust instantly. If preferences fail to update in real time, users encounter stale or irrelevant listings, leading to frustration and drop-off.

Ensuring that search results remained dynamic and highly relevant at scale became an increasing challenge. Apartment List pulled data from multiple sources, including databases, APIs, and internal services, introducing latency issues and making debugging complex. Without a centralized platform, the ML team struggled to maintain efficiency as its infrastructure expanded.

Before implementing Chalk, Apartment List relied on custom-built feature-fetching pipelines, batch-processed data updates, and multiple disparate data sources to power its search personalization and ranking models. These manual processes created bottlenecks that slowed down search updates, particularly as the company scaled its ML-driven recommendations.

As Apartment List’s ML capabilities grew, the team encountered three major pain points:

  • Managing real-time feature computation - Search results needed to update instantly when renters modified their preferences, whether adjusting their budget or refining location criteria. However, without a real-time feature platform, updates were delayed, preventing users from seeing the most relevant listings.
  • Scaling feature engineering across multiple ML models - Apartment List initially operated with a single ML model running in a bespoke Django-based system. As their ML expanded to power search ranking, price flexing, and location-based recommendations, the infrastructure became unsustainable. Engineers manually defined and fetched features for each new model, leading to duplicated logic, inconsistencies, and slow deployment cycles.
  • Latency and performance bottlenecks - Search ranking models that required querying multiple sources—including transactional SQL, real-time API calls, and streaming—introduced delays. Without inference-time compute, users engaged less with listings, impacting the overall experience.

The Solution:

To overcome these challenges, Apartment List implemented Chalk’s feature platform, transforming how it delivers personalized, low-latency search recommendations. With Chalk, Apartment List:

  • Enables immediate search updates for a more responsive UI - ensuring search results adjust in real-time as renters modify their preferences.
  • Delivers dynamic personalization - ML models flex on price, location, and user behavior for more relevant recommendations.
  • Reduces latency for ranking - search rankings update in milliseconds, creating a faster, higher-performing experience.

Instant search updates: a more responsive UI

With Chalk, search updates happen instantly. Renters no longer need to refresh or restart their search—listings update in real-time as they refine their criteria and perform more activity. This eliminates lag, improves engagement, and makes the apartment search feel fluid and interactive.

Chalk’s performance directly affects the quality of our search and discovery models, which power everything from price flexibility to apartment ranking. The ability to call real-time features without dealing with stream complexity has been huge for us.
hi
Matt Weale Software Engineer, Apartment List

Dynamic personalization: adapting to renter behavior

Apartment List’s search experience doesn’t just show what users say they want—it adapts in real time to how they browse. With Chalk, ML models dynamically flex recommendations based on user behavior, making search results more intelligent and relevant.

  • Price Flexing: When a renter consistently interacts with listings above their stated budget, pricing models adjust price thresholds dynamically, surfacing more relevant options to reflect real user intent.
  • Geo-Spatial Flexing: Instead of static radius-based searches, Apartment List computes search relevance based on travel time, commute preferences, user mobility, and behavioral patterns, matching renters with listings that fit their lifestyles.

By leveraging inference-time behavior signals, Chalk enables Apartment List to compute flexible, intent-driven search results so that renters see apartments they’re interested in, not just the ones they initially filtered for—without additional manual input.

Chalk helped us move beyond static filters. Now, our search models adjust dynamically based on how renters actually interact with listings.
hi
Matthew Phillips Software Engineer, Apartment List

Low-latency feature retrieval: faster ranking and real-time adjustments

Powering a fast, ML-driven search experience requires more than real-time data ingestion—it requires a platform that can fetch, process, and deliver data in milliseconds. With Chalk, sub-10ms feature retrieval from multiple sources (SQL, APIs, and streaming data) ensures that search rankings remain dynamic and highly responsive.

For the engineering team, the benefits extend beyond performance. Building new ML models is now exponentially faster. Before Chalk, launching a new ML model took weeks due to manual feature pipeline development. Now, features are defined once and reused across multiple models, reducing deployment time from weeks to days.

Before Chalk, we had engineers writing custom feature-fetching services for every model—super time-consuming and brittle. Now, we can take a model from an endpoint to production in one to two days max, whereas before, it was a long, painful process.
hi
Matt Weale Software Engineer, Apartment List

Outcomes

Since implementing Chalk, Apartment List has significantly improved search personalization, system performance, and engineering efficiency:

Real-time search personalization
Chalk ensures search results adjust instantly when users change preferences
Low-latency feature retrieval
Sub-10ms response times keep ranking updates highly performant
Seamless API integration
Chalk integrates with Apartment List's APIs, supporting both batch and streaming data services, unlike event-driven-only solutions.
Strategic partnership
Chalk works closely with Apartment List to optimize performance, resolve edge cases, and enhance ML infrastructure with custom features
I was relatively new to the MLOps space when I joined Apartment List, but the Chalk team worked closely with us to optimize performance, solve edge cases, and even build features we needed. Chalk feels more like a partnership than a vendor relationship.
hi
Matt Weale Software Engineer, Apartment List

Looking Ahead

With Chalk as the foundation of its ML infrastructure, Apartment List is focused on further refining its AI-driven personalization engine.

The next phase includes experimenting and deploying new models, expanding real-time ranking optimizations as users engage with listings, incorporating even more dynamic user behavior insights, and further reducing latency to deliver a superior apartment search experience. By continuously iterating on its ML-powered recommendations, Apartment List is ensuring that renters find their perfect home faster, with a search experience that is intuitive, intelligent, and personal.

Build faster with Chalk
See what Chalk can do for your team.