Marketing ops · Production

Nextdoor uses ML and PID-controlled budgets to send relevant notifications to neighbors

The problem

Nextdoor's legacy heuristic notification system sent updates to a random sample of eligible neighbors with no ability to understand why a particular notification might be relevant to a specific person.

First attempt

The first ML-based threshold estimation method used historical score distributions (via Q-digest) to predict notification cutoffs, but was sensitive to score tail noise, carried a bias from single-post multi-scoring, and could not recover quickly after pipeline outages.

Workflow diagram · grounded in source
1
New or trending post triggers pipeline
trigger
“New Post Notifications: Sent immediately after the post is created. Trending Post Notifications: Sent as the post generates conversation and becomes more popular/trending over time.”
2
Word embedding feature generation
ai_action
“More complex attributes like text are converted to embedding representations using a separate word embedding model that is trained on the Nextdoor ecosystem”
3
XGBoost relevance scoring
ai_action
“The model's score measures the propensity of click or tap and higher scores would mean that notifications for that post are of better quality and relevance to the particular neighbor”
4
Budget model sets weekly limits
ai_action
“We deployed a separate model that refreshes these budgets periodically based on a score that is aggregated from both positive signals like clicks/opens/taps and negative signals such as number of unsubscriptions”
5
PID controller updates thresholds
feedback_loop
“Once a day, a scheduled task is triggered to read the seven-day history of sent notifications and the latest budgets from redis for all neighbors and channels, where proportional, integral, and cumulative errors are computed and used to …”
6
Notification dispatched if threshold exceeded
output
“only send notifications for posts whose scores exceed the threshold while maximizing the threshold itself”
Reported outcome

For the same notification volume, the ML system produced up to a 40% increase in email click rates and a 23% increase in push tap rates compared to the legacy system, contributing to an 8% overall increase in daily active neighbors.

Reported metrics
Email click rate increase vs legacyup to 40%
Push tap rate increase vs legacy23%
Daily active neighbors increase8%
Reported stack
XGBoostredis
Source
https://engblog.nextdoor.com/nextdoor-notifications-how-we-use-ml-to-keep-neighbors-informed-57d8f707aab0
Read source ↗

Frequently asked questions

What did this team achieve with this AI workflow?

For the same notification volume, the ML system produced up to a 40% increase in email click rates and a 23% increase in push tap rates compared to the legacy system, contributing to an 8% overall increase in daily ac…

What tools did this team use?

XGBoost, redis.

What results were reported?

Email click rate increase vs legacy: up to 40%; Push tap rate increase vs legacy: 23%; Daily active neighbors increase: 8% (source-reported, not independently verified).

What failed first in this deployment?

The first ML-based threshold estimation method used historical score distributions (via Q-digest) to predict notification cutoffs, but was sensitive to score tail noise, carried a bias from single-post multi-scoring,…

How is this marketing ops AI workflow structured?

New or trending post triggers pipeline → Word embedding feature generation → XGBoost relevance scoring → Budget model sets weekly limits → PID controller updates thresholds → Notification dispatched if threshold exceeded.