Skip to content
NEXUS
All work
RetailAI integrationWeb development

Search that finishes the user's sentence

DTC fashion · UK

TL;DR

A DTC fashion brand was running keyword search with 31% null-result sessions and a 1.8% session-to-cart conversion. We rebuilt search as a hybrid BM25 + dense-vector retrieval pipeline with a thin LLM rewrite step, fronted by a conversational UI that suggests refinements when intent is ambiguous. Null results fell to 4%. Add-to-cart on search sessions rose 18%. Average time-to-first-product-view dropped 41%. No model fine-tuning; the gains came from retrieval honesty and a tighter index.

Outcome

+18% add-to-cart on search sessions; null results 31% → 4%.

01

The problem

31% of search sessions returned nothing. The product team had been told this meant they needed an LLM. What they needed first was a coherent index — colours and fabrics inconsistent across product types, half the synonyms missing, plurals treated as separate tokens. The LLM was real, but it came at the end.

02

The approach

Index hygiene first: synonym maps, fabric and colour ontologies, plural-folding. Then hybrid retrieval — BM25 + dense vectors from a generic embedding model — with no fine-tuning. A small LLM rewrite step turned natural-language queries into bullet-style refinement chips when results were thin. We shipped each component dark behind a feature flag and measured each before going live.

03

Screens

04

What changed

Add-to-cart on search

+18%

Null-result sessions

4%

from 31%

Time to first product view

-41%

Stack

  • Next.js 15
  • Postgres + pgvector
  • Voyage AI
  • Cloudflare Workers

Team

  • Andrea Ventura
  • Fabio Cerami

Next case

KIRN Coffee Co. — a Shopify rebuild that earned its weight

Search that finishes the user's sentence — NEXUS — NEXUS