skills/aso-audit/SKILL.md
When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions 'ASO audit,' 'app store optimization,' 'optimize my app listing,' 'improve app visibility,' 'app store ranking,' 'audit my listing,' 'why aren't people downloading my app,' 'improve my app conversion,' 'keyword optimization for app,' or 'compare my app to competitors.' Use when the user shares an App Store or Google Play URL and wants to improve it.
npx skillsauth add coreyhaines31/marketingskills aso-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Analyze App Store and Google Play listings against ASO best practices. Fetches live listing data, scores metadata, visuals, and ratings, then produces a prioritized action plan.
Check for product marketing context first:
If .agents/product-marketing-context.md exists (or .claude/product-marketing-context.md in older setups), read it before asking questions. Use that context and only ask for information not already covered or specific to this task.
Apple: apps.apple.com/{country}/app/{name}/id{digits}
Google: play.google.com/store/apps/details?id={package}
If the user gives an app name instead of a URL, search the web for:
site:apps.apple.com "{app name}" or site:play.google.com "{app name}"
Use WebFetch to retrieve the listing page. Extract every available field:
Apple App Store fields:
Google Play fields:
If WebFetch returns incomplete data (stores render client-side), note gaps and work with what's available. Ask the user to paste missing fields if critical.
WebFetch cannot extract screenshot images or caption text. Take a screenshot of the listing page to get visual data:
Promotional text (Apple): This 170-char field appears above the description but is often indistinguishable from it in scraped HTML. If you cannot confirm its presence, note this and recommend the user check App Store Connect.
Before scoring, classify the app into one of three tiers. This determines how you interpret "textbook ASO" deviations — a deliberate brand choice by a household name is not the same as a missed opportunity by an unknown app.
| Tier | Signals | Examples | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------- | | Dominant | Household name, 1M+ ratings, top-10 in category, near-universal brand recognition. Users search by brand name, not generic keywords. | Instagram, Uber, Spotify, WhatsApp, Netflix | | Established | Well-known in their category, 100K+ ratings, strong organic installs, recognized brand but not universally known. | Strava, Notion, Duolingo, Cash App, Calm | | Challenger | Building awareness, <100K ratings, needs discovery through keywords and ASO tactics. Most apps fall here. | Your app, most indie/startup apps |
Dominant apps get adjusted scoring in these areas:
Established apps get partial adjustment:
Challenger apps are scored strictly against textbook ASO best practices — every character, screenshot, and keyword matters.
Key principle: Before docking points, ask: "Is this a mistake or a deliberate choice by a team that has data I don't?" If the app has 1M+ ratings and a dedicated ASO team, assume their choices are data-informed unless clearly wrong.
Score each dimension 0-10 using the criteria in references/scoring-criteria.md.
Apply the brand maturity tier adjustments from Phase 1.5.
Reference files for platform specs and benchmarks:
references/apple-specs.md — Official Apple character limits, screenshot/video specs, CPP/PPO rules, rejection triggersreferences/google-play-specs.md — Official Google Play limits, screenshot specs, Android Vitals thresholds, policiesreferences/benchmarks.md — Conversion data, rating impact, video lift, screenshot behavior, CPP/event benchmarks| # | Dimension | Weight | What It Covers | | --- | -------------------- | ------ | ------------------------------------------------------------------------- | | 1 | Title & Subtitle | 20% | Character usage, keyword presence, clarity, brand + keyword balance | | 2 | Description | 15% | First 3 lines, keyword density (Google), CTA, structure, promotional text | | 3 | Visual Assets | 25% | Screenshot count/quality/messaging, video, icon, feature graphic | | 4 | Ratings & Reviews | 20% | Average rating, volume, recency, developer responses | | 5 | Metadata & Freshness | 10% | Category choice, update recency, localization count, data safety | | 6 | Conversion Signals | 10% | Price positioning, IAP transparency, social proof, download range |
Final score = weighted sum, out of 100.
| Score | Grade | Meaning | | ------ | ----- | --------------------------------------------------------- | | 85-100 | A | Well-optimized; focus on A/B testing and iteration | | 70-84 | B | Good foundation; clear opportunities to improve | | 50-69 | C | Significant gaps; prioritized fixes will have high impact | | 30-49 | D | Major optimization needed across multiple dimensions | | 0-29 | F | Listing needs a complete overhaul |
If the user provides competitor URLs or asks for comparison:
If no competitors are specified, suggest the user provide 2-3 or offer to search for top apps in their category.
Use the template in references/report-template.md to structure the output.
The report must include:
references/apple-specs.md for full specs, dimensions, and rejection triggersreferences/google-play-specs.md for full specs and policy details| Field | Apple Indexed? | Google Indexed? | | --------------------- | ---------------- | ---------------------- | | Title | Yes | Yes (strongest signal) | | Subtitle / Short desc | Yes | Yes | | Keyword field | Yes (hidden) | Does not exist | | Long description | No | Yes (heavily) | | Screenshot captions | Yes (since 2025) | No | | In-app events | Yes | N/A (LiveOps instead) | | Developer name | No | Partial | | IAP names | Yes | Yes |
Flag these if found. Items marked (tier-dependent) should be evaluated against the app's brand maturity tier — they may be deliberate choices for Dominant apps.
Always flag (all tiers):
Flag for Challenger/Established only (not mistakes for Dominant apps):
Flag for all tiers but note context:
development
When the user wants to plan, run, sponsor, speak at, or get pipeline from events — webinars, conferences, trade shows, meetups, dinners, workshops, virtual summits, or user conferences. Also use when the user mentions 'event marketing,' 'field marketing,' 'run a webinar,' 'webinar funnel,' 'show-up rate,' 'should we sponsor,' 'sponsor a conference,' 'trade show booth,' 'booth strategy,' 'event ROI,' 'badge scans,' 'event follow-up,' 'speaking slot,' 'CFP,' 'conference talk,' 'host a dinner,' 'user conference,' or 'virtual summit.' Covers all four roles: hosting, sponsoring/exhibiting, speaking, and attending. For product launch moments, see launch. For the partnership side of joint webinars, see co-marketing. For ongoing community programs, see community-marketing. For podcast appearances, see public-relations. For the email sequences themselves, see emails.
development
When the user wants to design, construct, or improve an offer — the thing they actually sell — including value framing, bonus stacking, guarantee design, scarcity/urgency, naming, and payment structure. Also use when the user mentions 'offer,' 'offer design,' 'build an offer,' 'grand slam offer,' 'irresistible offer,' 'value stack,' 'bonus stack,' 'guarantee,' 'risk reversal,' 'money-back guarantee,' 'scarcity,' 'urgency,' 'high-ticket offer,' 'productize a service,' 'naming an offer,' 'payment plan,' 'down-sell,' 'upsell offer,' or 'why isn't my offer converting.' Best for services, agencies, courses, coaching, info products, high-ticket B2B, and direct-response. If you run pure self-serve SaaS, read pricing first — tiers and packaging do more work there. For price level itself (tiers, freemium, value metric), see pricing. For the page that presents the offer, see copywriting. For the launch moment, see launch. For sales collateral, see sales-enablement.
development
When the user wants help with public relations, earned media, press coverage, journalist outreach, or media strategy (not pull requests). Also use when the user mentions 'PR,' 'public relations,' 'press,' 'press release,' 'press coverage,' 'media outreach,' 'pitch a journalist,' 'get featured,' 'media list,' 'media kit,' 'press kit,' 'newsjacking,' 'news hijack,' 'HARO,' 'Qwoted,' 'Featured,' 'Help A Reporter,' 'reporter request,' 'tech press,' 'TechCrunch,' 'earned media,' 'thought leadership placement,' 'op-ed,' 'guest article,' 'press contacts,' 'podcast prep,' 'going on a podcast,' 'podcast guest,' 'prep me for this podcast,' or 'how do I get press.' Use this for earned media work — finding journalists, pitching stories, newsjacking, prepping podcast appearances, and responding to press requests. For startup/SaaS/AI directory submissions, see directory-submissions. For product launches, see launch. For social-media engagement, see social. For cold-email outreach to prospects, see cold-email.
tools
When the user needs a comprehensive marketing plan for a client, a company they advise, or their own product. Also use when the user mentions "marketing plan," "growth plan," "GTM plan," "go-to-market plan," "AARRR plan," "90-day marketing plan," "12-month marketing roadmap," "fractional CMO plan," or "fCMO plan." Generates an exhaustive 13-section plan structured by AARRR (Acquisition, Activation, Retention, Referral, Revenue), customized to the client's current budget, team, and stage, mapped to future funding milestones, cross-referenced with the 139-idea marketing-ideas library and an embedded 17-section current-state audit rubric, with a full marketing operations stack showing which skills and MCP/API integrations execute each part. Outputs a Notion-paste-ready markdown document. For positioning and ICP context before planning, see product-marketing. For stage-specific deep work, see onboarding, signup, emails, referrals, pricing.