Fetch raw ad creative, app, ranking, and revenue data from AdMapix as structured JSON.
Memory
retail-assortment-gap-analysis
Try itCompare competing retail assortments through Crawlora catalogs. Use to find observed gaps in categories, brands, product attributes, variants, and price bands, with explicit catalog coverage and product-matching evidence.
What it does
Compare defined category samples or complete collections and identify evidence-backed assortment gaps. Keep a product absent from the collected sample distinct from one confirmed absent from a fully enumerated catalog.
The skill document
Retail assortment gap analysis
Compare defined category samples or complete collections and identify evidence-backed assortment gaps. Keep a product absent from the collected sample distinct from one confirmed absent from a fully enumerated catalog.
Setup and API contract
Set CRAWLORA_API_KEY to your key from crawlora.net.
Run the bundled scripts/crawlora.sh from this skill directory or by absolute
path. It sends x-api-key to https://api.crawlora.net/api/v1; keep the key in
the environment. Read reference/endpoints.md for the
selected endpoints, required parameters, limits, and response behavior.
Check the application code as well as HTTP status; successful payloads are
inside data. Stop on 401/403, back off on 429, and retry a transient
5xx once. A failed or partial fetch is not an empty market or catalog.
Bound requests to the user's scope and credit budget. For repeated collection,
save the query, source IDs, pagination progress, and retrieval timestamps with
the results so interrupted work can resume; do not create monitors implicitly.
Define and collect the comparison
- Agree on stores, target market, category boundaries, price-band edges, and counting unit: parent products or sellable variants. Fix store, country, language, currency, and retrieval window before collecting data. Use the user's own assortment when supplied, alongside public competitor records.
- For Shopify, resolve a storefront with
/shopify/store, discover handles via/shopify/collections, and enumerate/shopify/collections/{handle}/products./shopify/productsprovides the broader storefront catalog. Keepurlfixed across pages and detail calls. Use returned product handles for detail. Classic transport does not support server-side sort/facets; do not passsortByunlesstransport_modeisssr_embeddedand the reference permits it. - For Target, discover
/target/categories, browse/target/category-products, and retain returned dynamic filter option IDs. Preserve the samestore_idwhen supplied by the user for browsing and/target/product?tcin=...detail. This skill has no Target store-discovery tool: report the default store context if a verified ID is unavailable, rather than inventing a local store match. - For IKEA,
/ikea/searchfinds seed products; fetch detail to take category keys from its category paths for/ikea/categorypagination and item numbers for detail. Keepcountryandlanguagefixed. Keyword search is a candidate sample, not an exhaustive assortment even when its returned page is full. - Record pages/offsets, filters, declared totals, unique IDs, and stopping reason. Follow each endpoint's pagination limits; Shopify supports up to 250 per page, Target category browsing caps at page 50, IKEA category uses offset/size. A request budget or endpoint cap means partial coverage. Deduplicate overlapping collections and stop if pages repeat rather than assuming new coverage.
scripts/crawlora.sh /ikea/search q=desk country=us language=en size=10
scripts/crawlora.sh /target/categories
# For a user-selected Shopify store, use its URL unchanged through discovery:
# scripts/crawlora.sh /shopify/collections url="$STOREFRONT_URL" limit=50 page=1
Normalize and identify gaps
- Build a shared category/attribute mapping while preserving each store's original taxonomy. Store-specific category IDs and labels are not cross-store keys.
- Match identical products using a returned GTIN or verified brand/model/variant combination. Treat retailer-local IDs as local. A similar title is only a candidate match; private-label alternatives belong in an attribute comparison.
- Count parent products once for breadth; count sizes/colors only in the variant view. A sold-out variant is an availability gap, not a missing catalog product.
- Use consistent currency, tax context, pack quantity, dimensions, and sale versus regular price basis. Do not compare a multipack with a single item by sticker price alone. Avoid counting a product's minimum variant price as every variant's price. Keep missing brand, attributes, or prices in an unknown bucket.
- Calculate category/brand/price-band shares with explicit denominators and unknown counts. For incomplete coverage, label differences as observed sample gaps. A niche carried by a competitor is not proof of sales, demand, or profitability.
Deliverable
Return a coverage ledger, comparable assortment matrix, and prioritized gap list. For each proposed gap show category/attribute, stores observed, product and variant counts, price basis, example source URLs/IDs, collection time, confidence, and what would validate demand. Explain whether evidence supports absence, out-of-stock, unknown coverage, or a taxonomy mismatch. Do not turn a snapshot into a trend; changes require comparable saved snapshots and the same collection scope.
Related skills
Trade crypto, manage a multi-chain wallet, and query an AI analyst from one CLI.
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Post videos, photos, text, and documents to 10 social platforms through a single REST API call.
More from crawlora-org
Browse all skillsResearches products, prices, sellers, and reviews across major online marketplaces and big-box/specialty retailers (Amazon, eBay, Shopify stores, Shop.app, Target, Costco, Walmart, Nike, Zara, Adidas, Best Buy, Home Depot, Sephora, SHEIN, IKEA, Chewy, and more) using the Crawlora API, returning clean JSON. Use when the user asks to find a product, compare prices or sellers, track listings, or pull marketplace/retailer reviews — instead of scraping store pages.
Researches hotels, flights, attractions, short-term rentals, and live events via the Crawlora API — Booking.com, Expedia, Agoda, TripAdvisor, Trip.com, Airbnb, and Ticketmaster — returning clean JSON. Use when the user wants to search or compare hotel/stay prices and reviews, look up flight options, find attractions/things-to-do or concerts/events, or research an Airbnb host or listing.
Fetches any company's job openings straight from its Applicant Tracking System (ATS) via the Crawlora API — Greenhouse, Lever, Workday, Ashby, SmartRecruiters, Workable, Personio, Recruitee, iCIMS, Oracle Recruiting, Rippling, Pinpoint, Eightfold, Gem, UKG, and Teamtailor — returning clean JSON. Use when the user wants every open role from a specific company's ATS-hosted career page, a single job posting's full detail, or a hiring-velocity snapshot for a company, given its ATS platform and company/board slug.
Queries Crawlora's pre-built hosted datasets — Airbnb markets, App Store/Google Play apps, GitHub/Instagram/X users, job postings, US housing markets, Google Maps businesses, Goodreads, PitchBook, Steam, TrustMRR, Product Hunt, SEC companies, tech-stack, and more — via search/facets/item/nearby endpoints, returning clean JSON without live-crawling each platform. Use when the user wants bulk or aggregate analysis, to search a pre-indexed corpus, to facet/filter a large population, or to look up one record by its dataset id, instead of scraping pages one at a time.
Researches music, artists, playlists, and podcasts via the Crawlora API — Spotify tracks/albums/artists/playlists/profiles, Spotify Podcasts, Apple Podcasts, Discogs, and SoundCloud tracks/profiles/playlists — returning clean JSON. Use when the user wants a track/album/artist's details, a playlist or profile, podcast show/episode info and charts, a record's Discogs release/pressing data, or a SoundCloud track/user's stats.
Researches Zara's catalog — category taxonomy, category listings, product detail, keyword search, search suggestions, and nearby physical stores — using the Crawlora API, returning clean JSON. Use when the user asks to find a product on Zara, browse a Zara category, search Zara's catalog by keyword, pull a Zara product's colors/sizes/images, or find a nearby Zara store — instead of scraping zara.com.