← Open sourceResearch and data

Handful

A handful of recipes, not a thousand: personalised recipe shortlisting with linear programming, tested offline on Food.com ratings.

Status
Live
Launched
Licence
MIT
Language
Python
Run it

One command, copied from the repo.

Install Handful: git clone https://github.com/rishsadh/handful && cd handful && python tasks.py setup

rishsadh/handful

What it does

Given what a Food.com user rated highly before a cutoff date, it chooses a shortlist of six recipes that maximises estimated relevance while keeping the shortlist spread across preparation-time bands. Then it measures, offline, whether that constraint costs anything in retrieval of the recipes the user went on to rate highly. Relevance comes from a frozen sentence-transformers encoder, all-MiniLM-L6-v2. Selection is a linear programme with at most three recipes per preparation-time band.

It uses secondary data only: no surveys, no recruited participants, no primary data collection. The Food.com dataset is not included, so each person downloads it themselves. Every run is recorded with its configuration, file hashes, seeds and git revision.

Research by Khushi Bag, implementation by Rish Sadh.

Why it exists

The motivation is choice overload: a handful of recipes instead of a thousand. The study asks a narrower question that secondary data can answer, whether a six-recipe shortlist spread across preparation-time bands loses any of the recipes a user later rated highly. Choice overload is the motivation, not an outcome the study observed, and it cannot claim reduced stress, better meal satisfaction or anything about consumers in general.

The final evaluation ran once, on 11 September 2026, after the configuration was frozen. It scored 530 users. The popularity baseline retrieved more of the recipes users went on to rate highly than the personalised method did: Recall@6 of 0.0085 against 0.0000, with a hit for 10 users against 1. The README reports that as a near-zero result for the proposed method, not evidence that it works.