Skip to main content
← Monday's Prompts

Automate Product Descriptions 🚀

Turn Monday's 3 prompts into production-ready code

May 6, 2025
19 min read
🛒 E-commerce🐍 Python + TypeScript⚡ 0 → 10,000 products/day

The Problem

On Monday you tested the 3 prompts in ChatGPT. You saw how extract → optimize → variations works for one product. But here's the reality: your copywriter can write maybe 15 quality descriptions per day. That's $400/day in labor costs ($50/hour × 8 hours). For a catalog of 5,000 products, you're looking at 333 days and $133,000 just to write descriptions once. Then there's updates, seasonal changes, and new product launches. Plus the SEO inconsistencies when different writers use different keyword strategies.

8+ hours
Per day for 15-20 descriptions
60% inconsistent
SEO keyword usage across writers
Can't scale
Beyond 20 products/day per writer

See It Work

Watch the 3 prompts chain together automatically. This is what you'll build.

Watch It Work

See the AI automation in action

Live Demo • No Setup Required

The Code

Three levels: start simple, add reliability, then scale to production. Pick where you are.

Basic = Quick startProduction = Full featuresAdvanced = Custom + Scale

Simple API Calls

Good for: 0-100 products/day | Setup time: 20 minutes

Simple API Calls
Good for: 0-100 products/day | Setup time: 20 minutes
# Simple API Calls (0-100 products/day)
import openai
import json
import os
from typing import Dict, List

# Set your API key
openai.api_key = os.getenv('OPENAI_API_KEY')

def automate_product_descriptions(product_data: str) -> Dict:
    """Chain the 3 prompts: extract → optimize → generate variations"""
    
    # Step 1: Extract and structure product data
    extraction_prompt = f"""Extract product information and format as JSON.
Include: product_name, category, subcategory, attributes (color, sizes, material, features), 
Showing 15 of 98 lines

When to Level Up

1

Simple API Calls

0-100 products/day

  • Sequential processing
  • Basic error handling
  • Manual Shopify updates
  • No caching
  • ~30 seconds per product
Level Up
2

Add Reliability Layer

100-1,000 products/day

  • Retry logic with backoff
  • Structured logging
  • Shopify API integration
  • Basic caching (Redis)
  • ~10 seconds per product
  • Error recovery
Level Up
3

Framework Orchestration

1,000-5,000 products/day

  • Parallel batch processing
  • Smart caching (7-day TTL)
  • Celery distributed tasks
  • Automatic Shopify sync
  • ~3 seconds per product
  • Monitoring dashboard
Level Up
4

Multi-Agent System

5,000+ products/day

  • Specialized extraction agents
  • SEO optimization agents
  • Variation generation agents
  • Load balancing across regions
  • ~1 second per product
  • A/B testing for descriptions
  • Multi-language support

E-commerce Gotchas

Real challenges we've seen in production. Here's how to handle them.

Duplicate Content Penalties

Add variation parameters to prompts. Track keyword density across catalog. Use different templates for similar products.

Solution
# Add uniqueness to each variation
def generate_unique_description(product, catalog_history):
    # Check similar products
    similar = find_similar_products(product, catalog_history)
    
    # Extract used phrases
    used_phrases = extract_key_phrases(similar)
    
Showing 8 of 14 lines

SEO Keyword Stuffing

Set strict keyword density limits. Use semantic variations. Monitor readability scores.

Solution
# Validate keyword density
def validate_seo(description, target_keywords):
    words = description.lower().split()
    total_words = len(words)
    
    for keyword in target_keywords:
        count = description.lower().count(keyword.lower())
        density = count / total_words
Showing 8 of 14 lines

Price/Inventory Sync Issues

Never hardcode prices/inventory in descriptions. Use Shopify liquid variables. Validate before publishing.

Solution
# Use Shopify liquid variables
template = '''
<div class="product-description">
  {{ product.description }}
  <p class="price">{{ product.price | money }}</p>
  {% if product.available %}
    <p class="availability">In stock</p>
  {% else %}
Showing 8 of 15 lines

Multi-Language Consistency

Don't just translate - localize. Use native speakers for validation. Test cultural appropriateness.

Solution
# Localize, don't just translate
def generate_localized_description(product, language, locale):
    base_description = generate_description(product, 'en')
    
    localization_prompt = f'''Adapt this product description for {locale}:
    
    Original (English): {base_description}
    
Showing 8 of 24 lines

Shopify Rate Limits

Batch updates. Use GraphQL bulk operations. Implement smart queuing with rate limit awareness.

Solution
# Smart rate-limited updates
import time
from collections import deque

class ShopifyRateLimiter:
    def __init__(self, requests_per_second=2):
        self.rate = requests_per_second
        self.requests = deque()
Showing 8 of 38 lines

Adjust Your Numbers

500
105,000
5 min
1 min60 min
$50/hr
$15/hr$200/hr

❌ Manual Process

Time per product:5 min
Cost per product:$4.17
Daily volume:500 products
Daily:$2,083
Monthly:$45,833
Yearly:$550,000

✅ AI-Automated

Time per product:~2 sec
API cost:$0.02
Review (10%):$0.42
Daily:$218
Monthly:$4,803
Yearly:$57,640

You Save

0/day
90% cost reduction
Monthly Savings
$41,030
Yearly Savings
$492,360
💡 ROI payback: Typically 1-2 months for basic implementation
🛒

Want This Running in Your E-commerce Store?

We build custom e-commerce AI automation systems. From Shopify integration to multi-language catalogs, we handle the technical complexity so you can focus on selling.

©

2026 Randeep Bhatia. All Rights Reserved.

No part of this content may be reproduced, distributed, or transmitted in any form without prior written permission.