E-commerce ·Confidential, US grocery delivery marketplace
A shopper names a dish and the ingredients land in the cart, matched against what that store actually stocks.
A grocery delivery marketplace losing sales to catalog navigation, where finding a product took effort and support answered the same questions about hours, locations and recipes every day.
Where this fits
Best for marketplaces and multi-brand retailers where shoppers know what they want to cook but not what to search for.
Eight partner brands running on one core. 6+ months in production.
- Multi-agent, one shared core
- Recipe to cart in one step
- Two languages
What we did
- Built a router agent delegating to search, cart, store and recipe agents
- Turned a named dish into ingredients matched against the store catalog
- Shipped white-label so each partner runs its brand off one codebase
- Streamed over SSE so the chat answers while it is still working
Result
A shopper asks for a dish and gets the ingredients matched to real catalog items in one step, or manages the cart without leaving the chat. Across eight live tenants the client reports roughly 4% higher average cart totals and about 15% fewer support tickets.
The hard part
The interesting failure is not the chat, it is the mapping from a recipe to one specific store's shelf. Unsalted butter is not a product, it is a category that resolves differently in every tenant's catalog, moves with stock, and has to degrade gracefully when only six of eight ingredients exist. At the same time a multi-agent system that answers in three seconds instead of one has already lost the shopper, so the work is constraining agents to the catalog and streaming partial results, not writing better prompts.
- Stack
- Node.jsNext.jsTypeScriptReactCopilotKitOpenRouterSSEPostgreSQLKubernetesCloudflare
- Focus
- Conversational CommerceMulti-Agent AIWhite-LabelRetail AI