U Ranket
⌘K

Review your keywords

Understand the discovered keyword pool, opportunity scores, and how to dismiss off-brand picks.

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:

  1. Target keywords (15) — Claude extracts on-brand seed terms from your scraped pages
  2. Self-ranked (~30) — keywords your domain already ranks for, anywhere in Google’s top 100, fetched from DataForSEO
  3. Page H1s + titles — direct headline phrases from your marketing pages, normalised into search-style seeds
  4. 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.

Was this page helpful?