Why reviews are the best ASO data you're ignoring
Reviews are the only place where users describe your app, and your competitors' apps, in their own words, unprompted. That gives you three things no keyword tool can:
- A product roadmap. The same complaint repeated 20 times is a priority, not a mood.
- Keywords in user language. People search the way they write reviews ("track protein without typing", not "AI-assisted macro logging").
- A competitor weakness map. A competitor's 1★ reviews tell you exactly what to build, and say, to win their unhappy users.
This kit gives you the workflow, a CSV template (04-review-mining-template.csv), prompts that work in Claude, Gemini and Grok, reply scripts and a "What's New" generator.
Step 1: Export reviews (yours and competitors')
Your own app
- App Store Connect → your app → Ratings and Reviews. Fine for reading and replying. For bulk export, use the API option below.
- App Store Connect API: the
customerReviewsendpoint for your app returns rating, title, body, territory and date, and you can post replies through the API as well. You'll need an API key from App Store Connect (Users and Access → Integrations).
Competitors
- The App Store product page shows a selection of recent reviews. Copy them into the template by hand. Slow, but 30–50 reviews per competitor is enough to see the patterns.
- A note on the old public RSS reviews feed: many tutorials point to
itunes.apple.com/{country}/rss/customerreviews/.... It's unofficial and undocumented. When I tested it on 10 October 2026 it returned no reviews, so don't build a workflow on it.
How many: 100–200 of your own (or all of them, if you have fewer) plus 50–100 per competitor for your 2–3 closest competitors. Focus on the last 6–12 months so you aren't fixing problems you already solved.
Step 2: Fill in the CSV template
04-review-mining-template.csv has these columns:
| Column | What goes in it |
|---|---|
app |
Your app or competitor name |
is_mine |
yes / no |
country |
Storefront, e.g. US |
date |
YYYY-MM-DD |
rating |
1–5 |
title |
Review title |
body |
Review text |
app_version |
If known |
theme |
Filled by AI in step 3 |
sentiment |
positive / mixed / negative (AI) |
type |
bug / missing feature / pricing / UX / expectation mismatch / praise (AI) |
user_phrases |
Exact phrases worth testing as keywords (AI) |
replied |
yes / no |
action |
What you'll do about it |
Step 3: The prompts
Upload or paste the CSV, then run these in order. They work in Claude (Projects are ideal), Gemini (or =AI() cells in Sheets) and Grok.
Prompt 1: Tag every review
Here is a CSV of App Store reviews. For each row, fill in: theme (a short label, reuse labels where possible, maximum 12 themes in total), sentiment (positive/mixed/negative), type (bug, missing feature, pricing, UX, expectation mismatch, praise), and user_phrases (up to 3 exact phrases from the text that describe what the user wanted or the problem). Return the full CSV with those columns filled. Don't change any other columns.
Prompt 2: Sentiment clusters
Using the tagged CSV, make a table for MY app only (is_mine = yes): Theme | # reviews | % of 1–3★ reviews | Avg rating | Representative quote | Type. Sort by number of reviews. Then write 3 sentences on what's driving my low ratings. Use only the data given and don't speculate beyond it.
Prompt 3: Feature gaps
From all reviews (mine and competitors'), list every feature request or "I wish it could…" statement. Group them and count. For each group: which apps it was asked of, whether MY app already has it (I'll tell you my features: [LIST]), and a one-line spec of the smallest version that would satisfy users.
Prompt 4: Keyword phrases users actually say
From the user_phrases column and review text, extract the phrases people use to describe (a) the problem, (b) the outcome they want, (c) the app category in their own words. Convert each into a likely App Store search query of 1–4 words. Return: Phrase | Search query | How many reviews used similar wording | Already in my title/subtitle? (my title: "[TITLE]", subtitle: "[SUBTITLE]").
Prompt 5: Competitor weakness map
For each competitor in the CSV, list their top 5 complaint themes with counts and one quote each. Then make a table: Competitor weakness | How many reviews | Does my app solve it? (my features: [LIST]) | How I'd say it in a screenshot headline (max 6 words, don't name the competitor) | Keyword angle.
Prompt 6: Expectation mismatches
Find reviews where the user expected something the app doesn't do ("I thought it would…", "not what I expected", "misleading"). For my app, quote them, then look at my listing text below and tell me which line most likely set the wrong expectation and how to rewrite it.
Listing: [PASTE TITLE, SUBTITLE, FIRST 3 LINES OF DESCRIPTION, SCREENSHOT HEADLINES]
Grok bonus: check the conversation outside the App Store
Search recent posts on X about [COMPETITOR APP] and [MY APP CATEGORY] apps. What are people complaining about or asking for that also appears in this list of review themes: [PASTE THEMES]? Is anything new showing up on X that isn't in the reviews yet? Link the posts you base this on.
Step 4: Reply to reviews (templates)
Replies are public. Write for the reviewer and for every future user reading them. Users are notified when you reply and can update their review.
The structure: thank them → name their specific issue → say what you did or will do (and when) → give them a direct line.
Template A: bug, now fixed
Thanks for flagging this, [Name/there]. The [specific issue] was a bug and it's fixed in version [X.X], out now. If it still happens after updating, email me at [support email] and I'll look at it personally.
Template B: bug, fix in progress
Sorry about this. [Specific issue] shouldn't happen. We've reproduced it and a fix is coming in the next update ([timeframe if you know it]). I'll reply here when it's live.
Template C: missing feature
Thank you. You're not the first to ask for [feature], and it's on the roadmap. [If true: it's planned for [month].] Until then, [workaround if one exists].
Template D: pricing complaint
Fair point, and thanks for saying it. [What's free: e.g. "Basic logging is free forever"]. The subscription covers [what it pays for]. If you hit the paywall somewhere that feels unfair, tell me where at [support email].
Template E: expectation mismatch
Thanks for the honest review. [App] is built for [what it does], not [what they expected], and we've updated the App Store description so that's clearer. Sorry it wasn't a fit.
Template F: a positive review
This made my day, thank you! If there's one thing you'd add, I'd love to hear it at [support email].
Prompt 7: Draft replies in bulk
Draft App Store replies for these reviews using this structure: thank → name their specific issue → what we did/will do → direct contact ([SUPPORT EMAIL]). Max 350 characters each. Facts you can use: [FIXED IN VERSION X: …; PLANNED: …; NOT PLANNED: …]. Never promise anything not in those facts. Vary the first words of each reply.
Reviews: [PASTE]
Step 5: "What's New" in users' own words
When you ship a fix for a top theme, say so in the user's language. It reassures people who complained and tells new visitors that you listen.
Prompt 8: "What's New" generator
I shipped these changes in version [X.X]: [CHANGES]. These reviews asked for them: [PASTE 3–10 REVIEWS]. Write "What's New" text in 3 versions: (1) one line, (2) three short lines, (3) a friendly five-line version. Lead with the user benefit using phrases from the reviews. Never write "bug fixes and performance improvements" on its own.
Example shape (fill with your own change):
You asked, we built it: [feature in users' words]. [Second improvement in plain words]. Thanks to everyone who left a review. Keep them coming.
Step 6: Close the loop (monthly, 30 minutes)
- Export new reviews and run Prompts 1–2.
- Compare theme counts with last month. Did the theme you fixed shrink?
- Move phrases from Prompt 4 into your keyword shortlist and validate them against real volume.
- Update the competitor weakness map (Prompt 5) and turn any new weakness you solve into a screenshot headline test.
- Reply to every new 1–3★ review.
Try GROWNX free: Free plan available
Track your ASO in GROWNX. Built by an indie developer with multiple live iOS apps.
Free plan available. Start free.
Start free →