ai
3 мин
27 октября 2026 г.
Источник: Dev.to AI Feed

How to find what users hate in competitor apps (App Store reviews + AI, with Python)

JackFruit296
JackFruit296
RSS AI Ingest
How to find what users hate in competitor apps (App Store reviews + AI, with Python)

Before you build a feature, your users have usually already told you what they want. They just told your competitors, in 1-star reviews. I wanted a fast way to read those reviews for any app category and get a ranked list of pain points, qu...

Before you build a feature, your users have usually already told you what they want. They just told your competitors, in 1-star reviews. I wanted a fast way to read those reviews for any app category and get a ranked list of pain points, questions and objections, each linked back to the original review. This post shows the free DIY way in Python, then the shortcut I ended up building. Step 1: Find the top apps for a topic (free, no API key) Apple's iTunes Search API is public. One request gives you the top apps for a keyword: import requests def search_apps(term, country="us", limit=5): r = requests.get("https://itunes.apple.com/search", params={ "term": term, "country": country, "entity": "software", "limit": limit, }, timeout=20) r.raise_for_status() return [ {"id": a["trackId"], "name": a["trackName"], "ratings": a.get("userRatingCount", 0)} for a in r.json()["results"] ] apps = search_apps("habit tracker") for a in apps: print(a["name"], a["ratings"]) Step 2: Pull recent reviews from the RSS feed Each app has a public customer-reviews feed in JSON, about 50 reviews per page and up to 10 pages: def get_reviews(app_id, country="us", pages=2): out = [] for page in range(1, pages + 1): url = (f"https://itunes.apple.com/{country}/rss/customerreviews/" f"page={page}/id={app_id}/sortby=mostrecent/json") entries = requests.get(url, timeout=20).json().get("feed", {}).get("entry", []) if isinstance(entries, dict): entries = [entries] for e in entries: if "im:rating" not in e: continue # the first entry can be app metadata out.append({ "rating": int(e["im:rating"]["label"]), "text": e["content"]["label"], "version": e.get("im:version", {}).get("label"), }) return out reviews = [r for a in apps for r in get_reviews(a["id"])] critical = sorted([r for r in reviews if r["rating"] ") run = client.actor("jaclfruit_296/audience-radar-actor").call(run_input={ "topic": "habit tracker", "sources": ["app_store", "google_play"], "country": "us", }) for item in client.dataset(run["defaultDatasetId"]).iterate_items(): print(item["type"], item["score"], item["insight"], "|", item["evidenceQuote"]) It's pay per result (about $0.003 per review analyzed), so a run like the one above costs roughly $0.20. You can also point it at a dataset from any other scraper and it will analyze that text instead. Wrap-up Competitor 1-star reviews are the cheapest user research you'll ever do. Always keep the link from insight to evidence, or you can't trust the output. Read the top 10 quotes yourself before you decide anything. If you're validating a whole new app idea rather than a feature, I wrote a follow-up: How to check an app idea against real App Store data before you build it (link it here once it's live). What do you use to research competitors before building? I'd love to hear other approaches in the comments.

Хотите внедрить ИИ в ваш бренд?

Спроектируем и развернем автономных агентов и современный цифровой стек под ваши задачи.

Рассчитать проект