| name | explore-app-store |
| description | App Store idea discovery and market intelligence for iOS apps, using free public APIs (iTunes Search/Lookup/RSS charts + the no-auth Sensor Tower app endpoint for revenue & download estimates). Use this skill when the user wants to: (1) Find new app ideas or "sweet spots" — recently released apps already earning a target revenue band (e.g. 2026 apps making $10-30k/mo) that look winnable and easy to ship, (2) Map a niche's competitors with revenue/downloads/ratings, (3) Find localization arbitrage — apps big in one country/language but absent or unlocalized in another, including iOS-vs-Android port gaps, (4) Tear down a developer/publisher's portfolio or detect "rising publishers" shipping multiple monetizing apps, (5) Pull top free/paid/grossing charts per storefront and genre, (6) Grab competitor screenshots, App Store links, pricing/paywall, and descriptions into organized folders with a ranked CSV + opportunity brief. Trigger on: "find app ideas", "explore the app store", "trending apps making money", "sweet spot", "competitor research", "what works in <country>", "developer portfolio", "app market research", "localization arbitrage", "apps in <country X> we can apply in <country Y>", "take a local app global".
|
explore-app-store
Turn a plain-English goal ("find 2026 apps making $10-30k I could clone", "map the
hair-loss niche", "what's big in Turkey but missing in the US") into ranked opportunities
backed by real revenue/download estimates, screenshots, and App Store links.
All scripts are pure Python stdlib — no dependencies, no API keys. Run them with
python3. Every revenue/download number comes from Sensor Tower and is an estimate,
coarsely bucketed (<$5k, $10k, $30k, $90k, ...). Present them as relative signal.
Data sources (all public, no auth)
- iTunes Search — keyword discovery
- iTunes Lookup — details by app id / bundleId / developer portfolio (artistId)
- iTunes RSS charts — top free / paid / grossing per country + genre
- Sensor Tower app API — est. worldwide last-month downloads + revenue, publisher,
top_countries / valid_countries, screenshots (iOS and Android). Rate-limited
(HTTP 429 after ~180 ids) → scripts batch + backoff + cache automatically.
Workflow — how to drive this skill
The scripts do the deterministic fetching/scoring; you (the model) supply the creativity
— brainstorm a broad, varied seed-keyword set before sweeping, and interpret the results.
1. Find sweet spots / new ideas → scripts/explore.py sweep
First brainstorm 12-30 seed keywords covering the domain from many angles (synonyms,
"AI X", "X tracker/scanner/planner", the problem, the audience). Then:
python3 scripts/explore.py sweep \
--terms "hair loss,scalp scanner,hair growth,thinning hair,derma roller,minoxidil tracker,..." \
--release-min 2026 --rev-min 10000 --rev-max 30000 --country us --limit 50 --top 20
Output (in explore-out/<slug>-<ts>/): apps.csv, apps.json, brief.md (ranked with a
"why it scores" breakdown). Add --charts to also fold in top-grossing/free chart apps.
Adjust --release-min / --rev-min/max to widen or tighten. Read brief.md, then present
the top opportunities and your read on which are genuinely winnable.
Sweet-spot score weights: in target revenue band (0.30), recency (0.20), monetization
efficiency = revenue÷downloads (0.20), winnability = few ratings (0.15), velocity =
ratings÷age (0.10), ship-ability = few screenshots (0.05). See references/scoring.md.
2. Map a niche's competitors → same sweep, no release filter
python3 scripts/explore.py sweep --terms "<niche terms>" --release-min "" --rev-min 0 --top 40
3. Localization arbitrage → scripts/explore.py localize
python3 scripts/explore.py localize --base us --targets tr,de,br,kr,gb,jp \
--genre 6023 --kind top-grossing --top 20
python3 scripts/explore.py localize --ids 6759983589,6466220595 --langs tr,de,es,ja
Reports apps charting in a target market but absent from the base (import candidates,
matched by app id so localized names don't create false positives), plus per-app missing
languages and whether the iOS app is absent from Google Play (a port opportunity).
3b. Bidirectional arbitrage (both directions at once) → scripts/explore.py arbitrage
Find growing apps to move BETWEEN markets, in both directions, across several genres:
python3 scripts/explore.py arbitrage --home tr --markets us,gb,de \
--genres 6012,6013,6008,6002,6017 --kind top-grossing --rev-min 10000 --release-min 2025
- EXPORT = apps whose top revenue country is HOME and that are absent from MARKETS →
"born in your market, take global" (the high-value direction for a local indie: build once,
earn tier-1 ARPU).
- IMPORT = apps charting in MARKETS, absent from HOME, and not localized to HOME's
language → "proven abroad, localize in".
- Swap
--home/--markets to run the reverse (e.g. --home us --markets tr). Writes
arbitrage.json. --home-lang overrides the language derived from --home.
4. Developer / rising-publisher analysis → scripts/explore.py portfolio
python3 scripts/explore.py portfolio --artist 1499186364
python3 scripts/explore.py portfolio --from-json explore-out/<run>/apps.json --min-apps 2
--from-json groups a prior sweep by publisher and flags publishers shipping ≥N recent
apps that each monetize — a repeatable playbook to study.
5. Charts → scripts/explore.py charts
python3 scripts/explore.py charts --country us --kind top-grossing,top-free --genre 6007 --limit 50
6. Screenshots + details for a shortlist → scripts/explore.py assets
python3 scripts/explore.py assets --ids 6740919592,6751491972 --max-shots 10 --out research/screenshots
Writes details.md (revenue, paywall pricing, top countries, languages, full description) +
screenshots per app.
Typical end-to-end
sweep a domain → read brief.md → shortlist the highest sweet-spot scores.
portfolio --from-json to spot the studio behind repeated winners.
assets the shortlist for screenshots + paywall pricing.
localize to check for an untapped market or a missing Android port.
- Summarize: the opportunity, why it's winnable, the observed monetization model.
Notes & limits
- Revenue is worldwide, last-month, bucketed estimates — relative signal, not exact $.
The band filter works on buckets (can't split $12k from $18k).
top_countries shows what drives revenue; there is no per-country revenue in the
free endpoint — localization uses chart presence + language gaps, not exact per-country $.
- Charts surface incumbents (ChatGPT, TikTok), not small indies — sweet spots come from
keyword sweeps, so point the sweep at a domain and brainstorm seeds generously.
- Be honest that these are estimates; don't overstate precision.
- References:
references/genre_ids.md, references/storefronts.md, references/api_notes.md,
references/scoring.md.