Content Ideas

A keyword clustering tool built on keywords you can verify

Real gap keywords from DataForSEO, filtered for relevance by a model, then checked back against the source. Every number you see came from the data, not from the model.

Competitor gap keywordsRelevance-filteredClustered into page ideasVolume read from source
example.com · content ideas
content optimization tool320/mo
seo content editorcontent brief generatorseo writing tool
keyword clustering480/mo
semantic clusteringkeyword grouping
content gap analysis170/mo
competitor keyword gapgap analysis template

Not available yet

Keyword clustering is not in the product yet. This page describes what we are building, not something you can use today — signing up will not give you access to it. Leave your email and we will tell you the day it ships.

Ask any AI tool for a topical map and you will get one in about nine seconds. It will look excellent. It will contain keywords that no human has ever typed into Google, attached to search volumes the model invented on the spot, and you will not be able to tell which is which by reading it.

That is the specific failure this page exists to avoid. Here the model is never asked to think of a keyword. The candidate list comes from DataForSEO: the terms your competitors actually rank for and you do not. Every figure shown is re-read from that response. If the model returns a keyword that was not in the candidate list, the keyword is discarded before it reaches you.

What the model does do is the one job it is genuinely better at: deciding whether a keyword belongs to your niche at all.

Source

The keywords come from data, not from a model

Gap keywords are pulled from DataForSEO: terms your competitors rank for and you don't. The model is never asked to think of a keyword, and if it returns one that wasn't in the candidate list, that keyword is discarded before it ever reaches you. Volume and difficulty are read from the source response every time they are displayed.

  • Competitor gap keywords straight from DataForSEO
  • Volume and difficulty re-read from the source response, never from the model
  • Invented keywords are dropped automatically, not spot-checked
  • Add the competitors you actually lose to, not a generic industry list
82
The keywords come from score
Filter

A model used where a model is genuinely better

Big competitors rank for everything, so a raw gap list arrives roughly a third off-topic: kitchen conversions in an SEO blog's keyword set. No rule-based filter fixes that: the off-topic terms are not misspelled, low-volume or obviously junk, they are simply about something else. Judging whether a keyword belongs to your niche is the one job a language model does better, so it's the only job it gets.

  • Topical-relevance gate over the whole candidate set
  • Near-identical topics merged rather than listed twice
  • One idea per keyword, so your own pages don't compete
  • The filter's decisions are visible, so you can see what was dropped
82
A model used where a m score
Cluster

Grouped into pages you could brief tomorrow

What survives the filter is grouped into content ideas: a primary keyword, the supporting terms that belong with it, and the numbers behind them. This is the part that turns a keyword export into a plan: not a list of two thousand terms, but the forty pages those terms actually describe.

  • Primary plus supporting keywords per idea
  • Straight through to the Content Editor as a new document
  • Ideas saved with the audit that produced them
  • Cluster sizes that map to one page, not one section
82
Grouped into pages you score
Build

Topical authority, as a queue rather than a theory

Covering a subject properly is the part of SEO advice that is easy to agree with and hard to act on, because 'cover the topic' is not a task. A clustered map is: each cluster is one page, the clusters are ordered by the data behind them, and the ones you have already published drop out because the gap list only contains terms you do not rank for.

  • Every cluster is a page-sized unit of work
  • Ordered by the volume and difficulty behind each cluster
  • Already-covered terms never appear, because the source is a gap list
  • Re-run later and the map reflects what you've since published
82
Topical authority, as score

How does it work?

01

Add domain & competitors

Tell us who you're actually up against.

02

Pull gap keywords

Real ranked-keyword data, not a guess.

03

Filter & cluster

Off-topic terms out, the rest grouped.

04

Open as a brief

Send an idea into the editor and write.

Keyword clustering, and why the source matters more than the algorithm

Most keyword clustering tools are judged on their clustering method: SERP overlap, embeddings, n-gram similarity. That is the interesting engineering question and almost never the one that decides whether the output is useful.

