How we shipped 500 product descriptions in a single day
A walkthrough of the exact AI workflow we used to ship 500 on-brand, SEO-tuned product descriptions for an apparel client in one day.
A client emailed us in late March. Their apparel catalog had grown to 1,400 SKUs. About 500 of those products were missing real descriptions — they had whatever the manufacturer shipped in the EDI feed, which read like a parts list. They’d planned a four-week sprint with two freelancers to fix it.
We did it in a day.
This isn’t a humble brag. It’s a process post. Every step is reproducible.
The prep (3 hours, the day before)
The unsexy truth: the AI part is the easy part. The leverage comes from prep.
1. Catalog export
We pulled the 500 products from Shopify Admin into a Google Sheet via Matrixify. Columns:
- SKU
- Product title
- Category (tee, shirt, dress, knit)
- Top 3 specs (fabric, fit, country of origin)
- Target audience (taken from the brand’s existing personas)
- Focus keyword (filled in by the SEO lead in 90 minutes using Ahrefs)
500 rows, 6 useful columns. Nothing more.
2. Brand voice prompt
The marketing director sent us 12 product descriptions she was proud of. We pulled the patterns:
- Sentences average 12 words. Never longer than 20.
- Always opens on a feeling or use case, never on fabric.
- Avoid: “premium,” “elevated,” “essential,” “wardrobe staple.”
- Use: contractions, dry humor, occasional second person.
That became a 9-line brand-voice prompt. We tested it on 5 products. The director approved 4 out of 5. Close enough to scale.
3. The product prompt template
Write a product description for an ecommerce store.
Brand voice: {paste 9-line voice block}
Product: {title}
Category: {category}
Top specs: {specs}
Audience: {audience}
Focus keyword: {keyword}
Requirements:
- 90-130 words
- First sentence: a use case or feeling, never specs
- Middle: 3 benefit bullets
- Last sentence: a soft CTA without exclamation marks
- Natural use of the focus keyword and one synonym
- Avoid: "premium", "elevated", "essential", "wardrobe staple"
This is the template AI sees on every row. Reusable, deterministic, debuggable.
The run (4 hours, the next morning)
4. n8n workflow
n8n is our orchestrator of choice for this kind of run. Three nodes:
- Read Sheet — read 500 rows.
- Call OpenAI — for each row, fill in the template and call GPT-4 with temperature 0.7.
- Write back — push the AI output into a new column in the same Sheet.
We rate-limited it to 3 requests per second to stay polite to the API and to avoid hitting our org limits. The full run took about 38 minutes including retries.
API cost: roughly $14. Yes, fourteen dollars for 500 descriptions.
5. Spot review
We didn’t review all 500. That defeats the point.
Instead, the marketing director read 30 random rows. Out of those:
- 27 were ship-ready.
- 2 needed minor edits (a fabric name corrected, a tone tweak).
- 1 was off-brand and got rewritten manually.
That’s a 90% pass rate on first run. Not perfect, not pretending to be — but production-grade for a catalog this size.
6. The category sweep
For categories with the strongest SEO opportunity (dresses, knits), we did a full review of every description. About 60 minutes per category. We caught and fixed 8 hallucinations: wrong fabric names, made-up countries of origin, two products described as “midi” that were “maxi.”
If we’d skipped this, the catalog would have shipped with 8 small errors. Cheap to catch with a focused review pass.
The push (1 hour, the same afternoon)
We exported the AI output column back to a Matrixify-compatible CSV. Push, 5-minute Shopify update, live.
Total elapsed time: roughly 8 hours, including the prep day.
What we tracked after
Two weeks in:
- Organic impressions on the affected URLs: +31% (Search Console).
- Average time on product page: +18% on the affected URLs.
- Conversion rate: roughly flat. We expected a slow lift; it shows up in months 2-3 once the indexing settles.
Three months in we’ll re-measure conversion. The traffic and engagement signals say the copy is working. Conversion impact takes longer for catalogs of this size.
What you’d do differently for your store
The pattern works across platforms. The variables:
- Shopify — Matrixify or the native CSV export work. Push back via the same.
- WooCommerce — Product Importer/Exporter plus the WooCommerce REST API. Same pattern, slightly different plumbing.
- BigCommerce — Native CSV export and bulk edit API.
- Magento — Bulk import via Magento Admin or third-party bulk tools.
What stays constant across all of them:
- Clean, structured input (Sheet with 6+ columns).
- A real brand-voice prompt with examples, not instructions.
- A template product prompt with hard requirements.
- A 30-row spot review, not a full review.
- A category sweep where SEO matters most.
Common questions we get when we share this story
“Did you use a fine-tuned model?” No. Fine-tuning is rarely worth it for product copy. The cost-to-quality ratio of a tight prompt with brand-voice examples beats fine-tuning unless you’re operating at six-figure SKU counts.
“Why GPT-4 and not Claude?” We tested both. Claude wrote slightly more natural copy on first pass. GPT-4 followed structural constraints (exact word counts, banned phrases) more reliably. For 500-row bulk runs we picked structure over taste; for hand-tuned copy we still prefer Claude. Both are fine.
“What if our catalog is bigger?” The pattern scales linearly. 5,000 rows is roughly 8 hours of API time on the same rate limit. The bottleneck shifts from API to review at that point. Plan a full week with two reviewers on a 5K run.
“What about variants?” For variant-heavy catalogs (apparel with sizes and colors) we generate one description at the parent level and reference variants by name in the copy. Avoid generating a separate description per SKU; that creates duplicate-content SEO risk.
“Can the freelancers we already use just do this?” Yes — and that’s often the better path. Hand the freelancer the brand-voice prompt and the template, and let them run the same workflow with ChatGPT Pro. It still ships faster than blank-page writing.
The leverage point most stores miss
Re-read the prep section. Three hours of structured prep made the four-hour AI run trivial. If you skip the prep — if you don’t pull the focus keyword for each product, if your specs are inconsistent, if your audience description is “everyone” — the AI run is going to spit out generic copy and you’ll blame the model.
The leverage isn’t AI. The leverage is the catalog data you give AI. Stores that have clean catalog metadata (PIM, structured specs, real audience definitions) ship AI workflows in days. Stores that don’t, struggle with AI no matter which tool they buy.
Fix the data layer first. The AI workflow becomes a 4-hour project after that.
Where to start on your catalog
If we did 500 descriptions in a day, what’s stopping you from doing yours? Probably the prep, not the AI. That’s the part we walk through with you in the audit — we look at your catalog data first, and only after that do we talk prompts and tools.