Free resources
Free Kit

The AI Review-Mining Kit

Turn 1★ reviews into 5★ updates and keywords: export, cluster, reply, ship and say "What's New" in your users' own words.

By Dheeraj Sharma, Founder of GROWNX, indie developer with multiple live iOS apps

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:

  1. A product roadmap. The same complaint repeated 20 times is a priority, not a mood.
  2. Keywords in user language. People search the way they write reviews ("track protein without typing", not "AI-assisted macro logging").
  3. 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

Competitors

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)

  1. Export new reviews and run Prompts 1–2.
  2. Compare theme counts with last month. Did the theme you fixed shrink?
  3. Move phrases from Prompt 4 into your keyword shortlist and validate them against real volume.
  4. Update the competitor weakness map (Prompt 5) and turn any new weakness you solve into a screenshot headline test.
  5. 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 →

More free resources