agentsclimarketplace

Keyword opportunities

Skill ASOScan/aso-skills/skills/keyword-opportunities

When the user wants the best untapped keywords for an app tracked in ASOScan — gap-scored suggestions ranked by opportunity score, each showing which competitors already rank for the term. Also use when the user mentions "what keywords should I target", "find keyword opportunities", "what am I missing", "keyword gaps vs my competitors", or "suggest keywords to add". Can also start tracking the chosen terms. For validating a specific term's volume/difficulty, see keyword-intelligence.From its SKILL.md

Install
npx -y skills add ASOScan/aso-skills --skill keyword-opportunities

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 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.

SKILL.md

3.7 KB, 858 tokens by cl100k_base, as published. Nobody here has run it

Keyword Opportunities

Answer "what should I target next?" with ASOScan's pre-computed, opportunity-scored suggestions — drawn from your metadata, competitors, AI, the category index, and search data — then track the winners, all from real numbers.

When to use

  • "What keywords should I add / target?"
  • "Where are my keyword gaps vs competitors?"
  • "Suggest high-opportunity keywords for my app."

Calling the ASOScan API

Base https://asoscan.com/api/public/v1 · header Authorization: Bearer $ASOSCAN_API_KEY. JSON, camelCase. If the key is unset, hand off to asoscan-setup.

  1. Find the appGET /apps → use the id.
  2. OpportunitiesGET /apps/{id}/opportunities?country=&limit=50 (2 credits, limit 1–200). Each row: { term, volume, difficulty, opportunityScore, competitorRanks[]{ name, rank, isYou } }. There is no "source" field — rank by opportunityScore and read competitorRanks for context (the entry with isYou: true is the owner; rank: null there = you don't rank yet).
  3. (Optional) validate a shortlisted term — the research call in keyword-intelligence (8 credits), for a few finalists only.
  4. (Optional) track the picksPOST /apps/{id}/keywords with { "terms": [...], "country": "US" } (2 credits, needs a write key; up to 500 terms) → { added[], skipped[]{ term, reason } }.

How to prioritize

Sort by opportunityScore, then sanity-check each candidate:

  1. Relevant? Would a searcher for this term actually want this app? Drop off-topic high-volume terms — irrelevant installs churn.
  2. Winnable? Is difficulty realistic for this app's authority?
  3. A real gap? In competitorRanks, isYou has a null/poor rank while rivals rank well → the sharpest opportunity.

Group into Quick wins (high score, low difficulty, relevant, you don't rank) and Watchlist (promising but harder / needs validation).

Output template

### Keyword opportunities — {App} ({country})   ·  credits left: {remaining}

**Quick wins** (track these)
| Keyword | Volume | Difficulty | Score | You rank? | Rivals ranking |
|---|---|---|---|---|---|
| … | … | … | … | no | Rival A #4, Rival B #9 |

**Watchlist**
| Keyword | Volume | Difficulty | Score | Note |
|---|---|---|---|---|

**Next in ASOScan:** track the quick wins → POST /apps/{id}/keywords (write key),
then place them with `metadata-audit`.

If the user approves tracking, call the write endpoint and report added/skipped.

Errors, credits & honesty

  • 401 → asoscan-setup · 403 = no API access or a read-only key on the write call (tell them to create a read + write key) · 402 out of credits · 429 back off · 503 not enabled yet. Opportunities = 2 credits, tracking = 2.
  • Present numbers cleanly; never track terms without asking; don't overpromise ranks.
  • Full reference: https://asoscan.com/api/developers

Related

  • keyword-intelligence — validate a shortlisted term.
  • competitor-analysis — see which competitors drive the gap.
  • metadata-audit — place the chosen keywords into the listing.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.