1. Movers (algorithmic)
Pulled from/v1/keywords/movers per run. Filtered to ±5 rank delta to cut noise — small daily wiggles don’t hit the briefing.
What surfaces:
- Gainers — keywords whose rank improved by 5+ in the last 7 days
- Losers — keywords whose rank dropped by 5+
- New entries — keywords that started ranking
- Dropped out — keywords that fell off the chart
2. Tracked keywords (user-curated)
The keywords you explicitly added to your tracking list in the web app, fetched fromuser_tracked_keywords (web Supabase). For each one the agent enriches with:
- Volume score (0-100) from
app_store_keyword_stats - Difficulty score (0-100)
- Current rank in the country
- Last 7 days of rank history (deduped to one rank per day, best position kept)
How the LLM uses it
- Movers are wired into the
keywordMoversfield of the report - Tracked keywords drive
prioritizedActionslike “Defend rank #19 for ‘screenshot search’” or “Push ‘photo stitching’ from #42 → top 30” - Combined with the ASO opportunity list, they feed metadata change suggestions

