---
name: app-review-intelligence
description: Turn App Store and Google Play reviews into product intelligence — pain points, praises, opportunities, competitor gaps, and rating trends — using the ParseMyApp MCP server. Use when asked to research an app's users, diagnose a rating drop, find what users hate about a competitor, validate a product idea against real demand, or mine review language for ASO copy.
---

# App Review Intelligence

Real user reviews are the largest source of unfiltered product feedback that exists, and almost nobody reads them. This skill turns them into decisions.

## Setup

Requires the ParseMyApp MCP server: `https://www.parsemyapp.com/mcp`

No API key, no account. Add it as a custom connector (Claude: Settings → Connectors → Add custom connector).

## Tools

| Tool | Use it for | Cost |
|---|---|---|
| `search_app(term, store, country, limit)` | Resolving an app name to a store ID. Always call first unless you already have the ID. | Cheap |
| `get_reviews(app_id, store, country, limit)` | Raw reviews as JSON. Up to 500 per app. | Cheap, cached |
| `get_quotes(app_id, store, country, theme, limit)` | Only the reviews mentioning a keyword. Literal substring match, no model call. | Cheap |
| `trend_diff(app_id, store, country, weeks)` | Week-over-week rating and volume, with direction. | Cheap |
| `analyze_app(app_id, store, country, app_name, limit)` | The full structured analysis in one call, computed server-side. | Rate limited |

`store` is `"ios"` or `"android"`. `app_id` is the numeric App Store ID or the Play Store package name.

## Choosing the right path

**Want the finished analysis?** Call `analyze_app`. One call, returns structured JSON, costs you nothing but the result tokens.

**Want to reason over the evidence yourself?** Call `get_reviews`, then apply the `analyze_app_reviews` prompt. Slower and more tokens, but you control the framing and can follow threads the fixed schema misses.

**Answering a narrow question** ("do people complain about the price?") — use `get_quotes`, not `get_reviews`. It returns ~20 relevant quotes instead of 500 reviews. This is usually a 20x token saving.

**Diagnosing a rating drop** — start with `trend_diff` to find *when*, then `get_quotes` on themes from that window to find *why*.

## Workflows

### Competitor teardown
1. `search_app` for the competitor → get `app_id`
2. `analyze_app` → pain points, competitor gaps, contradictions
3. Lead with the pain points that appear in 1★–2★ reviews at high frequency: those are the wedge

### Rating-drop post-mortem
1. `trend_diff(weeks=12)` → find the week the average broke
2. `get_quotes` on candidate themes ("crash", "update", "login", "battery")
3. Correlate the complaint spike with the release date; report the root cause, not the symptom

### Pre-launch demand validation
1. `search_app` the 3–5 incumbents in the category
2. `analyze_app` each
3. Look for pain points shared across *all* of them — those are category-level failures nobody has fixed, which is where a new entrant wins

### ASO copy mining
1. `analyze_app` a top competitor
2. Pull the `praises` section — the verbatim quotes are the exact language users search with
3. Use their words in the subtitle and first two screenshots, not your internal feature names

## Rules

- **Never invent a quote.** Every insight must trace to a review actually returned by a tool. If the signal is weak, say so.
- **Frequency beats vividness.** One furious 1★ review is not a trend. Weight by how many reviews share a theme.
- **Separate the symptom from the cause.** "App is slow" is a symptom. "Image prefetch blocks first paint on cold start" is a cause. Only causes are actionable.
- **Reviews skew negative.** People write reviews when angry or delighted, rarely when satisfied. Do not read the rating distribution as the user base's true sentiment.
- **Check the country.** Reviews are per-storefront. A US-only fetch tells you nothing about why the app is failing in Brazil.

## Limits worth stating out loud

- The App Store caps at roughly 500 reviews regardless of the limit you pass, and those skew recent.
- `get_quotes` matches literal substrings, not meaning — "costly" will not match a search for "expensive".
- Reviews are self-selected, not a sample. Treat them as a source of hypotheses, not as measurement.
