agentleFS
ASOScanASOScan/aso-skills/skills/competitor-analysis/SKILL.md

competitor-analysis

Skill7 starsChanged 4 months agoMITView on GitHub

When the user wants to compare an app against its tracked competitors using ASOScan (keyword overlap and gaps, which store category each competitor uses, category chart rank over time, and rating trajectory), or add a new rival by store URL. Also use when the user mentions "compare my app to competitors", "who am I competing with", "add this competitor", "how do I stack up", "am I gaining or losing vs them", "what category do my competitors use", or "category ranking". For a competitor's full keyword list, see keyword-spy.

  • Reads credentials

64 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use seo-project-setup, app-marketing-context and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • JwuthriSkill

    seo-project-setup

    Set up a durable local SEO workspace with project context, notes, goals, positioning, preferences, MCP checks, and Search Console data intake.

    Also in 11 projects that use this

  • appeekySkill

    app-marketing-context

    When the user wants to create or update their app marketing context document. Also use when the user mentions "app context", "marketing brief", "app positioning", or when starting any ASO or app marketing project. This is the foundation skill — all other skills check for this context first.

    Also in 6 projects that use this

  • appeekySkill

    metadata-optimization

    When the user wants to optimize App Store metadata — title, subtitle, keyword field, or description. Also use when the user mentions "optimize my title", "ASO metadata", "keyword field", "character limits", "app description", or "write my subtitle". For keyword discovery, see keyword-research. For full ASO audits, see aso-audit.

    Also in 6 projects that use this

  • JwuthriSkill

    openseo-release-notes

    Cut an OpenSEO release — bump the version, draft user-facing release notes from commits since the last tag, run a review + subagent-verification pass, and open a "release: vX.X.X" PR. Use when the user asks to prepare a release, bump the version, or write release notes.

    Also in 6 projects that use this

  • akii-technologies-ltdSkill

    keyword-clustering

    Cluster and organize keywords into topical groups for SEO. Use when the user asks to "cluster keywords", "group keywords", "organize keywords", "keyword mapping", "topic clusters", "keyword grouping", "build a content plan", "pillar pages", "topical authority", "semantic clustering", or pastes a list of keywords.

    Also in 11 projects that use this

  • MicrosoftSkill

    competitive-landscape

    Use when a branch manager asks something like \"Who are we up against in each metro\"

    Also in 11 projects that use this

  • +5 more from Jwuthri
  • +1 more from appeeky

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 53 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If rivals cluster in a different (or less crowded) category, flag it — category choice is an ASO lever.

    line 61

“Common” is measured: kept by at least 6 in 10 of the 53 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Competitor Analysis

Position the app against the rivals ASOScan tracks — where it's ahead, where it's behind, and the single biggest lever — using real rank, rating, and keyword data.

When to use

  • "Compare my app to my competitors."
  • "Add <store URL> as a competitor."
  • "What category do my competitors use / how's my category rank vs theirs?"

Getting the data (two modes)

Pick the first mode that applies, then follow the steps below.

  1. ASOScan tools are connected (the ASOScan plugin or connector in ChatGPT or Claude, or any MCP client): use the tool named in the table. Do not ask for an API key and do not run curl. Tool results have the same fields as the API responses below, and a list comes back inside items. If a tool answers with a message instead of data (reconnect, credits used up, plan limit, "preparing"), pass that message on and stop.
  2. No tools, but you can run shell commands and ASOSCAN_API_KEY is set: make the API call in the table. Base https://asoscan.com/api/public/v1, header Authorization: Bearer $ASOSCAN_API_KEY, JSON with camelCase fields. Never print the key. Capture the HTTP status and handle errors as described at the bottom.
  3. Neither: hand off to asoscan-setup. It explains how to connect ASOScan in ChatGPT or Claude, or how to create an API key.

ASOScan only sees the apps in the user's own account and the competitors they track. Every call uses API credits (failed calls are free). Before a call that costs more than 2 API credits, or one that uses AI, tell the user the cost and wait for a yes. Before any call that changes data, ask first.

StepTool (connected)API call (key)API credits
Find the applist_my_appsGET /appsfree
One app's facts (category, rating)get_app_detailsGET /apps/{id}free
Competitorsget_competitorsGET /apps/{id}/competitors?country=free
Add a rival by store link (changes data)add_competitorPOST /apps/{id}/competitors with { "storeUrl": "..." }2, ask first
Category rank over timeget_category_rankGET /apps/{id}/category-rank?country=&days=30free
Rating historyget_rating_historyGET /apps/{id}/rating-historyfree

Steps

  1. Find the app — GET /apps → { id, name, category, rating, … } (your own category is here).
  2. Competitors — GET /apps/{id}/competitors?country= (free) → [{ id, name, developer, iconUrl, rating, ratingCount, category }]. The category is each competitor's primary store category — this answers "what category do my competitors use?" (only the primary is exposed, not Apple's secondary).
  3. Add a rival (if asked) — POST /apps/{id}/competitors { "storeUrl": "…" } (2 credits, write key). Confirm before writing.
  4. Category rank over time — GET /apps/{id}/category-rank?country=&days=30 (free) → { category, country, rankType, currentRank, points[]{ date, rank } }.
  5. Rating trajectory — GET /apps/{id}/rating-history (free) → [{ rating, totalRatings, date }].
  6. Keyword overlap — pair with keyword-spy on each competitor for the gap list.

Category-rank and rating-history are per-app; to compare a competitor, run the same reads on that competitor's app id (it must be a tracked competitor).

How to analyze

  • Category placement — list each competitor's primary category next to yours. If rivals cluster in a different (or less crowded) category, flag it — category choice is an ASO lever.
  • Rank momentum — climbing or sliding over the window (points)? A point exists only for a date that was measured, so rank: null means measured and not in the tracked chart — say "not charting yet", never "no data". Unmeasured dates are absent, so a 30-day window may return fewer than 30 points. An app whose points are all null is not broken data: it hasn't broken into the chart, and volume/authority is the lever, not metadata.
  • Rating gap — average rating and its direction vs competitors.
  • Keyword gap (highest-leverage) — relevant terms rivals win that you don't target (from keyword-spy), ranked by relevance × volume.
  • Positioning — one honest line (leader / challenger / niche) + the biggest lever.

Output template

### Competitive position — {App} ({country})   ·  credits left: {remaining}

| App | Category | Category rank (now → {N}d ago) | Rating (now → trend) |
|---|---|---|---|
| {you} | {your category} | … | … |
| {competitor} | {their category} | … | … |

**Keyword gaps** (they rank, you don't — relevant): …
**Biggest lever:** {one specific move}
**Next in ASOScan:** run `keyword-spy` per competitor, then `keyword-opportunities` + `metadata-audit`.

Errors, credits & honesty

  • 401 → asoscan-setup · 403 no API access (or read-only key on the add) · 402 out of credits · 404 not tracked · 503 not enabled yet. Reads here are free; only adding a competitor costs credits.
  • Compete on breadth, coverage, and momentum. Clean numbers — don't concede a rival's data is "more accurate", and don't claim a tactic guarantees a rank change.
  • Full reference: https://asoscan.com/api/developers

Related

  • keyword-spy — reverse-lookup each competitor's keywords.
  • keyword-opportunities — turn gaps into a tracked target list.
  • review-insights — compare what users say (add rivals as competitors first).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.