Imagine this: your competitor launches 200 new products on Monday morning. By Wednesday, you've manually written descriptions for maybe 40 of them, hired a photographer to shoot variations, and you're still three weeks behind. Meanwhile, your inventory manager is asking why your catalogue isn't updated and your content team is burning out writing the same product features in different ways. This isn't a hypothetical problem. E-commerce teams routinely spend hours recreating what competitors have already published. Product descriptions follow predictable patterns: dimensions, materials, use cases, care instructions. Photography needs follow templates: lifestyle shots, detail views, colour variations. You're not doing creative work; you're doing repetitive data transformation and visual adaptation. The solution isn't to hire more people. It's to build a workflow that scrapes competitor data, generates fresh descriptions using AI, creates matching product imagery, and publishes everything back to your catalogue with minimal human intervention. This post walks through exactly how to do that. For more on this, see Product photography studio with AI model training and mar.... For more on this, see E-commerce product photography variation suite from singl....
The Automated Workflow
You'll need to orchestrate four key steps: data collection, description generation, image creation, and catalogue upload. We'll use n8n as the orchestration layer because it handles webhooks well, supports complex branching, and doesn't require deployment infrastructure.
Step 1: Trigger and Data Collection
Start with a webhook that fires when you manually feed competitor URLs into a simple form, or set it to run on a schedule (say, every Monday morning). You could also trigger it via email or Slack command.
Webhook trigger configuration:
POST /webhook/competitor-scrape
Content-Type: application/json { "competitor_url": "https://competitor.com/products", "product_ids": ["SKU001", "SKU002"], "scrape_depth": "full"
}
Use a standard HTTP node in n8n to call a web scraping service or your own scraper. If you're building a simple version, tools like ScrapingBee or Bright Data work well. The output should be structured JSON containing product name, existing description, current images, and price.
json
{ "products": [ { "competitor_sku": "ABC123", "name": "Wireless Bluetooth Speaker", "description": "High-quality sound. Water resistant. 12-hour battery.", "images": [ "https://competitor.com/img/speaker-1.jpg", "https://competitor.com/img/speaker-2.jpg" ], "price": 79.99, "category": "Electronics" } ]
}
Step 2: Description Generation with Claude
Pass each product's basic info (name, category, competitor description) to Claude Opus 4.6 via the Anthropic API. Use a structured prompt that asks for multiple description variations: a short punchy one for listings, a detailed one for the product page, and a feature-benefit version for email campaigns.
POST https://api.anthropic.com/v1/messages
Content-Type: application/json { "model": "claude-opus-4.6", "max_tokens": 1024, "messages": [ { "role": "user", "content": "I'm selling a wireless bluetooth speaker. Competitor description: 'High-quality sound. Water resistant. 12-hour battery.' Generate three product descriptions: (1) short 50-word listing copy, (2) detailed 200-word product page description, (3) feature-benefit email version. Return as JSON with keys: listing, page, email" } ]
}
n8n will parse the JSON response and split the descriptions into three separate fields. Store these in your data structure for the next step.
Step 3: Image Generation and Enhancement
Here's where the workflow branches. For each product, you need to generate new product images that don't directly copy the competitor's photography (important for legal reasons) but match the visual style. Download the competitor's images first using Pixelcut AI to clean them up: remove backgrounds, enhance colours, and improve lighting. This gives you a reference palette and establishes quality baseline without copying directly.
POST https://api.pixelcut.ai/v1/background-remove
Content-Type: application/json
Authorization: Bearer YOUR_PIXELCUT_KEY { "image_url": "https://competitor.com/img/speaker-1.jpg", "output_format": "png"
}
Then use AI Boost to generate variations. Feed it the cleaned reference image plus your product name and category as a prompt. Request at least three variations: one lifestyle shot (product in use), one detail shot (close-up of features), and one flat-lay style image.
POST https://api.aiboost.app/v1/generate-variations
Content-Type: application/json
Authorization: Bearer YOUR_AIBOOST_KEY { "reference_image_url": "https://pixelcut-output/speaker-clean.png", "product_name": "Wireless Bluetooth Speaker", "product_category": "Electronics", "variations": 3, "styles": ["lifestyle", "detail", "flat-lay"]
}
AI Boost returns image URLs. Download these and store the paths in your data payload.
Step 4: Publish to Your Catalogue
Finally, push everything to your e-commerce platform via API. Most platforms (Shopify, BigCommerce, WooCommerce, custom systems) have product creation or update endpoints.
POST https://your-ecommerce-api.com/v1/products
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY { "name": "Wireless Bluetooth Speaker", "description": "Your generated listing description here", "long_description": "Your generated page description here", "sku": "SKU001", "price": 79.99, "images": [ { "url": "https://aiboost-output/lifestyle.jpg", "alt_text": "Wireless Bluetooth Speaker lifestyle use" }, { "url": "https://aiboost-output/detail.jpg", "alt_text": "Wireless Bluetooth Speaker detail view" } ], "category": "Electronics"
}
In n8n, use the HTTP Request node with POST method, set your authentication header, and map the fields from your previous steps. Add error handling: if the API returns a 409 (conflict/duplicate), log it and skip. If it returns 5xx errors, trigger a retry with exponential backoff.
Complete Workflow Structure in n8n
The node sequence looks like this: 1. Webhook (receive competitor URLs) 2. HTTP Request (scrape product data) 3. Loop node (iterate through each product) 4. Claude API call (generate descriptions) 5. Pixelcut API call (clean reference images) 6. AI Boost API call (generate product images) 7. HTTP Request (upload to your catalogue) 8. Error handler (log failures to Slack) Wire the Loop node to the Claude call, then branch into parallel Pixelcut and AI Boost calls using two parallel HTTP nodes, then merge back into the catalogue upload step. This parallelisation saves time: you're generating descriptions and images simultaneously rather than sequentially.
The Manual Alternative
If you prefer human oversight at key points, add approval gates. After step 2 (description generation), send all descriptions to a Slack channel with approval buttons. Only descriptions marked "approved" proceed to image generation. Similarly, after images are generated, post them to a channel for a quick visual review before publishing. This slows things down but catches embarrassing AI mistakes or tone mismatches before they go live. It's worth doing if your brand voice is particularly distinctive or if you sell luxury items where description quality is competitive.
Pro Tips
Rate Limit Management.
Claude and AI Boost both have rate limits.
Don't send 200 products at once; batch them in groups of 10 with a 2-second delay between batches. n8n's built-in "Wait" node handles this. Check each API's documentation for your tier's limits and add buffer.
Image Storage.
Don't rely on third-party URLs from AI Boost or Pixelcut. Download the images immediately and store them on your own CDN or S3 bucket. Third-party URLs expire, and you'll have broken product pages. Use n8n's "Binary File" node to handle downloads.
Deduplication Logic.
Before publishing, check whether a SKU already exists in your catalogue. Add a conditional node that calls your product API with GET /products?sku=SKU001. If it returns a result, update instead of creating. This prevents duplicate entries on repeated runs.
Cost Monitoring.
Claude and image generation aren't free. Add a cost calculation node that logs each API call with its token count and approximate cost. After 100 products, you'll know your per-SKU expense. Set a monthly budget alert so you don't get surprised by the bill.
Error Logging.
Send all failures to a dedicated Slack channel or database table. Include the original product data, the API response, and the timestamp. Don't just fail silently; you need visibility into what went wrong so you can fix it the next morning.
Cost Breakdown
| Tool | Plan Needed | Monthly Cost | Notes |
|---|---|---|---|
| n8n | Self-hosted (free) or Cloud Professional | £0-£50 | Self-hosted is free; cloud version scales with execution volume |
| Claude Opus 4.6 | Pay-as-you-go | £15-£40 | Roughly £0.015 per 1K input tokens, £0.075 per 1K output tokens; ~50 tokens per product description |
| Anthropic API | Included in Opus pricing | Included | No separate charge |
| AI Boost | Pro plan | £25-£75 | Depends on image generation volume; roughly 5 credits per image variation |
| Pixelcut AI | Premium | £10-£20 | Background removal costs credits; typically 1-2 credits per image |
| Scripting/storage | AWS S3 or equivalent | £5-£15 | Storage for downloaded images and logs |
| Total | **, ** | £55-£200 | Scales with product volume; easily handles 500+ SKUs monthly |