
Project Overview
A small US online retailer had built up a catalog of 800 product listings over several years, most of which had thin, inconsistent descriptions copied from supplier sheets or written quickly without SEO or conversion in mind. The listings were hurting the business in two ways: low organic search rankings because the descriptions lacked the keyword depth and structure that search engines reward, and low conversion rates because visitors landing on product pages were not finding the information they needed to buy with confidence. Rewriting 800 listings manually would have taken the small team weeks of full-time work. We built a generative pipeline that completed all 800 in two days.
The Challenge
The catalog had not been built with consistency in mind. Different products had been listed by different people at different times, resulting in a wide variation in description length, format, tone, and the information included. Some SKUs had detailed specifications while others had two sentences of vague marketing language and nothing else.
- 800 SKUs with inconsistent description quality, length, and format across the catalog
- A significant portion of SKUs had minimal product attribute data, requiring enrichment before generation could produce reliable outputs
- No existing brand voice documentation for product copy specifically
- The team had no time or capacity to write or review 800 descriptions manually
Our Solution
We built a two-stage generative pipeline. The first stage handled data enrichment, filling attribute gaps using product category patterns and available supplier data. The second stage handled generation, producing on-brand SEO-optimized descriptions for every SKU using the enriched attributes and a product copy brand voice guide we developed with the client before generation began.
- Data Audit and Enrichment: We audited all 800 SKUs for attribute completeness, identified the gap categories, and built an enrichment step that inferred missing attributes from product category patterns and available supplier information.
- Brand Voice Guide for Product Copy: A focused session with the client to document tone, vocabulary, structural format, and SEO keyword priorities for their product category, encoded as a generation context used across all 800 SKUs.
- Batch Generation Pipeline: A scripted pipeline that processed all 800 SKUs in batches, generating descriptions and running a basic quality check on each output before flagging any that fell below length or completeness thresholds for manual review.
- Human Review Pass: A lightweight review interface where the client’s team worked through flagged outputs and approved the batch before publishing, taking approximately four hours for the full catalog review.
Technical Approach
The pipeline was built in Python, pulling SKU data from the client’s product database via CSV export, running the enrichment logic, and submitting generation requests to the OpenAI API in batches of 50. Outputs were written back to a structured spreadsheet with a review flag column for any SKU the quality checker had flagged. The client reviewed the full output in a single session before bulk importing the approved descriptions into their e-commerce platform.
Results & Impact
- All 800 product listings updated within two days, compared to an estimated six to eight weeks of manual writing
- Organic search traffic to product pages improved measurably within 60 days of the updated listings going live
- Conversion rate on updated listings improved compared to the original thin descriptions
- The data enrichment phase identified 140 SKUs with attribute gaps that had never been documented, which the client used to improve their supplier intake process going forward
- The client now has a documented brand voice guide for product copy that they use as the standard for any new listings added to the catalog
Lessons Learned
The data enrichment stage was the difference between a pipeline that worked and one that would have produced generic, low-quality outputs. The instinct is to jump straight to generation, but generation quality is a direct function of input quality. SKUs with thin attribute data produced thin descriptions regardless of how good the generation prompt was. Spending the time to enrich the data before generation produced a meaningfully higher quality output across the full catalog.