Within a minute of adding your brand, Ranket runs the first keyword research pass and surfaces ~15-25 opportunities you can rank for.
Where they come from
Four real-data sources, in priority order:
- Target keywords (15) — Claude extracts on-brand seed terms from your scraped pages
- Self-ranked (~30) — keywords your domain already ranks for, anywhere in Google’s top 100, fetched from DataForSEO
- Page H1s + titles — direct headline phrases from your marketing pages, normalised into search-style seeds
- Google Search Console queries — if you’ve connected GSC, the top queries you get impressions for (more grounded than 1-3)
If after combining these sources the total seed count is under 25, we run a Claude supplement that adds 15-20 on-brand seed phrases generated from your brand profile.
For each seed (up to 100), DataForSEO returns ~30 variations. That’s the raw candidate pool — typically 1,500-3,000 phrases.
How we filter
Raw candidates (1,500-3,000)
↓ Hard filter: KD ≤ 30, volume ≥ 30, not branded, not garbage
~50-200
↓ Word-set dedup (collapses "X Y Z" / "Z Y X" reorderings)
~30-150
↓ Claude relevance scoring (≥ 0.6 to brand niche)
~12-30
↓ SERP rank-gap (drops keywords dominated by mega-domains)
~12-25
↓ Cascade if under 15: top 10 keywords used as new seeds, mined again
≥ 15 keywords
↓ Opus editorial pass (picks top 8 on-brand)
Final pool, sorted by opportunity score
The cascade is what guarantees you always get at least 15 keywords on a fresh brand, even if your site is thin.
Reading the opportunity score
Every keyword has a score 0-100. The formula combines four signals:
- Search volume — higher = better, capped at log10(50,000) so generic mega-terms can’t dominate
- Keyword difficulty (KD) — lower = better
- Relevance — how on-brand the keyword is (0-1, Claude-scored)
- SERP rank gap — how beatable the current top 10 looks for a low-DR brand
A unicorn keyword for any brand looks like:
score=88 vol=1,300 kd=1 rel=0.85 "decluttering house for sale"
Low competition + decent volume + on-brand. That’s the kind we surface to the top.
Editorial picks
Each refresh, our Opus pass reviews the top 30 by composite score and flags the 5-10 keywords a senior strategist would write FIRST. Picked keywords get a +20 score boost so they appear at the top of the pool.
Picks are based on:
- Intent alignment with your product
- Brand-defensibility (article will showcase your product naturally)
- Funnel position (problem-aware / solution-aware over fully top-of-funnel)
- Editorial freshness (no near-duplicates)
What to do in the dashboard
Once you see the pool:
- Approve the pool — fills the calendar with the highest-scoring keywords on your chosen cadence
- Dismiss off-brand picks — relevance is usually right, but no algorithm is perfect. Click “dismiss” to remove a keyword permanently
- Schedule manually — drag a specific keyword to a specific date
- Manual refresh — re-run the research anytime to top up the pool
Refresh cadence
By default we refresh weekly (Mondays at 03:00 UTC). Each refresh:
- Costs ~$0.50 in API spend
- Surfaces 5-15 NEW keywords (plus updates existing ones with fresh volume/KD)
- Takes ~30-60 seconds
The pool grows monotonically — old keywords keep their status (scheduled / used / dismissed) while new ones come in as available.
Limits
- Max 100 seeds expanded per refresh
- Max 30 keyword_suggestion variations per seed
- Hard KD ceiling: 30 (low-DR brands can’t realistically rank above this yet)
- Hard volume floor: 30 searches/month (lower = not worth the article)
You can override these per-brand in settings if you have a higher-authority domain and want to chase competitive terms.