E-Commerce Cluster
Answer natural language e-commerce questions by routing to the right Apify Actor and delivering a synthesized answer.
Prerequisites
(No need to check it upfront)
.env file with APIFY_TOKEN
- Node.js 20.6+ (for native
--env-file support)
mcpc CLI tool: npm install -g @apify/mcpc
Workflow
Copy this checklist and track progress:
Task Progress:
- [ ] Step 1: Detect intent and select Actor
- [ ] Step 2: Fetch Actor schema via mcpc
- [ ] Step 3: Ask user preferences (format, result count)
- [ ] Step 4: Run the Actor
- [ ] Step 5: Analyze results and deliver synthesized answer
Step 1: Detect Intent and Select Actor
Classify the user's message into an intent, then pick the right Actor.
Intent signals:
| Signals in user message |
Intent |
| price, cost, cheapest, compare prices, pricing |
pricing |
| review, rating, sentiment, stars, feedback |
reviews |
| bestseller, top selling, most popular, trending |
bestsellers |
| seller, vendor, reseller, who sells |
sellers |
| all products from, scrape store, full catalog |
store-scrape |
| what platform, built on, tech stack, Shopify or WooCommerce |
tech-stack |
| SEO, listing quality, product page audit |
seo-audit |
| competitor funnel, competitor pricing, conversion elements |
competitor |
| search intent, keyword intent, SERP intent |
search-intent |
| match products, same product on different platforms |
product-matching |
| restaurant, food delivery, DoorDash, UberEats, TheFork |
food-delivery |
| enrich store, store metadata, store list |
store-enrichment |
| event, concert, ticket, Eventbrite |
events |
| property, real estate, house listing, Realtor |
real-estate |
| Facebook ads, Meta ads, ad library, competitor ads |
ads-intelligence |
| classified, Craigslist, used item for sale |
classifieds |
| car, used car, vehicle, automotive, Webmotors |
automotive |
| pins, inspiration, Pinterest boards, visual search, Pinterest trends |
content-discovery |
| TikTok Shop, TikTok store, TikTok creator |
tiktok-shop |
| website for sale, domain for sale, Flippa |
website-marketplace |
If multiple intents are detected, ask: "Do you want [intent A] or [intent B]?"
Actor routing table — always try Primary first, switch to Fallback only if it fails or returns 0 results:
| Intent |
Platform |
Primary Actor |
Fallback Actor |
pricing |
Amazon / Walmart / generic |
apify/e-commerce-scraping-tool |
— |
pricing |
eBay |
apify/e-commerce-scraping-tool |
ivanvs/ebay-scraper-pay-per-result |
pricing |
Etsy |
apify/e-commerce-scraping-tool |
epctex/etsy-scraper |
pricing |
Google Shopping |
apify/e-commerce-scraping-tool |
epctex/google-shopping-scraper |
pricing |
Facebook Marketplace |
apify/e-commerce-scraping-tool |
apify/facebook-marketplace-scraper |
pricing |
SHEIN |
apify/e-commerce-scraping-tool |
seamless_coffer/shein-product-scraper |
pricing |
Lazada |
apify/e-commerce-scraping-tool |
fatihtahta/lazada-scraper |
pricing |
Canadian Tire |
apify/e-commerce-scraping-tool |
azzouzana/canadiantire-ca-scraper |
pricing |
Tesco |
apify/e-commerce-scraping-tool |
radeance/tesco-scraper |
pricing |
Shopify |
apify/e-commerce-scraping-tool |
trovevault/shopify-products-scraper |
pricing |
WooCommerce |
apify/e-commerce-scraping-tool |
trovevault/woocommerce-products-scraper |
reviews |
Amazon / Walmart / generic |
apify/e-commerce-scraping-tool |
junglee/amazon-reviews-scraper |
reviews |
Trustpilot |
apify/e-commerce-scraping-tool |
casper11515/trustpilot-reviews-scraper |
reviews |
TheFork |
apify/e-commerce-scraping-tool |
jdtpnjtp/thefork-restaurant-scraper-advanced |
bestsellers |
Amazon |
apify/e-commerce-scraping-tool |
junglee/amazon-bestsellers |
sellers |
Amazon |
apify/e-commerce-scraping-tool |
junglee/amazon-seller-scraper |
sellers |
eBay |
apify/e-commerce-scraping-tool |
ivanvs/ebay-scraper-pay-per-result |
store-scrape |
Shopify |
apify/e-commerce-scraping-tool |
trovevault/shopify-products-scraper |
store-scrape |
WooCommerce |
apify/e-commerce-scraping-tool |
trovevault/woocommerce-products-scraper |
store-scrape |
Amazon |
apify/e-commerce-scraping-tool |
junglee/Amazon-crawler |
store-scrape |
Flippa |
apify/e-commerce-scraping-tool |
scraped/flippa-scraper |
tech-stack |
any |
apify/e-commerce-scraping-tool |
trovevault/e-commerce-tech-stack-detector |
seo-audit |
any |
apify/e-commerce-scraping-tool |
trovevault/product-listing-seo-auditor |
competitor |
any |
apify/e-commerce-scraping-tool |
trovevault/competitor-intelligence-scraper---funnel-pricing-conversion |
search-intent |
any |
apify/e-commerce-scraping-tool |
trovevault/ai-serp-intent-extractor---search-intent-classifier |
product-matching |
any |
apify/e-commerce-scraping-tool |
tri_angle/product-matching-vectorizer |
store-enrichment |
any |
apify/e-commerce-scraping-tool |
trovevault/e-commerce-store-data-enricher |
food-delivery |
DoorDash |
apify/e-commerce-scraping-tool |
tri_angle/doordash-store-details-scraper |
food-delivery |
UberEats |
apify/e-commerce-scraping-tool |
e-commerce/ubereats-reviews-scraper |
food-delivery |
TheFork |
apify/e-commerce-scraping-tool |
jdtpnjtp/thefork-restaurant-scraper-advanced |
ads-intelligence |
Facebook / Meta |
apify/e-commerce-scraping-tool |
apify/facebook-ads-scraper |
classifieds |
Craigslist |
apify/e-commerce-scraping-tool |
ivanvs/craigslist-scraper-pay-per-result |
automotive |
Webmotors |
apify/e-commerce-scraping-tool |
stealth_mode/webmotors-auto-search-scraper |
events |
Eventbrite |
apify/e-commerce-scraping-tool |
aitorsm/eventbrite |
real-estate |
Realtor.com |
apify/e-commerce-scraping-tool |
powerai/realtor-properties-search-scraper |
content-discovery |
Pinterest |
apify/e-commerce-scraping-tool |
fatihtahta/pinterest-scraper-search |
tiktok-shop |
TikTok Shop |
apify/e-commerce-scraping-tool |
lemur/tiktok-shop-creators |
website-marketplace |
Flippa |
apify/e-commerce-scraping-tool |
scraped/flippa-scraper |
Step 2: Fetch Actor Schema
Fetch the Actor's input schema dynamically using mcpc:
export $(grep APIFY_TOKEN .env | xargs) && mcpc --json mcp.apify.com --header "Authorization: Bearer $APIFY_TOKEN" tools-call fetch-actor-details actor:="ACTOR_ID" | jq -r ".content"
Replace ACTOR_ID with the selected Actor (e.g., apify/e-commerce-scraping-tool).
This returns:
- Actor description and README
- Required and optional input parameters
- Output fields (if available)
Step 3: Ask User Preferences
Before running, ask:
- Output format:
- Quick answer (default) — synthesized answer in chat, no file saved
- CSV — full export saved to disk
- JSON — full export saved to disk
- Result count — suggest defaults by intent:
| Intent |
Default |
pricing |
50 products |
reviews |
200 reviews |
bestsellers |
100 items |
sellers |
50 sellers |
store-scrape |
all (unlimited) |
food-delivery |
50 restaurants |
| all others |
20–50 |
Step 4: Run the Actor
Quick answer (display in chat, no file):
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \
--actor "ACTOR_ID" \
--input 'JSON_INPUT'
CSV:
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \
--actor "ACTOR_ID" \
--input 'JSON_INPUT' \
--output YYYY-MM-DD_filename.csv \
--format csv
JSON:
node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \
--actor "ACTOR_ID" \
--input 'JSON_INPUT' \
--output YYYY-MM-DD_filename.json \
--format json
Step 5: Analyze Results and Deliver Answer
After the run completes, deliver a direct synthesized answer — not a data dump:
- Pricing: price range, average, top 5 cheapest with URLs
- Reviews: average rating, top 3 positive and negative themes, recent snippets
- Bestsellers: top 10 by rank with name, price, rating, URL
- Sellers: total sellers, price range per seller, unauthorized seller flags
- Store-scrape: total products, category breakdown, price range, stock summary
- Tech-stack: platform detected, confidence level, notable plugins
- Food delivery: restaurant count, average rating, price tier breakdown
- Ads intelligence: total ads, active/inactive split, top creative formats
Error Handling
APIFY_TOKEN not found — Ask user to create .env with APIFY_TOKEN=your_token
mcpc not found — Ask user to install: npm install -g @apify/mcpc
Actor not found — Check Actor ID spelling in routing table
Run FAILED — Ask user to check the Apify console link in error output
Timeout — Reduce result count or increase --timeout
No results — Broaden keyword or switch to Fallback Actor from routing table
proxy is required — Add "proxy": {"useApifyProxy": true} to input
Platform not detected — Default to apify/e-commerce-scraping-tool with generic intent
1---2name: apify-ecommerce3description: Scrape e-commerce data for pricing, reviews, bestsellers, and seller discovery across 30+ platforms including Amazon, Walmart, eBay, Shopify, WooCommerce, and more. Use when user asks about product prices, competitor analysis, store scraping, tech stack detection, food delivery, real estate, or marketplace intelligence.4---56# E-Commerce Cluster78Answer natural language e-commerce questions by routing to the right Apify Actor and delivering a synthesized answer.910## Prerequisites11(No need to check it upfront)1213- `.env` file with `APIFY_TOKEN`14- Node.js 20.6+ (for native `--env-file` support)15- `mcpc` CLI tool: `npm install -g @apify/mcpc`1617## Workflow1819Copy this checklist and track progress:2021```22Task Progress:23- [ ] Step 1: Detect intent and select Actor24- [ ] Step 2: Fetch Actor schema via mcpc25- [ ] Step 3: Ask user preferences (format, result count)26- [ ] Step 4: Run the Actor27- [ ] Step 5: Analyze results and deliver synthesized answer28```2930### Step 1: Detect Intent and Select Actor3132Classify the user's message into an intent, then pick the right Actor.3334**Intent signals:**3536| Signals in user message | Intent |37|------------------------|--------|38| price, cost, cheapest, compare prices, pricing | `pricing` |39| review, rating, sentiment, stars, feedback | `reviews` |40| bestseller, top selling, most popular, trending | `bestsellers` |41| seller, vendor, reseller, who sells | `sellers` |42| all products from, scrape store, full catalog | `store-scrape` |43| what platform, built on, tech stack, Shopify or WooCommerce | `tech-stack` |44| SEO, listing quality, product page audit | `seo-audit` |45| competitor funnel, competitor pricing, conversion elements | `competitor` |46| search intent, keyword intent, SERP intent | `search-intent` |47| match products, same product on different platforms | `product-matching` |48| restaurant, food delivery, DoorDash, UberEats, TheFork | `food-delivery` |49| enrich store, store metadata, store list | `store-enrichment` |50| event, concert, ticket, Eventbrite | `events` |51| property, real estate, house listing, Realtor | `real-estate` |52| Facebook ads, Meta ads, ad library, competitor ads | `ads-intelligence` |53| classified, Craigslist, used item for sale | `classifieds` |54| car, used car, vehicle, automotive, Webmotors | `automotive` |55| pins, inspiration, Pinterest boards, visual search, Pinterest trends | `content-discovery` |56| TikTok Shop, TikTok store, TikTok creator | `tiktok-shop` |57| website for sale, domain for sale, Flippa | `website-marketplace` |5859If multiple intents are detected, ask: *"Do you want [intent A] or [intent B]?"*6061**Actor routing table — always try Primary first, switch to Fallback only if it fails or returns 0 results:**6263| Intent | Platform | Primary Actor | Fallback Actor |64|--------|----------|---------------|----------------|65| `pricing` | Amazon / Walmart / generic | `apify/e-commerce-scraping-tool` | — |66| `pricing` | eBay | `apify/e-commerce-scraping-tool` | `ivanvs/ebay-scraper-pay-per-result` |67| `pricing` | Etsy | `apify/e-commerce-scraping-tool` | `epctex/etsy-scraper` |68| `pricing` | Google Shopping | `apify/e-commerce-scraping-tool` | `epctex/google-shopping-scraper` |69| `pricing` | Facebook Marketplace | `apify/e-commerce-scraping-tool` | `apify/facebook-marketplace-scraper` |70| `pricing` | SHEIN | `apify/e-commerce-scraping-tool` | `seamless_coffer/shein-product-scraper` |71| `pricing` | Lazada | `apify/e-commerce-scraping-tool` | `fatihtahta/lazada-scraper` |72| `pricing` | Canadian Tire | `apify/e-commerce-scraping-tool` | `azzouzana/canadiantire-ca-scraper` |73| `pricing` | Tesco | `apify/e-commerce-scraping-tool` | `radeance/tesco-scraper` |74| `pricing` | Shopify | `apify/e-commerce-scraping-tool` | `trovevault/shopify-products-scraper` |75| `pricing` | WooCommerce | `apify/e-commerce-scraping-tool` | `trovevault/woocommerce-products-scraper` |76| `reviews` | Amazon / Walmart / generic | `apify/e-commerce-scraping-tool` | `junglee/amazon-reviews-scraper` |77| `reviews` | Trustpilot | `apify/e-commerce-scraping-tool` | `casper11515/trustpilot-reviews-scraper` |78| `reviews` | TheFork | `apify/e-commerce-scraping-tool` | `jdtpnjtp/thefork-restaurant-scraper-advanced` |79| `bestsellers` | Amazon | `apify/e-commerce-scraping-tool` | `junglee/amazon-bestsellers` |80| `sellers` | Amazon | `apify/e-commerce-scraping-tool` | `junglee/amazon-seller-scraper` |81| `sellers` | eBay | `apify/e-commerce-scraping-tool` | `ivanvs/ebay-scraper-pay-per-result` |82| `store-scrape` | Shopify | `apify/e-commerce-scraping-tool` | `trovevault/shopify-products-scraper` |83| `store-scrape` | WooCommerce | `apify/e-commerce-scraping-tool` | `trovevault/woocommerce-products-scraper` |84| `store-scrape` | Amazon | `apify/e-commerce-scraping-tool` | `junglee/Amazon-crawler` |85| `store-scrape` | Flippa | `apify/e-commerce-scraping-tool` | `scraped/flippa-scraper` |86| `tech-stack` | any | `apify/e-commerce-scraping-tool` | `trovevault/e-commerce-tech-stack-detector` |87| `seo-audit` | any | `apify/e-commerce-scraping-tool` | `trovevault/product-listing-seo-auditor` |88| `competitor` | any | `apify/e-commerce-scraping-tool` | `trovevault/competitor-intelligence-scraper---funnel-pricing-conversion` |89| `search-intent` | any | `apify/e-commerce-scraping-tool` | `trovevault/ai-serp-intent-extractor---search-intent-classifier` |90| `product-matching` | any | `apify/e-commerce-scraping-tool` | `tri_angle/product-matching-vectorizer` |91| `store-enrichment` | any | `apify/e-commerce-scraping-tool` | `trovevault/e-commerce-store-data-enricher` |92| `food-delivery` | DoorDash | `apify/e-commerce-scraping-tool` | `tri_angle/doordash-store-details-scraper` |93| `food-delivery` | UberEats | `apify/e-commerce-scraping-tool` | `e-commerce/ubereats-reviews-scraper` |94| `food-delivery` | TheFork | `apify/e-commerce-scraping-tool` | `jdtpnjtp/thefork-restaurant-scraper-advanced` |95| `ads-intelligence` | Facebook / Meta | `apify/e-commerce-scraping-tool` | `apify/facebook-ads-scraper` |96| `classifieds` | Craigslist | `apify/e-commerce-scraping-tool` | `ivanvs/craigslist-scraper-pay-per-result` |97| `automotive` | Webmotors | `apify/e-commerce-scraping-tool` | `stealth_mode/webmotors-auto-search-scraper` |98| `events` | Eventbrite | `apify/e-commerce-scraping-tool` | `aitorsm/eventbrite` |99| `real-estate` | Realtor.com | `apify/e-commerce-scraping-tool` | `powerai/realtor-properties-search-scraper` |100| `content-discovery` | Pinterest | `apify/e-commerce-scraping-tool` | `fatihtahta/pinterest-scraper-search` |101| `tiktok-shop` | TikTok Shop | `apify/e-commerce-scraping-tool` | `lemur/tiktok-shop-creators` |102| `website-marketplace` | Flippa | `apify/e-commerce-scraping-tool` | `scraped/flippa-scraper` |103104### Step 2: Fetch Actor Schema105106Fetch the Actor's input schema dynamically using mcpc:107108```bash109export $(grep APIFY_TOKEN .env | xargs) && mcpc --json mcp.apify.com --header "Authorization: Bearer $APIFY_TOKEN" tools-call fetch-actor-details actor:="ACTOR_ID" | jq -r ".content"110```111112Replace `ACTOR_ID` with the selected Actor (e.g., `apify/e-commerce-scraping-tool`).113114This returns:115- Actor description and README116- Required and optional input parameters117- Output fields (if available)118119### Step 3: Ask User Preferences120121Before running, ask:1221. **Output format**:123 - **Quick answer** (default) — synthesized answer in chat, no file saved124 - **CSV** — full export saved to disk125 - **JSON** — full export saved to disk1262. **Result count** — suggest defaults by intent:127128| Intent | Default |129|--------|---------|130| `pricing` | 50 products |131| `reviews` | 200 reviews |132| `bestsellers` | 100 items |133| `sellers` | 50 sellers |134| `store-scrape` | all (unlimited) |135| `food-delivery` | 50 restaurants |136| all others | 20–50 |137138### Step 4: Run the Actor139140**Quick answer (display in chat, no file):**141```bash142node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \143 --actor "ACTOR_ID" \144 --input 'JSON_INPUT'145```146147**CSV:**148```bash149node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \150 --actor "ACTOR_ID" \151 --input 'JSON_INPUT' \152 --output YYYY-MM-DD_filename.csv \153 --format csv154```155156**JSON:**157```bash158node --env-file=.env ${CLAUDE_PLUGIN_ROOT}/reference/scripts/run_actor.js \159 --actor "ACTOR_ID" \160 --input 'JSON_INPUT' \161 --output YYYY-MM-DD_filename.json \162 --format json163```164165### Step 5: Analyze Results and Deliver Answer166167After the run completes, deliver a direct synthesized answer — not a data dump:168169- **Pricing:** price range, average, top 5 cheapest with URLs170- **Reviews:** average rating, top 3 positive and negative themes, recent snippets171- **Bestsellers:** top 10 by rank with name, price, rating, URL172- **Sellers:** total sellers, price range per seller, unauthorized seller flags173- **Store-scrape:** total products, category breakdown, price range, stock summary174- **Tech-stack:** platform detected, confidence level, notable plugins175- **Food delivery:** restaurant count, average rating, price tier breakdown176- **Ads intelligence:** total ads, active/inactive split, top creative formats177178## Error Handling179180`APIFY_TOKEN not found` — Ask user to create `.env` with `APIFY_TOKEN=your_token`181`mcpc not found` — Ask user to install: `npm install -g @apify/mcpc`182`Actor not found` — Check Actor ID spelling in routing table183`Run FAILED` — Ask user to check the Apify console link in error output184`Timeout` — Reduce result count or increase `--timeout`185`No results` — Broaden keyword or switch to Fallback Actor from routing table186`proxy is required` — Add `"proxy": {"useApifyProxy": true}` to input187`Platform not detected` — Default to `apify/e-commerce-scraping-tool` with `generic` intent