Client under NDA · Grocery retail

A top-15 global grocer’s store that knows what each shopper came for

One of the world's 15 largest grocers, with 100,000+ products in its catalog. We built its recommendation system from scratch: personal picks, intent detection and a pipeline that turns a recipe into a full cart.

Under NDA: live product
Under NDA: mobile
Client
Under NDA
Industry
Grocery retail
Services
Recommendations, ML, Search
100K+

SKUs behind each shopper's shelf

Top-15

grocer in the world

3

ML systems: personal picks, intent, recipe to cart

1:1

a shelf ranked for each shopper, not for the average

The challenge

With 100,000+ SKUs, no shopper browses the whole catalog, and one shelf of bestsellers fits nobody. The same person shops differently for a weekly restock and a dinner for four. And a recipe lists ingredients, not products: every line still has to be found, sized and added by hand.

Our approach

We treated it as three problems with one shared picture of the shopper. Retrieval narrows 100K+ SKUs to the few that fit this person. An intent model reads what this visit is for and reshapes the picks. A recipe pipeline maps each ingredient to a real catalog product, so inspiration ends in a cart, not a shopping list.

Nobody wants 100,000 products. They want dinner, and the store should know which one.

What we did

01

Personal picks

Retrieval models learn from each shopper's baskets and browsing, then pull the best fits out of 100K+ SKUs. Two shoppers open the same store and see different shelves.

  • Shopper and product embeddings
  • Candidate retrieval across 100K+ SKUs
  • Ranking tuned to past baskets
  • Cold-start picks for new shoppers
Under NDA: Personal picks

02

Shopper intent

A classification model reads the signals of each visit and tells a weekly restock from a dinner for four. Suggestions, search and the shelf shift to match.

  • Intent model on session signals
  • Suggestions reshaped by intent
  • Search tuned to the purpose of the visit
Under NDA: Shopper intent

03

Recipe to cart

A pipeline reads a recipe, splits it into ingredients and amounts, and matches each one to a real product in the catalog. The shopper gets a full basket instead of a shopping list.

  • Ingredients and amounts parsed
  • Every ingredient matched to a SKU
  • Amounts fitted to real pack sizes
  • The whole recipe added in one tap
Under NDA: Recipe to cart
Under NDA: Recipe to cart, mobile

How it works

  1. 1

    Shopper signals

    Baskets, searches and clicks

  2. 2

    Intent model

    Reads the purpose of the visit

  3. 3

    Retrieval

    Finds candidates in 100K+ SKUs

  4. 4

    Ranking

    Sorts them per shopper and visit

  5. 5

    Recipe parser

    Reads ingredients and amounts

  6. 6

    SKU matching

    Picks a product and pack size

  7. 7

    Ready cart

    The whole recipe in one tap

Results

  1. 01Built from scratch and shipped to production for a top-15 global grocer
  2. 02A personal shelf for every shopper, from 100K+ SKUs
  3. 03Suggestions that follow why the shopper came, not only past baskets
  4. 04A recipe becomes a full cart: every ingredient matched to a real product

Built with

Retrieval
Two-tower model · ANN / HNSW search
Ranking
Collaborative and content-based filtering
ML
Python · PyTorch · scikit-learn · XGBoost

Services in this case

Next case · Metro Relocators

Website concept for an interstate mover, with the quote as a chat

Let's talk

Got a project? Let’s scope it in 30 minutes.

Tell us what you're building. You'll get a straight answer on timeline, team and approach on the first call.

Reply the same dayTalk to a partnerNo sales pitch