
Generative Shopping Copilot for a Specialty Home Goods E-tailer
Let's Connect
Overview
What we built
A specialty home-goods e-tailer with 85,000 SKUs was losing shoppers who could not put what they wanted into keywords. We built a shopping copilot that lets them describe it in plain language instead.
In plain terms: the store's search box only worked if you already knew the right words. Someone hunting for 'something to soften a dark hallway' got nothing useful, the category menus ran seven levels deep, and 68% of visits ended without the shopper opening a single product page. The catalogue held 85,000 items, yet the people most likely to buy, the ones browsing with an idea rather than a product name, were the ones the site served worst.
We built a copilot that lets customers say what they need in their own words and answers with three curated suggestions, each explained in plain English. Every answer is grounded in the live catalogue and stock data, so it never invents a product, and anything to do with orders is handed straight to a human. Conversations with the copilot led to a product page 41% of the time, against 12% for keyword search, sessions that used it converted at 2.6x the site average, and copilot-assisted orders came in 19% above the site's average value.
The Problem
Shoppers couldn't articulate searches
The e-tailer had built its range into a genuine strength: 85,000 SKUs covering nearly any home-goods need. The site's discovery tools never kept pace. Search demanded exact keywords, so a shopper had to know a product's name before the site could find it, and the alternative was a category tree running seven levels deep. Shoppers who arrived with a feeling rather than a term, softer light, a warmer room, had no path to the products that answered it.
The cost showed up in the session data: 68% of visits ended without a single product page view. A question like 'something to soften a dark hallway' returned no useful results, so the shopper behind it simply left. The team could see demand arriving and could see it leaving, but the search stack in between had no way to connect a vague need to a concrete product.
Vague queries were not an edge case, they were the everyday reality of shopping for a home. People buy home goods to change how a room feels, and few of them can translate that feeling into the vocabulary of a product database. Every one of those failed searches was a shopper the merchandising team never got to serve, and no amount of manual curation could cover the ways 85,000 products might answer an open-ended need.
Keyword-only search
The search box demanded exact product terms, so shoppers who described a need in their own words got no useful results and no route forward.
Seven-level menus
The category tree ran seven levels deep, forcing shoppers to already understand the catalogue's structure before they could browse their way to a product.
Sessions ending empty
68% of sessions closed without a single product page view, meaning most visits never progressed past the point where buying could even begin.
Vague needs unserved
Questions like 'something to soften a dark hallway' had nowhere to go: no part of the stack could translate an intention into products.
What it was costing them
Every failed search was a lost sale from a shopper who had already arrived with intent. With 68% of sessions ending before a product page view, much of the marketing spend that brought visitors to the site was wasted at the discovery step, and a catalogue of 85,000 carefully chosen SKUs stayed invisible to the very people it was assembled for.
The Solution
Catalogue-grounded generative copilot
We built a generative shopping copilot that meets shoppers where they actually are: mid-thought, describing a need. A customer types what they want in plain language and receives three curated suggestions, each with plain-English reasoning that explains why the product answers the brief. The conversation feels like talking to a well-informed shop assistant rather than operating a database.
Under the surface, discipline matters more than flair. The copilot retrieves candidates from a vector index built over the full catalogue, so meaning, not keyword overlap, decides what surfaces. Every answer is then grounded in live product and stock data before it reaches the shopper, which prevents the assistant from inventing items or recommending anything that cannot actually be bought. When a conversation turns to order issues, the copilot hands off to human support rather than guessing.
We treated the existing keyword search as a partner rather than a rival. Shoppers who know exactly what they want still get the direct route, while the copilot absorbs the vague, exploratory queries that used to end in zero results. That division of labour let the copilot concentrate on the conversations where it adds the most value.
Key decisions
Ground every answer in stock
Suggestions are checked against live product and stock data before display, so the copilot never invents an item or recommends something the shopper cannot buy.
Three suggestions, not thirty
Each reply offers three curated options with reasoning rather than a long results list, keeping the shopper choosing between good answers instead of scrolling.
Plain-English reasoning attached
Every suggestion explains why it fits the shopper's brief, which builds trust in the recommendation and helps the shopper refine the conversation.
Vector retrieval over the catalogue
Candidates come from a vector index of the full catalogue, so a query about softening a dark hallway can surface lamps, mirrors and textiles no keyword match would find.
Humans handle order issues
The copilot recommends products but never handles order problems; those conversations route straight to human support, keeping the assistant inside the job it does well.
Measurable Impact
What changed after launch
The copilot changed what a session looks like. 41% of copilot conversations ended in a product page visit, against 12% from keyword search, and sessions that used it converted at 2.6x the site average. Zero-result experiences fell by 57% as the assistant absorbed the vague queries that the search box used to reject.
The quality of the purchases changed too. Average order value on copilot-assisted purchases came in 19% above the site average, suggesting shoppers who are understood buy more confidently. Just as importantly, the grounding rules held: the assistant recommends only what exists and is in stock, and order issues still reach a human, so trust in the experience grew alongside its reach.
Vague queries
No useful results, shoppers simply left
Absorbed by the copilot, zero-result experiences down 57%
Product discovery
68% of sessions ended without a product view
41% of copilot conversations reached a product page
Session conversion
Keyword search led to product pages 12% of the time
Copilot sessions converted at 2.6x the site average
Order value
Order values sat at the site average
Copilot-assisted orders 19% above the site average
Headline results
41% of copilot conversations ended in a product-page visit, against 12% from keyword search
Sessions that used the copilot converted at 2.6x the site average
Zero-result search experiences reduced by 57% as the copilot absorbed vague queries
Average order value on copilot-assisted purchases came in 19% above the site average
Tech & Tools Used
What powered the build
Every tool below earned its place in this engagement. Here is the part each one played.
Next.js
Delivers the storefront experience the copilot lives inside, rendering the conversation panel and the suggested products so shoppers move from chat to product page without leaving the flow.
Node.js
Runs the backend conversation service, managing sessions, calling retrieval and generation, and joining live product and stock data onto every suggestion before it is shown.
OpenAI GPT-4o
Generates the conversational replies and the plain-English reasoning attached to each of the three suggestions, working only from the catalogue context retrieved for that query.
LangChain
Orchestrates the retrieval and generation chain, wiring the vector search, grounding checks and handoff logic into one pipeline the conversation service can call.
PostgreSQL (pgvector)
Holds the vector index of the full catalogue, so semantically similar products can be retrieved for queries that share no keywords with any product name.
Redis
Caches conversation state and frequently requested product and stock lookups, keeping replies quick even when the same popular items are being checked across many sessions.
Elasticsearch
Continues to power the keyword search path and supplies structured product filtering, so precise queries take the direct route while the copilot handles the vague ones.
AWS ECS
Runs the containerised copilot services in production, scaling the conversation and retrieval workloads with traffic across the shopping day.
Vercel AI SDK
Streams the copilot's replies into the storefront token by token, so shoppers see an answer forming immediately rather than waiting for a completed response.
Ready to Build your Home Goods Ecommerce Business with AI Copilots
Ask Byte
Ask Byte
Typically replies instantly
just Now
Hi! I'm OrganByte's assistant. How can I help you today?
AI-generated content may be incorrect

