Inside the Audit (02/12): Finding the Keywords You Are Missing
How the Keyword Engine runs a 9-tier pipeline across your app and 10 competitors to surface ranked, scored keyword opportunities.
The best keywords for your app are the ones your competitors already rank for and you do not. Finding them manually means hours of spreadsheet work per app per market, cross-referencing search volumes, difficulty scores, and ranking data across your entire competitive set. Apptonomy’s Keyword Engine automates that process: paste a store URL, and it runs a 9-tier pipeline across your app and 10 competitors, delivering scored keyword gaps 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 (metadata quality)
- Screenshot Engine (creative effectiveness)
- Icon Engine (icon quality and distinctiveness)
- Sentiment Engine (review analysis)
- Competitor Discovery Engine (competitive set identification)
- Policy Checker (guideline compliance)
- Content Engine (description and copy analysis)
- AI Discovery Engine (LLM discoverability)
- Search Term Engine (search term mapping)
- Intent Engine (user intent alignment)
This post covers the Keyword Engine and what happens when it analyzes your keyword landscape.
The ASO Problem: Keyword Research Stays Broken at Scale
Keyword optimization is the foundation of ASO. The keywords you target determine which searches surface your app, and for most categories, organic search is the single largest source of installs. Get this wrong and everything else you optimize (screenshots, icon, description copy) reaches fewer people.
Even with a handful of apps, doing proper keyword research per app per market is hours you would rather spend building product. The problem compounds fast. An agency managing 30 client apps across iOS and Android has 60 app-market combinations to research. Each app has its own competitive set, its own category dynamics, its own keyword context. A growth team running a single app across 15 localized markets is looking at 15 separate keyword universes, each with different search behaviors, different competitors, and different volume distributions. The App Store and Google Play support 88 languages across roughly 200 regions. Every market left unoptimized means organic installs going to competitors or being replaced by paid acquisition at multiples of the cost.
Manual keyword research also has a coverage ceiling. A human researcher can realistically evaluate a few hundred keywords per app. The full keyword universe for a competitive category contains thousands of terms, and the most valuable opportunities are often in the long tail that nobody checks because the list gets too long to manage by hand.
Our position: keyword optimization needs to start from your competitors, not from a blank search bar. Finding those gaps requires analyzing actual store rankings for every keyword across your competitive set, scoring each gap by volume, difficulty, and trend momentum, and filtering out the noise (branded terms, irrelevant categories, declining searches) before a human ever has to look at the list. That is the Keyword Engine’s job.
Under the Hood
The Keyword Engine runs a 9-tier sequential pipeline. It takes your app plus 10 competitors as input, extracts every keyword candidate it can find, enriches them with live market data from the Keyword Service, and progressively filters and scores until what remains is an actionable list of opportunities. Here is what each tier produces.
Dual-Method Keyword Extraction
The problem: Your competitors rank for keywords that never appear in their visible metadata. A title might say “budget planner” but the app also ranks for “savings tracker,” “expense log,” and “money management.” Listing text alone misses the full picture.
How the engine handles it: The engine reads all 11 apps (your app plus 10 competitors) and extracts keywords two ways. Literal extraction uses language-aware tokenizers to split titles, subtitles, descriptions, and screenshot text into unigrams, bigrams, and trigrams, with script-appropriate handling for Latin, CJK, Arabic, Thai, and other writing systems. AI-inferred extraction runs a language model against each app’s full listing to identify keywords a human optimizer would associate with the app, even when those exact terms are absent from the text. Across our audits, this dual approach typically surfaces 400 to 800 raw keyword candidates from the 11-app competitive set.
What you get: A broad keyword pool sourced from both your app and your competitors, covering both explicit metadata terms and semantically inferred opportunities.
Enrichment and Suggestion Discovery
The problem: Raw keywords without market data are guesses. You need to know how many people search for each term, how difficult it is to rank, whether your app currently ranks, and whether search interest is growing or declining.
How the engine handles it: Every deduplicated keyword is sent to the Keyword Service (KWS) for enrichment with five metrics: volume (0-100, normalized), difficulty (0-100, based on competitive density), rank (your app’s current search position), trend direction (rising, stable, or declining based on recent search interest), and branding classification (whether the term is a competitor’s brand name). On App Store, volume comes from Apple Search Ads intelligence, difficulty from Google Ads competitive metrics, trends from Google Trends, and rank from live App Store search results. On Google Play, volume and trends come from Google Trends, difficulty from Google Ads, and rank from Play Store search results. Market data is pulled live from the Keyword Service during each audit, so recommendations reflect current search dynamics rather than cached snapshots.
During enrichment, the engine also collects suggested keywords: related terms recommended by Apple Search Ads and Google Ads that were not in the original extraction. These suggestions are tracked by frequency (how many of the primary keywords independently recommended the same new term), which creates a natural relevance signal. An AI quality filter removes generic filler before the surviving suggestions are enriched with the same five metrics and added to the candidate pool.
What you get: Up to 300 keywords with live volume, difficulty, rank, trend, and branding data, plus a layer of suggestion-based discovery that catches opportunities outside your initial competitive set.
Relevance Scoring and Filtering
The problem: A high-volume, low-difficulty keyword is worthless if it has nothing to do with your app. Dashboard tools surface these misleading opportunities constantly because they score keywords on market metrics alone without evaluating fit.
How the engine handles it: An AI model evaluates every remaining keyword against your app’s metadata and assigns a relevance score from 1 to 100. The scoring is tuned specifically for ASO: it rewards high-intent search terms users actually type into app stores (“fitness tracker,” “budget app,” “photo editor”) and penalizes generic descriptors, standalone adjectives, and platform names that look popular but produce zero meaningful rankings. Keywords scoring below 60 are filtered out.
What you get: A cleaned list where every surviving keyword is both market-viable (sufficient volume, manageable difficulty) and genuinely relevant to what your app does. The relevance score is included in the output so you can see the engine’s reasoning.
Opportunity Scoring
The problem: You need a single metric that answers “where should we focus?” Volume alone favors ultra-competitive head terms. Difficulty alone favors obscure niches. Neither accounts for momentum.
How the engine handles it: The engine computes an Opportunity Score (0-100) for every keyword using the formula:
Opportunity = (sqrt(Volume) x (100 - Difficulty) / 10) + Trend Bonus
The square root of volume gives credit to popular keywords while flattening the curve so a few high-volume terms do not dominate the entire list. Subtracting difficulty from 100 flips the scale so easier keywords score higher. Rising keywords receive a +10 bonus; declining keywords take a -5 penalty. The difficulty floor is set to 1, preventing zero-competition terms from getting artificially perfect scores.
What you get: Every keyword ranked by a single composite score that balances audience size, competitive feasibility, and trend momentum. High-opportunity keywords are the ones where optimizing your listing is most likely to produce real ranking movement.
Competitor Keyword Intelligence
The problem: Knowing your own keywords is table stakes. Knowing which keywords each competitor ranks for, and where they rank, is what turns keyword research into competitive strategy.
How the engine handles it: During enrichment, the engine records which apps appear in search results for each keyword. In the final output assembly, this data is cross-referenced against your 10 competitors to build a per-competitor keyword map. Each competitor’s keywords are sorted by rank, giving you a clear picture of their keyword strategy: which terms they dominate, which they are barely visible for, and which high-opportunity keywords they rank for that your app does not.
What you get: A competitor analysis section with per-competitor keyword breakdowns including rank, volume, and difficulty for each term. The suggested keywords list flags which competitors already rank for each opportunity, so you can see exactly who you are competing against on every term.
Output Assembly
The problem: A raw list of hundreds of scored keywords is still overwhelming. The output needs to separate what you already have from what you are missing, cap the list at an actionable size, and provide enough context for each keyword to make a decision without leaving the report.
How the engine handles it: The engine separates keywords into two lists. Existing keywords are terms your app already ranks for, sorted by opportunity score. These highlight where to protect strong positions and where to push rankings higher. Suggested keywords are terms your app does not rank for at all, sorted by opportunity, and capped at 70. These are new targeting opportunities. Both lists include volume, difficulty, opportunity score, relevance score, trend direction, and per-competitor rank data.
The engine also computes an overall keyword score (0-100) combining ranking quality (what share of existing keywords rank in the top 10 and top 50) with opportunity potential (how much untapped opportunity remains in the suggested list) and a coverage bonus for breadth of existing rankings.
What you get: Two prioritized lists, a competitor intelligence breakdown, an overall keyword health score, and up to 10 specific recommendations with priority classification, estimated impact, and field placement guidance. Each recommendation specifies which metadata field to target, accounting for platform constraints like iOS’s 100-character keyword field.
From Findings to Action
The Keyword Engine output feeds directly into the rest of the Apptonomy workflow. Recommendations map to specific metadata fields, so the next step is drafting updated listings in Apptonomy’s built-in metadata editor and publishing changes to App Store Connect or Google Play Console. We will cover the full implementation path from audit findings to live store updates in a later post in this series.
Bringing It Together
Keyword optimization at its core is a gap analysis problem: finding the terms with real search volume, manageable competition, and genuine relevance to your app that you are not currently targeting. The Keyword Engine runs that analysis across your full competitive set, with live market data, language-aware extraction for any of the supported scripts, and an opportunity scoring model that balances volume, difficulty, and trend momentum into a single actionable metric.
Running this once produces a complete keyword strategy for a single app in a single market. The real leverage comes from running it across an entire portfolio. An agency with 30 client apps gets a fresh competitive keyword landscape for each one, with independent market data and competitor sets. A growth team managing one app across 15 localized markets gets 15 separate gap analyses, each reflecting the search behavior and competitive dynamics of that specific market. Every audit refreshes the data, so keyword intelligence compounds over time as you track how opportunities shift across cycles.
What takes an experienced ASO specialist 3 to 5 hours per app per market, the Keyword Engine delivers in under 5 minutes. Whether you are managing a single app or a growing portfolio, every audit starts with one URL and runs from there.
Run a free Quick Audit now Paste your App Store or Google Play URL at apptonomy.ai and see what the Keyword Engine finds.