Inside the Audit (07/12): How We Find the Competitors That Actually Matter
The Competitor Discovery Engine uses keyword-based search, quality filters, and scoring to surface 10 high-quality competitors for your ASO strategy.
Apptonomy is an ASO intelligence and execution platform. Paste an App Store or Google Play URL, and the platform runs a full audit across multiple specialized engines, delivering scored findings and prioritized recommendations in minutes. For the full picture of how an audit works, read What You Get From an Apptonomy Audit.
The Orchestrator
Behind every audit is the Audit Engine, an orchestrator that spins up each specialized subengine in parallel and synthesizes their findings into a single unified report with an ASO Readiness Score (0-100). The current subengines:
- Keyword Engine
- Store Text Engine
- Screenshot Engine
- Icon Engine
- Sentiment Engine
- Competitor Discovery Engine
- Policy Checker
- Content Engine
- AI Discovery Engine
- Search Term Engine
- Intent Engine
This post covers the Competitor Discovery Engine and how it identifies your real competitive set.
The ASO Problem: Most Teams Are Benchmarking Against the Wrong Apps
Competitor analysis is the foundation that the rest of ASO builds on. Your keyword strategy, screenshot approach, pricing positioning, and listing copy all depend on knowing who you are actually competing against for the same users. Get the competitive set wrong, and every downstream decision is based on the wrong context.
The way most teams pick competitors looks like this: someone on the team names five or six apps they have heard of, checks a category chart, maybe adds a couple more from a “similar apps” section. The list gets saved in a spreadsheet, revisited once a quarter if it gets revisited at all. If your team has never formally mapped its competitive set, that is the norm outside dedicated ASO roles. The manual process is tedious and the tooling assumes you already know who to track. The result is a competitor set shaped by brand awareness and recency bias rather than by who is actually capturing the same search traffic, category positioning, and user intent.
This matters because the apps you know about are rarely the full picture. In most categories, the apps ranking for the same keywords as you, the ones pulling installs from the same search queries, include names your team has never discussed. A fitness app competing for “workout tracker” might be losing installs to a meditation app that also ranks for that term. A budgeting app might be outranked by a banking app with better keyword coverage. These are real competitors for your organic traffic, and they are invisible if your competitive set comes from a brainstorming session.
The problem scales with portfolio size. An agency managing 30 client apps across iOS and Android needs a current, quality-filtered competitive set for each one. That is 60 competitive analyses, each requiring fresh data about which apps are active, which are abandoned, and which actually overlap on the keywords and categories that drive installs. Maintaining those sets manually means some clients get stale competitor data, some get incomplete data, and the agency spends hours on research that produces inconsistent results.
Our position: competitor discovery should be automated, data-driven, and aggressive about filtering quality. The goal is not to list every app in your category. It is to surface the 10 apps that genuinely matter for your ASO strategy, apps that are actively maintained, well-rated, and competing for the same users. Everything else is noise.
How the Engine Finds Your Real Competitors
The Competitor Discovery Engine runs a 5-phase pipeline that starts with a broad candidate pool and progressively narrows it to a curated set of 10 high-quality competitors. Here is what each phase produces.
Keyword-Based Competitor Search
The problem: Category charts show you who ranks in your category. They do not show you who ranks for the same keywords. Two apps can share a category but target completely different user intents. Conversely, apps in adjacent categories can be direct competitors for the same search queries.
How the engine handles it: The default discovery method extracts keywords from your app’s listing using both direct word matching and AI-inferred keyword extraction (the same dual-method approach used by the Keyword Engine). Those raw keywords pass through an AI quality filter that removes generic, non-actionable terms. The surviving keywords are deduplicated, and redundant shorter keywords already covered by longer, more specific phrases are removed (if “tower battle” is in the list, standalone “tower” gets dropped). For broad categories like Games or Entertainment, single-word keywords are filtered out entirely because they are too generic to surface meaningful competitors.
The engine then searches the store for each keyword, up to 30 keywords in parallel batches. For each keyword, it pages through search results using a “fill the bucket” strategy: it keeps fetching pages until it has collected enough in-category results (filtering by genre where available) or hits a safety bound. Each app found in the results gets scored by the formula sum(1/position) across all keyword searches where it appeared. This rewards both breadth (appearing in many keyword searches) and ranking strength (appearing near the top). Apps that appear in fewer than 3 keyword searches are filtered out to eliminate noise. The engine accounts for structural differences between App Store and Google Play, including different search result formats, category taxonomies, and data availability (install estimates are public on Android but not on iOS).
What you get: A ranked list of apps scored by how much they overlap with your keyword footprint, not just your category chart position. This catches competitors that category charts miss and filters out category peers that serve different user intents.
An Alternative Discovery Method
The problem: Keyword-based search is the most precise method, but some apps benefit from broader sourcing strategies depending on their category dynamics.
How the engine handles it: The engine supports an additional discovery method that feeds into the same quality filtering pipeline. Store category charts pulls the top 200 apps from your app’s primary category chart (the official App Store or Google Play rankings for free apps in your category).
This alternative method produces an initial pool of app IDs that then passes through the same 5-phase quality filtering pipeline described below. The keyword search method is the default because it identifies competitors based on actual search overlap rather than category position alone.
What you get: Flexibility to source competitors from the method best suited to your app’s competitive dynamics, with consistent quality filtering regardless of source.
Quality Filtering Pipeline
The problem: A raw list of apps from chart rankings or search results contains noise: your own app, other apps from your publisher, abandoned apps that stopped shipping updates, and low-quality apps with poor ratings. Including any of these in a competitive set skews the benchmarking that every other engine relies on.
How the engine handles it: After the initial candidate pool is assembled (capped at 100 apps as an optimization boundary), the engine fetches detailed public listing data for each app in batched concurrent requests. It then applies four sequential quality filters:
- Self-exclusion removes your own app from the pool.
- Same-publisher filter removes apps published by the same company. If you have multiple apps under the same brand, they are excluded so results focus on true external competition.
- Maintenance currency filter removes apps not updated within the last 90 days. Apps with missing update dates are retained rather than excluded, which means apps in categories with longer release cycles (enterprise B2B, for example) are not penalized when API data is incomplete. The 90-day default catches the long tail of abandoned apps while retaining the large majority of actively maintained competitors.
- Rating threshold filter removes apps rated below 4.0 stars. The competitors worth benchmarking against are the ones users value and the stores are likely to promote.
Apps with missing update dates or missing ratings are retained rather than excluded. Top-chart apps are likely maintained and well-rated; missing data typically reflects API limitations for certain locales, not actual quality problems.
What you get: A filtered pool where every remaining app is a genuine external competitor that is active, well-regarded, and relevant to your market. A typical funnel narrows from 100+ candidates to 30-50 quality apps.
Final Selection and Scoring
The problem: Even after quality filtering, you may have 40+ qualifying apps. The competitive set needs to be tight enough to be actionable. You also need a way to assess how strong your competitive data is overall.
How the engine handles it: The engine sorts the quality-filtered pool by review count (descending), using market presence as the final tiebreaker. Review count is used because it correlates with sustained install volume more reliably than raw download estimates, which can be inflated by paid acquisition bursts. It then selects the top 10 apps as your competitive set.
For each competitor, the output includes their app identifier, title, icon, publisher, rating, review count, estimated installs (Android), and a store listing URL. The engine also computes a Competition Score (0-100) across three dimensions: whether the pipeline found a full set of quality competitors, whether those competitors have rich public data (substantial review counts, high ratings, install estimates), and how much of your total category the final set represents. The score gives growth and product leaders a single number to track competitive landscape health across a portfolio without requiring deep ASO expertise to interpret.
Based on this score and the filtering metadata, the engine surfaces key issues (e.g., “limited competitor data” if fewer than 5 found, or “highly competitive market” if average ratings exceed 4.5) and key strengths (e.g., opportunity for freshness differentiation if many category apps lack recent updates).
What you get: A curated set of 10 competitors with full public listing data, a Competition Score with dimensional breakdowns, and strategic observations about your competitive landscape. The complete filtering funnel metadata is included so you can see exactly how the pipeline narrowed from the initial pool to the final set.
Bringing It Together
Competitor discovery is the input that shapes every other engine in the audit. The Keyword Engine compares your keyword coverage against these 10 competitors. The Screenshot Engine and Icon Engine benchmark your visuals against theirs. The Sentiment Engine contrasts your review themes with competitor sentiment. Getting the competitive set right means every downstream analysis is grounded in the apps that actually matter for your organic visibility.
The Competitor Discovery Engine produces this competitive set automatically, from a URL, with no manual research. The combination of keyword-based search overlap analysis, multi-stage quality filtering, and scoring across count, quality, and coverage dimensions produces a competitive set that is both precise (these apps compete for your users) and current (every app is active and well-rated). Building this manually for a single app takes an experienced ASO professional an hour or more of research. Building it for a portfolio of 30 apps, kept current, is a full-time job. For a team running competitive analysis across a portfolio, that research time adds up to tens of hours per month of specialist time redirected from optimization to data gathering. The engine delivers it in minutes per app, refreshed on every audit.
For agencies and growth teams managing 20, 50, or 100+ apps across iOS and Android, this changes the economics of competitive intelligence. Every app in the portfolio gets a current, quality-filtered competitive set on every audit cycle. The research that used to require a dedicated analyst becomes a byproduct of the audit itself.
If competitor analysis is not something your team does formally today, the engine handles it from your URL alone. The platform uses the resulting competitive set to show you where your listing is weaker than the competition and what to change first. No spreadsheets, no manual research, no prerequisite ASO knowledge.
Run a free Quick Audit now Paste your App Store or Google Play URL at apptonomy.ai and see what the Competitor Discovery Engine finds. You will get your top 10 competitors with ratings, review counts, and a Competition Score showing how competitive your market is. The Quick Audit runs the full Competitor Discovery Engine pipeline described in this post.
Inside the Audit: The Full Series
- Keyword Engine
- Screenshot Engine
- Icon Engine
- Sentiment Engine
- Store Text Engine
- Competitor Discovery Engine (you are here)
- Policy Checker
- AI Discovery Engine
- Search Term Engine
- Intent Engine
- L11n Analysis Engine