Apify ecommerce intelligence
Skill johnisanerd/claude-skill-ecommerce-intelligence/apify-ecommerce-intelligence
Build an ecommerce intelligence feed from Google Shopping with the Apify Google Shopping API Actor (johnvc/google-shopping-api-google-shopping-products-prices-deals). Watch the products and competitors that matter, and log seller, price, extracted_price, extracted_old_price, tag, rating, and reviews per listing over time for price monitoring, deal and discount tracking, repricing inputs, and market scans. Filter to on_sale or free_shipping listings, bound each poll by pages, and key history on product_id plus source. Use when the user wants ecommerce intelligence, competitor price monitoring, price tracking across retailers, google shopping monitoring or tracking, deal alerts, MAP monitoring, or a market view of who sells a product and at what price. Pay-per-page billing, MCP-ready for Claude and other AI agents.From its SKILL.md
npx -y skills add johnisanerd/claude-skill-ecommerce-intelligence --skill apify-ecommerce-intelligenceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- 27 days oldThe repository was created 27 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
8.4 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
Ecommerce Intelligence: Competitor Prices and Deals From Google Shopping
Turn Google Shopping into an ecommerce intelligence feed. One bounded run per watched product returns every listing on the page with seller, current price, old price when on sale, rating, and review count, ready to log as a price history and compare across retailers.
When to use this skill
- The user wants ecommerce intelligence: who sells a product, at what price, and how that moves.
- They want competitor price monitoring, price tracking across retailers, or repricing inputs.
- They want deal, discount, or MAP (minimum advertised price) monitoring for a watchlist.
- They ask for "google shopping monitoring", "google shopping tracking", or "price monitoring".
Not for: one-off bulk exports of a single search (use the scrape-google-shopping skill), deep per-seller offers and specs for one product (use the Google Immersive Product API), or cheap high-volume price checks with fewer fields (use the Google Shopping Lite API).
What each poll returns (one dataset item per page, about 40 listings each)
Products sit in the shopping_results array of each page item. The intelligence fields:
- Identity:
product_id(the tracking key),title,position,product_link,thumbnail,immersive_product_page_token(hand it to the Google Immersive Product API for per-seller offer depth). - Price signals:
price(display string),extracted_price(number), and on sale itemsold_price,extracted_old_price,tag(badge such as "62% OFF"),extensions. - Market signals:
source(seller name),multiple_sources(boolean, several sellers list it),rating,reviews,delivery,second_hand_condition(used or refurbished listings). - Poll metadata:
search_timestamp(the history timestamp),search_parameters,search_metadata(results_count,pages_processed),page_number.
Prerequisites
- Apify account (sign up at https://apify.com?fpr=9n7kx3&fp_sid=skillrepo).
- Authentication via
apify login, or anAPIFY_TOKENenvironment variable (Apify Console, Settings, Integrations).
The Actor
- Store page: https://apify.com/johnvc/google-shopping-api-google-shopping-products-prices-deals?fpr=9n7kx3&fp_sid=skillrepo
- Actor ID:
johnvc/google-shopping-api-google-shopping-products-prices-deals - Pricing: pay per page of results processed, plus a small per-run setup fee (see
references/gotchas.md).
Run it with the Apify CLI
Poll one watched product, one page, US market:
apify actors call "johnvc/google-shopping-api-google-shopping-products-prices-deals" -i '{"q":"dyson airwrap","gl":"us","hl":"en","max_pages":1}' \
--json \
--user-agent apify-awesome-skills/apify-ecommerce-intelligence \
2>/dev/null
Watch only discounted listings in a price band, cheapest first:
apify actors call "johnvc/google-shopping-api-google-shopping-products-prices-deals" -i '{"q":"robot vacuum","gl":"us","hl":"en","on_sale":true,"min_price":100,"max_price":400,"sort_by":1,"max_pages":1}' \
--json \
--user-agent apify-awesome-skills/apify-ecommerce-intelligence \
2>/dev/null
Read a past run's items later, for example from a scheduled run:
apify datasets get-items <DATASET_ID> --format json --user-agent apify-awesome-skills/apify-ecommerce-intelligence 2>/dev/null
Every call carries the three flags this repo expects: --json (or --format json), --user-agent apify-awesome-skills/apify-ecommerce-intelligence, and 2>/dev/null.
Run it from Claude or another AI agent (MCP)
The Actor is MCP-ready. Add the hosted server URL:
https://mcp.apify.com/?tools=actors,docs,johnvc/google-shopping-api-google-shopping-products-prices-deals
Then ask, for example: "Check which retailers sell the Dyson Airwrap right now, who is cheapest, and which listings are on sale." MCP setup docs: https://docs.apify.com/platform/integrations/mcp
Workflow
- Define the watchlist. One Actor input per watched item: a product query (
q), the market (gl,hl, andgoogle_domainfor non-US), and optional restrictions (on_salefor a deal watch,min_priceplusmax_pricefor a band). - Bound each poll. Keep
max_pagesat 1 or 2 per poll; the first page carries the listings buyers actually see, andmax_pagesis the hard cost cap. - Estimate cost per poll and per month, then confirm with the user. See
references/gotchas.md. - Run one poll per watchlist item and flatten: one row per listing with
search_timestamp,product_id,source,extracted_price,extracted_old_price,tag,rating,reviews,product_link. - Build the history. Append rows to your store keyed on
product_idplussource; a price change for the same key between polls is the signal for alerts, repricing, or a MAP flag (anyextracted_pricebelow your floor). - Serve the result. Deliver a comparison table, a cheapest-seller answer, or a deal digest. For recurring intelligence, wrap the same inputs in an Apify Schedule or a cron job.
Inputs
q(string, required): the watched product, brand, or categorygl,hl,google_domain(strings): market localization, set together per countrylocation(string): optional geographic refinementmin_priceplusmax_price(numbers): price band in the local currencysort_by(integer): 1 = price low to high, 2 = price high to lowon_sale(boolean): deal-watch mode, discounted listings onlyfree_shipping(boolean): restrict to free-shipping listingsmax_pages(integer, default 1): pages per poll, the cost bounddevice(enum: desktop, tablet, mobile): prices can differ slightly by device
Cost
Billing is per page processed (about 40 listings) plus a small one-time setup fee per run, so a one-page poll is a few cents. A 20-product watchlist polled daily at one page each runs about $0.80 per day. Estimate with the live prices in references/gotchas.md before scheduling.
Honest limits
- This is a polled snapshot, not a push feed: freshness is your poll interval, and history only accumulates in your own store.
- Coverage is what Google Shopping ranks for the query; a seller missing from the page is not proof they do not sell the product.
multiple_sourcesis a boolean flag, not a seller list; per-seller offer depth for one product needs the Google Immersive Product API.product_linkpoints at the Google Shopping product page, not always the retailer's own site.- Sale fields (
old_price,tag) appear only when Google marks the listing as discounted.
Troubleshooting
- Same product, different
product_idacross polls: match on normalizedtitleplussourceas a fallback key. - A watched seller disappeared from results: normal ranking movement; widen to
max_pages: 2before concluding they delisted. on_salepoll returns nothing: no discounted listings right now for that query; it is a valid empty result.- Prices look off for a non-US market: set
gl,hl, andgoogle_domaintogether.
See references/gotchas.md for cost guardrails and error recovery, and references/actor-index.md for the Actor routing table.
Related product-data Actors
- Google Shopping Lite API, lower-cost quick price lookups: https://apify.com/johnvc/google-shopping-lite-api?fpr=9n7kx3&fp_sid=skillrepo
- Google Immersive Product API, full product-page detail per listing: https://apify.com/johnvc/google-immersive-product-api?fpr=9n7kx3&fp_sid=skillrepo
- Google Images API, clean product image URLs: https://apify.com/johnvc/google-images-api?fpr=9n7kx3&fp_sid=skillrepo
What ships with it: 2 files
5.4 KB alongside SKILL.md
references/
- actor-index.md1.9 KB
- gotchas.md3.5 KB