agentleFS
ASOScanASOScan/aso-skills/skills/metadata-audit/SKILL.md

metadata-audit

Skill7 starsChanged 4 months agoMITView on GitHub

When the user wants to audit or improve an app's store listing metadata using ASOScan (the current title, subtitle/short description, description, keyword field, and what's-new, plus ASOScan's ASO score and recommendations and the change history), then draft specific, honest improvements within the platform's character limits. Also use when the user mentions "audit my listing", "improve my metadata", "optimize my title/subtitle/description", "what's my ASO score", "rewrite my app store copy", or "what changed in my listing", or wants listing text drafted for another language ("translate my listing", "localize my listing"). For choosing which keywords to target, see keyword-opportunities.

  • Reads credentials

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. gmanch94/claude-code-aidlc-template★ 2same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository8 other files it gives its agents.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 4 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    If a limit is decision-critical, verify against Apple's/Google's official docs first.

    line 77
  2. Very specific:

    Use ASOScan's overall + pillar scores as the quantitative backbone.

    line 81
  3. Distinctive:

    Every suggestion must be concrete (exact text + char count) and tied to a real keyword or conversion reason.

    line 117
  4. Distinctive:

    Use this when the user wants their listing in another language or country.

    line 122
  5. Distinctive:

    Read the saved drafts first.

    line 124
  6. Very specific:

    If the answer says ASOScan is preparing the keyword data for that market, nothing was charged.

    line 126
  7. Very specific:

    No invented claims/awards/"#1" superlatives (also banned in Google titles).

    line 136

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “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

Metadata Audit

Score the listing with ASOScan's ASO score, find the gaps, and draft better copy — specific, within limits, and honest.

When to use

  • "Audit / optimize my app listing." · "What's my ASO score and how do I raise it?"
  • "Rewrite my title / subtitle / description." · "What metadata changed recently?"

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
ASO scoreget_aso_scoreGET /apps/{id}/aso-score?country=free
ASOScan recommendationsget_aso_recommendationsGET /apps/{id}/recommendationsfree
Current listing textget_listing_metadataGET /apps/{id}/metadata?country=free
Change historyget_metadata_changelogGET /apps/{id}/metadata/changelog?country=free
Saved drafts for other languageslist_localized_draftsGET /apps/{id}/localizations/draftsfree
Draft listing text for another language (AI)draft_localized_metadataPOST /apps/{id}/localizations/{locale}/draft2 + 1 AI credit, say the cost first

Steps

  1. Find the app — GET /apps → note the id and platform (Apple vs Google — the rules differ).
  2. ASO score (authoritative) — GET /apps/{id}/aso-score?country= (free) → { overall, metadata, ratings, conversion, conversionIsProxy, grade, platform, recommendations[]{ category, severity, title, description } } (0–100; severity critical|warning|info). Use this as the headline number; don't invent one.
  3. Recommendations (get_aso_recommendations or GET /apps/{id}/recommendations) → { items[]{ id, status, platform, category, priority, title, why, how, expectedImpact, updatedAt }, generatedAt }. Lead with the highest priority items and use their why and how in your field-by-field advice.
  4. Current metadata: GET /apps/{id}/metadata?country= (free) → { title, subtitle, promotionalText, keywords, shortDescription, description, whatsNew, releaseDate }. A 404 = nothing captured yet.
  5. Change history: GET /apps/{id}/metadata/changelog?country= (free) → [{ field, oldValue, newValue, changedAt, oldVersion, newVersion }].
  6. Target keywords: pull winners from keyword-opportunities / keyword-intelligence.

Platform rules to enforce (Apple/Google official, current)

Apple — indexed search text = Title + Subtitle + hidden Keyword field (+ primary category):

  • Title 30 chars, Subtitle 30 chars, Keyword field 100 characters (non-Latin scripts consume it faster).
  • Keyword field: commas between terms (a space is allowed within a phrase but costs a character — most list single words and let Apple recombine them across name + subtitle + keywords).
  • Don't repeat a word already in Title/Subtitle/category; skip plurals of included words, generic terms (app, game), filler (the, to), and competitor/trademarked terms.
  • Long description is NOT indexed for Apple search — optimize it for conversion. Promotional text (170 chars) isn't a search signal (but updates anytime, no release).
  • Screenshots: the first 1–3 appear in search results.

