Ecommerce ops · Production

DoorDash uses LLMs and RAG to infer grocery preferences from restaurant order history

The problem

New DoorDash grocery and convenience customers had no shopping history, creating a cold-start problem where relevant item recommendations could not be generated at the start of their journey in a new vertical.

First attempt

A naive approach of feeding each customer's full restaurant order history and the entire grocery taxonomy directly to an LLM caused context bloat, hallucinations, and degraded output quality, and at DoorDash's scale could incur seven-figure costs per full run.

Workflow diagram · grounded in source
1
Order history tag aggregation
integration
“we leverage DoorDash's existing infrastructure in which each restaurant item is associated with descriptive dish tags, dietary tags, and cuisine tags. We represent historical orders using these tags and aggregate them by recency and freq…”
2
LLM-assisted tag cleaning
validation
“We built an LLM-assisted cleaning and filtering pass to standardize the input signal: - Schema and invariants: Reject conflicting dietary combinations. - Specificity filters: Drop low‑information combinations such as very coarse dish + b…”
3
Offline RAG tagset-to-taxonomy mapping
ai_action
“we perform a K-nearest neighbors (K-NN) search to retrieve its top roughly 200 nearest taxonomy candidates by cosine similarity. This critical step drastically reduces the LLM's input context, focusing it only on the most relevant possib…”
4
Personalized taxonomy scoring
ai_action
“We score the most indicative tagsets for each user based on the aggregated historical data. These scores, combined with the precomputed mappings, allow us to compose a personalized set of recommended grocery items”
5
Online retrieval and ranking
output
“we leverage DoorDash's existing multi-stage personalized retrieval strategy, two-tower embedding (TTE), and a personalized multi-task MMoE deep learning (MTML) based ranking strategy. These systems retrieve and rank recommended items in …”
6
LLM judge evaluation loop
feedback_loop
“To iterate rapidly on prompt quality and mapping accuracy, we used LLM‑as‑judge in all of the offline generation stages”
Reported outcome

After launching the first version of the LLM-powered carousel, DoorDash observed statistically significant improvements to order penetration for both convenience and grocery, while the hybrid pipeline achieved approximately 10,000 times cost savings per run compared to the naive approach.

Reported metrics
Cost savings vs naive approach per runapproximately 10,000 times per run
Naive approach cost per full runseven-figure costs per full run
Order penetration improvementstatistically significant improvements
Reported stack
LLMsRAGK-NNTTEMTML
Source
https://careersatdoordash.com/blog/doordash-llms-for-grocery-preferences-from-restaurant-orders/
Read source ↗

Frequently asked questions

What did this team achieve with this AI workflow?

After launching the first version of the LLM-powered carousel, DoorDash observed statistically significant improvements to order penetration for both convenience and grocery, while the hybrid pipeline achieved approxi…

What tools did this team use?

LLMs, RAG, K-NN, TTE, MTML.

What results were reported?

Cost savings vs naive approach per run: approximately 10,000 times per run; Naive approach cost per full run: seven-figure costs per full run; Order penetration improvement: statistically significant improvements (source-reported, not independently verified).

What failed first in this deployment?

A naive approach of feeding each customer's full restaurant order history and the entire grocery taxonomy directly to an LLM caused context bloat, hallucinations, and degraded output quality, and at DoorDash's scale c…

How is this ecommerce ops AI workflow structured?

Order history tag aggregation → LLM-assisted tag cleaning → Offline RAG tagset-to-taxonomy mapping → Personalized taxonomy scoring → Online retrieval and ranking → LLM judge evaluation loop.