The decisive question is what went into the cluster. Cluster a list of real ranked keywords and you get a plan. Cluster a list a model imagined and you get a beautifully organised plan for pages nobody is searching for. Because the structure looks identical either way, there is no point at which the mistake announces itself.

So the guarantee here is about provenance rather than cleverness: every keyword in every cluster came from a DataForSEO response, and every volume and difficulty figure is re-read from that response at display time.

Content gap analysis your competitors already paid for

A competitor who has been publishing for six years has run the experiment you are about to run. Every keyword they rank for is a query they decided was worth a page, and then found out whether they were right.

Gap analysis reads that result. Point the tool at your domain and the two or three competitors you actually lose to, and it returns the terms they rank for and you do not, which is a far better starting list than anything generated from a seed, because it is already filtered by someone else's budget.

It arrives with the usual problem: a large competitor with a large blog ranks for a great deal that has nothing to do with your business. That is what the relevance gate is for, and it is why the model sits between the gap list and your screen rather than in front of the whole process.

From map to draft, and what it will not do

Picking an idea opens a new document in the Content Editor with the primary keyword already set, which then pulls its own targets from the live SERP for that keyword and market. The map decides what to write; the editor decides what the page has to contain.

Nothing regenerates on its own. Ideas are produced when you run the audit and stored with it, and opening the page later reads the stored result and spends nothing. Background refresh sounds like a feature until it is a bill for keyword data nobody asked for.

One deliberate limitation worth stating: this is not a rank tracker. It tells you where the gaps are and what to write; it does not watch positions afterwards. Progress shows up the next time you run it, as terms that have left the gap list.

Perfect workflow

One platform. One workflow. The full content loop.

01
Find the gaps
Keyword Clustering

Real keyword data from your competitors, filtered and clustered into briefs.

02
Write & optimize
SEO Content Editor

Write to targets measured from the pages already ranking.

03
Fix what's broken
Content Audit

Crawl the domain and work a fix list ordered by impact.

04
Check the answers
AI Visibility Tracker

See whether ChatGPT, Gemini, Perplexity and Claude name you.

Frequently asked questions

Where do the keywords come from?+

DataForSEO. We ask for the keywords your competitors rank for and you don't, then filter that list down. Volume, difficulty and every other figure shown is read straight from their response.

Can the AI make up keywords or volumes?+

It can try; it can't reach you. Every keyword the model returns is matched back against the DataForSEO candidate list, and anything that isn't in it is thrown away, along with any volume the model tried to supply. The numbers are always re-read from the source.

Then why involve a model at all?+

Because relevance is a judgement call. A competitor with a big blog ranks for a lot of things that have nothing to do with your business, and no keyword filter can tell that 'how many ounces in a cup' doesn't belong in an SEO content plan. That specific call is what the model is good at.

How is this different from exporting a keyword list?+

An export gives you every term. This gives you the terms that belong to your niche, grouped into page-sized clusters with a primary and its supporting keywords, so the output is a publishing queue rather than a spreadsheet you still have to interpret.

How many competitors should I add?+

Two or three you genuinely compete with beats ten category leaders. A much larger site's gap list is mostly topics you have no business chasing, and while the relevance filter removes the obviously unrelated ones, it can't tell you that a term is simply out of your league.

Does it help with topical authority?+

That's the practical use of it. Each cluster is one page, the clusters cover the terms your competitors rank for and you don't, and anything you already rank for never enters the list, so working the map is what covering a subject properly looks like as a queue of tasks.

Can I send an idea straight into the editor?+

Yes. Picking an idea opens a new document with the primary keyword already set, which then pulls its own targets from the live SERP.

Does it refresh on its own?+

No. Ideas are generated when you run the audit and stored with it. Nothing re-runs in the background, because nothing should quietly spend your money.

Your brand deserves to be seen, everywhere.

AI is shaping decisions. If you're not in the answers, you're not even considered. Win the next wave of search.

Get started now