Google — indexed search text = Title + Short description + Full description:

  • Title 30 chars, Short description 80 chars, Full description 4,000 chars and it is indexed — weave keywords in naturally (Google penalizes stuffing).
  • Title bans: emojis, ALL CAPS, "best/#1/free", CTAs.
  • Screenshots: up to 8 per device type.

If a limit is decision-critical, verify against Apple's/Google's official docs first.

The audit

Use ASOScan's overall + pillar scores as the quantitative backbone; weight your emphasis toward the lowest pillar. Grade Title/Subtitle, Description, Keywords, Ratings, Conversion (conversionIsProxy: true = estimated until store analytics are connected), and Freshness.

Always print a score with its denominator. overall is out of 100; metadata, ratings and conversion are each out of 25. A bare "metadata 25" reads as a failing grade when it is in fact a perfect one.

Know what the pillars measure. metadata scores completeness and limit compliance — is each indexed field present, and does it use a sensible share of its character budget. It does not judge whether the copy is any good: nothing checks that the title carries a term users search, or that the subtitle states a benefit rather than a slogan. conversion is the same shape — it counts assets like screenshots and cannot see what is in them. So never tell the user a 25/25 means their copy is optimal; say the fields are complete and in-limit, then do the quality read yourself in the field-by-field section below. That judgement is the value you add on top of the score.

Output template

### Metadata audit — {App} · {platform} ({country})   ·  credits left: {remaining}

**ASO score: {overall}/100 ({grade})**  (metadata {metadata}/25 · ratings {ratings}/25 · conversion {conversion}/25)

**Top 3 quick wins (<1h):** 1) {exact new text + char count}  2) …

**Field-by-field**
- **Title** ({used}/30): "{current}" → "{new}" ({N} chars) — {why}
- **Subtitle/Short** ({used}/{30|80}): "{current}" → "{new}" — {why}
- **Keywords** (Apple, {used}/100): "{current}" → "{new}" — no dupes vs title/subtitle
- **Description / What's new:** {fix}

**ASOScan recommendations:** {surface each by severity}

Every suggestion must be concrete (exact text + char count) and tied to a real keyword or conversion reason. Point the user back to ASOScan to re-score after edits.

Listing text for another language

Use this when the user wants their listing in another language or country.

  1. Read the saved drafts first. If one exists for that locale, show it before writing a new one.
  2. Tell the user a new draft costs 2 API credits and 1 AI credit, then call it with the store locale (for example de-DE, fr-FR, es-ES).
  3. If the answer says ASOScan is preparing the keyword data for that market, nothing was charged. Tell the user to ask again in a minute. Use force (the tool's force input, or ?force=true) only when the last "preparing" answer is several minutes old.
  4. Show each variant with its character counts against the platform limits above. The draft is saved in ASOScan. ASOScan does not publish listing text to the stores; the user copies it into App Store Connect or Google Play Console.

Describe the benefit only as Apple documents it: localized name, subtitle and keywords are searchable in every storefront that supports that language, so more people can find the app. Never say a translation raises keyword rank.

Errors, credits & honesty

  • 401 → asoscan-setup · 403 no API access · 402 out of credits · 404 no metadata yet · 503 not enabled yet. Reads here are free; only drafting a localized listing costs credits (2 API + 1 AI).
  • No invented claims/awards/"#1" superlatives (also banned in Google titles). Respect limits exactly. Recommend the outcome, not a guaranteed rank.
  • Full reference: https://asoscan.com/api/developers

Related

  • keyword-opportunities / keyword-intelligence — choose the keywords to target.
  • competitor-analysis — benchmark against rivals.
  • review-insights — turn recurring confusion into clearer copy.

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.