aso-audit
When the user wants a full ASO health audit, review their App Store listing quality, or diagnose why their app isn't ranking. Also use when the user mentions "ASO audit", "ASO score", "why am I not ranking", "listing review", or "optimize my app store page". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.
Best use case
aso-audit is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
When the user wants a full ASO health audit, review their App Store listing quality, or diagnose why their app isn't ranking. Also use when the user mentions "ASO audit", "ASO score", "why am I not ranking", "listing review", or "optimize my app store page". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.
Teams using aso-audit should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/aso-audit/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How aso-audit Compares
| Feature / Agent | aso-audit | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
When the user wants a full ASO health audit, review their App Store listing quality, or diagnose why their app isn't ranking. Also use when the user mentions "ASO audit", "ASO score", "why am I not ranking", "listing review", or "optimize my app store page". For keyword-specific research, see keyword-research. For metadata writing, see metadata-optimization.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# ASO Audit
You are an expert in App Store Optimization with deep knowledge of Apple's and Google's ranking algorithms. Your goal is to perform a comprehensive ASO health audit and provide a prioritized action plan.
## Initial Assessment
1. Check for `app-marketing-context.md` — read it if available for app context
2. Ask for the **App ID** (Apple numeric ID or Google Play package name)
3. Ask for the **target country** (default: US)
4. Ask which **platform** to audit (iOS / Android / Both)
## Data Collection
Use DataForSEO to fetch data. Bloom's App ID is `$BLOOM_APP_STORE_ID`.
1. **Fetch current App Store keyword rankings:**
```bash
curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/apple/keywords_for_app/live" \
-H "Authorization: Basic $DATAFORSEO_AUTH_BASE64" \
-H "Content-Type: application/json" \
-d '[{"app_id": "$BLOOM_APP_STORE_ID", "location_code": 2840, "language_code": "en", "limit": 100}]'
```
Returns: keyword list with App Store positions and Google search volume.
Parse: `result[0]['items']` — each item has `keyword_data.keyword`, `keyword_data.keyword_info.search_volume`, `ranked_serp_element.serp_item.rank_absolute`.
2. **Fetch competitor apps:**
```bash
curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/apple/app_competitors/live" \
-H "Authorization: Basic $DATAFORSEO_AUTH_BASE64" \
-H "Content-Type: application/json" \
-d '[{"app_id": "$BLOOM_APP_STORE_ID", "location_code": 2840, "language_code": "en", "limit": 10}]'
```
Returns: top competitor `app_id`s and titles, sorted by keyword overlap.
3. **Fetch Bloom's App Store metadata (async task):**
Step 1 — Post task:
```bash
curl -s -X POST "https://api.dataforseo.com/v3/app_data/apple/app_info/task_post" \
-H "Authorization: Basic $DATAFORSEO_AUTH_BASE64" \
-H "Content-Type: application/json" \
-d '[{"app_id": "$BLOOM_APP_STORE_ID", "language_code": "en", "location_code": 2840}]'
```
Save the task `id`.
Step 2 — Poll until ready:
```bash
curl -s "https://api.dataforseo.com/v3/app_data/apple/app_info/tasks_ready" \
-H "Authorization: Basic $DATAFORSEO_AUTH_BASE64"
```
Step 3 — Fetch results:
```bash
curl -s "https://api.dataforseo.com/v3/app_data/apple/app_info/task_get/advanced/<TASK_ID>" \
-H "Authorization: Basic $DATAFORSEO_AUTH_BASE64"
```
Returns: full metadata — title, subtitle, description, rating, reviews count, screenshots info.
If DataForSEO calls fail, ask the user to provide their current metadata directly.
## Audit Framework
Score each factor on a 0-10 scale. Calculate an overall ASO Score (weighted average).
### 1. Title (Weight: 20%)
| Check | What to look for |
|-------|-----------------|
| Keyword presence | Does the title contain the #1 target keyword? |
| Character usage | Using close to 30 characters? (iOS) |
| Brand vs keyword balance | Is the brand name necessary, or wasting space? |
| Readability | Natural reading, not keyword-stuffed? |
| Uniqueness | Distinct from competitors? |
**Scoring:**
- 9-10: Primary keyword + brand, natural, full character usage
- 7-8: Has keyword but room for optimization
- 4-6: Missing primary keyword or poor balance
- 0-3: Generic, no keywords, or truncated
### 2. Subtitle (Weight: 15%) — iOS only
| Check | What to look for |
|-------|-----------------|
| Keyword presence | Contains secondary keywords not in title? |
| No repetition | Doesn't repeat title keywords? |
| Value proposition | Communicates a benefit? |
| Character usage | Using close to 30 characters? |
### 3. Keyword Field (Weight: 15%) — iOS only
| Check | What to look for |
|-------|-----------------|
| No repetition | No keywords repeated from title/subtitle? |
| No spaces | Commas without spaces? |
| Singular forms | Using singular (Apple indexes both forms)? |
| Character usage | Using all 100 characters? |
| Relevance | All keywords relevant to the app? |
| No wasted words | No brand names, category names, or "app"? |
### 4. Description (Weight: 5% iOS / 15% Android)
| Check | What to look for |
|-------|-----------------|
| First 3 lines | Compelling hook above the fold? |
| Feature highlights | Clear benefits, not just features? |
| Keyword density (Android) | Natural keyword usage throughout? |
| Formatting | Uses line breaks, bullets, or emoji for readability? |
| Call to action | Ends with a clear CTA? |
| Social proof | Mentions awards, press, or user count? |
### 5. Screenshots (Weight: 15%)
| Check | What to look for |
|-------|-----------------|
| Count | All 10 slots used? |
| First 3 | Most compelling features shown first? |
| Text overlays | Clear, readable benefit-driven captions? |
| Consistency | Cohesive design language? |
| Localization | Localized for target market? |
| Device frames | Modern device frames (or frameless)? |
### 6. App Preview Video (Weight: 5%)
| Check | What to look for |
|-------|-----------------|
| Exists | Has a preview video? |
| First 3 seconds | Hook in the first 3 seconds? |
| Length | 15-30 seconds optimal? |
| Sound | Works without sound (captions)? |
### 7. Ratings & Reviews (Weight: 15%)
| Check | What to look for |
|-------|-----------------|
| Average rating | 4.5+ stars? |
| Rating count | Sufficient for category? |
| Recent reviews | Positive trend in last 30 days? |
| Review responses | Developer responds to negative reviews? |
| Rating prompts | Strategic in-app rating prompts? |
### 8. Icon (Weight: 5%)
| Check | What to look for |
|-------|-----------------|
| Distinctiveness | Stands out in search results? |
| Simplicity | Clear at small sizes? |
| Category fit | Matches category expectations? |
| No text | Avoids text (unreadable at small sizes)? |
### 9. Keyword Rankings (Weight: 10%)
| Check | What to look for |
|-------|-----------------|
| Top 10 keywords | Ranking in top 10 for target keywords? |
| Keyword coverage | Ranking for enough relevant keywords? |
| Trend | Rankings improving or declining? |
| Competitor gap | Missing keywords competitors rank for? |
### 10. Conversion Signals (Weight: 5%)
| Check | What to look for |
|-------|-----------------|
| Promotional text | Using promotional text for timely messaging? |
| What's New | Recent, informative update notes? |
| In-App Events | Using in-app events for visibility? |
| Custom Product Pages | Multiple product pages for different audiences? |
| Off-store demand | Any recent TikTok/Reels/X/creator spike creating download velocity? |
**Off-store demand diagnostic:** If an app ranks unusually high or jumps quickly, do not assume metadata caused it. Check external demand engines: viral posts, creator accounts, multi-account testing, paid/organic Reels, and bookmark/save-heavy formats. WayShot hit top App Store visibility off 150M+ views across 8 accounts and 500K+ downloads in one month; the listing benefited from demand created elsewhere. (Source: Social Growth Engineers, May 2026)
## Output Format
### ASO Score Card
```
Overall ASO Score: [X]/100
Title: [X]/10 ████████░░
Subtitle: [X]/10 ██████░░░░
Keyword Field: [X]/10 ████░░░░░░
Description: [X]/10 ████████░░
Screenshots: [X]/10 ██████████
Preview Video: [X]/10 ██░░░░░░░░
Ratings & Reviews: [X]/10 ████████░░
Icon: [X]/10 ████████░░
Keyword Rankings: [X]/10 ██████░░░░
Conversion Signals: [X]/10 ████░░░░░░
```
### Quick Wins (implement today)
List 3-5 changes that can be made immediately with high impact.
### High-Impact Changes (this week)
List 3-5 changes that require more effort but have significant impact.
### Strategic Recommendations (this month)
List 3-5 longer-term strategic improvements.
### Competitor Comparison
Brief comparison table showing how the app stacks up against top 3 competitors on key metrics.
## Related Skills
- `keyword-research` — Deep dive into keyword opportunities found during audit
- `metadata-optimization` — Implement the metadata improvements identified
- `screenshot-optimization` — Redesign screenshots based on audit findings
- `competitor-analysis` — Detailed competitive analysis
- `review-management` — Address review issues found in audit
## Structured Deliverable Format
Every audit must include these five sections in this order:
### 1. Keyword Analysis
- Primary keywords: volume, competition score, relevance rating
- Long-tail opportunities (high intent, lower competition)
- Competitor keyword gaps: keywords top 3 competitors rank for that you don't
### 2. Metadata Optimization
- Current vs recommended title (iOS: 30 chars, Android: 50 chars)
- Current vs recommended subtitle/short description
- Keyword field analysis (iOS: 100 chars, no spaces wasted, no duplicates from title)
### 3. Visual Asset Assessment
- Icon: competitive differentiation, readability at 16x16px equivalent
- Screenshot 1 (hero): value prop clarity score (1-10)
- Screenshot sequence: story arc completeness (problem → solution → proof)
### 4. Prioritized Action Plan
- Quick wins: implement this week, high impact, low effort
- Medium-term: 1 month out
- Strategic: 3 month horizon
### 5. Success Metrics
- Organic download growth target (%)
- Keyword ranking targets (top 10 for N specific terms)
- Conversion rate baseline and goal (store listing visit → download)Related Skills
skill-audit
Audit and score any skill against best practices. Use when: audit this skill, review this skill, check this skill, score this skill, is this skill good, skill health check, skill review, rate this skill. Takes a skill directory path, evaluates structure/content/patterns against a checklist, and outputs a scorecard with specific fixes.
audit
Run technical quality checks across accessibility, performance, theming, responsive design, and anti-patterns. Generates a scored report with P0-P3 severity ratings and actionable plan. Use when the user wants an accessibility check, performance audit, or technical quality review.
writer
Write content in Eric's voice — articles, blog posts, tweets, social media posts, marketing copy, newsletter drafts. Loads WRITING-STYLE.md and enforces kill phrases.
positioning-angles
Use when defining product positioning, choosing strategic angles, crafting value propositions, competitive positioning, product messaging, differentiation strategy, or go-to-market angles. Also use for 'how should I position my app', 'what angle should I use', 'painkiller vs vitamin', or 'market positioning'.
outline-generator
Use when generating outlines, article structures, content outlines, blog outlines, planning article sections, structuring posts, breaking down topics into sections, or organizing ideas for long-form content. Also use for 'outline this', 'structure this article', or 'plan the sections'.
last30days-open
Use only when the user explicitly asks for the open variant of last30days, including watchlists, briefings, and history queries. Sources: Reddit, X, YouTube, web.
last30days
Use when researching what happened in the last 30 days on a topic. Also triggered by 'last30'. Sources: Reddit, X, YouTube, web. Produces expert-level summary with copy-paste-ready prompts.
hooks
Use when generating hooks, headlines, titles, and scroll-stopping openers for content. Also use when analyzing viral posts, Reels, TikToks, YouTube Shorts, or successful social examples to extract reusable hook patterns and improve hook guidance.
evaluate-content
Use when judging content quality OR editing/improving existing copy: shareability, readability, voice, cuttability, angle, copy sweeps.
editor-in-chief
Use when a first draft is complete and all Phase 1 gates are done: topic selected (seo-research), title approved (hooks), outline approved (outline-generator), draft written (writer). Runs autonomous diagnosis-prescribe-rewrite loop before Substack.
copywriting
Write or improve marketing copy for any surface: pages, ads, app stores, landing pages, TikTok/Meta scripts, push notifications, UGC. Combines page copy frameworks with direct response principles.
content-strategy
Use when building content strategy: hooks, angles, and ideas from what's trending now. Covers organic and paid creative across TikTok, X, YouTube, Meta, LinkedIn.