Find low competition keywords with observed page-one openings
Reads your site, prices candidate terms with real search data, and keeps the ones where page one shows a young domain, a low-traffic domain, or a community result.
Requires a Google Search Console connection
Read-only. Your own Search Console queries are what tell the map which terms your site already serves, so it does not hand you back a page you have.
No fabricated search volume, and no candidate called eligible on a difficulty score. Every shown keyword had page one checked; unavailable evidence stays incomplete instead of becoming a negative.
Connect Search Console
The map reads your site's public pages, prices candidate keywords against a search-data provider, and checks each one against the queries your own property already serves. Search Console access is read-only. This tab's sealed resume pointer expires after 24 hours; encrypted Workflow execution data follows Vercel's plan-level managed-storage retention. Neither becomes App project or cross-run history.
Free · Read-only access · Managed Workflow retention · No project history · Disconnect anytime
How the map decides what to show you
1
Connect Search Console
Read-only, one click, revoke it whenever you like from your Google account.
2
We read your site first
A bounded context of up to 20 pages, product pages first, and we show you what we understood before spending anything. It is not a whole-site crawl. Wrong reading, wrong keywords — so you get to correct it.
3
The model proposes; the provider prices
The model proposes terms from the site context you approved. Every term then goes to a search-data provider, whose silence remains no data rather than zero demand.
4
Every candidate except an explicit-zero term gets a page-one check
Every candidate except an explicit-zero term enters durable waves of up to ten concurrent page-one requests. Each completed keyword is checkpointed independently; young-domain, low-organic-traffic-domain and community-result evidence stay separate, and a provider gap remains incomplete instead of becoming a negative.
What you get back
Search-form opportunities
Provider volume and intent, a separately provenanced SERP interpreted intent, all three raw opportunity signals, and AI Overview provider availability beside its LLM answer assessment. A complete answer is a ranking discount, never a veto. The whole table exports as CSV.
Question-form opportunities
Question phrasings that cleared the same page-one signal rule. A measured, related, possible-existing, or candidate-source page is labelled with its exact basis; no search volume is claimed when the provider returned none.
Checks before you act
Every row carries what to go look at. None of them is a verdict; the tool has not read the pages that rank.
Where the rest went
Excluded candidates and candidates whose detection stayed incomplete are separate lists, each with exact reasons. Missing evidence is never presented as a negative signal, and retry guidance stays attached to the incomplete section.
What the map actually does, stage by stage
A bounded crawl, confirmed by you
The run starts by fetching up to twenty of your pages, product pages first, and reading the site's positioning off them. It then stops and shows you what it understood — every statement with the URL it came from — before anything is spent. This gate exists because the candidates are generated from that reading: a wrong reading produces wrong keywords, and you are the only party who can tell. The seed field takes up to ten terms of your own, which travel into the generator alongside the crawl; use it when your buyers use words your site does not spell out.
Three-state pricing, with blanks kept blank
Up to 150 deduplicated candidates go to a search-data provider for volume, difficulty and intent. The answer comes back in three states that never collapse into each other: a measured volume, an explicit zero, or no data at all. Provider silence is not zero demand — in our own trials the provider stayed silent on roughly three quarters of generated candidates — so a term with no data is reported as exactly that, and no blank is ever dressed up as a number.
Your own queries as the duplicate filter
Your Search Console queries from the last 28 complete days tell the map which terms your site measurably already serves; those are withheld rather than recommended back to you. The check is honest about its own limits: Search Console anonymises a large share of queries, so absence from the sample is treated as “not observed”, never as proof of absence — and when the read fails outright, every row says the check did not run instead of quietly passing.
Every candidate except an explicit-zero term gets a real page one
Every deduplicated candidate except one the provider explicitly priced at zero enters durable waves of up to ten concurrent requests. Each completed keyword is checkpointed independently, so a provider gap stays attached to that keyword rather than silently shortening the plan. Each completed page reports three raw opportunity signals separately: a domain registered within 24 months, a domain whose estimated organic traffic is below the requesting site's tier threshold, or a community result. One observed signal makes a candidate eligible even when a sibling signal is unavailable; without a positive, unavailable evidence stays incomplete, and only three completed negatives exclude it.
The provider's keyword intent and the model's interpretation of the organic top ten are different columns with different provenance. AI Overview availability is also a provider fact, while whether its returned answer fully addresses the query is an LLM assessment. A complete answer lowers ordering; it does not exclude the keyword.
The boundaries it will not cross
The weakest rank answers one narrow question — how weak is the weakest current holder — and remains raw context rather than the decision rule. The model interprets the bounded organic-result evidence, but it does not fetch and read every ranking page or model how many clicks an AI Overview absorbs. That is why its inferred intent and answer assessment carry model provenance, and why every row retains the decisions a reader still needs to make.
The same discipline runs through the rest of the output. Term groups are lexical — words overlapping enough that one page might serve them — and are labelled a suggestion, because proving two terms share a page needs page-one overlap this run does not fetch. Numbers the run could not measure stay blank in the table and in the CSV export; a zero you did not measure is a lie with decimals. And a run that finds little says so: about a quarter of the sites we tested came back with the honest answer that public data does not support a keyword plan for them yet.
Example output · made-up numbers to show the shape, not live data
Keyword
Volume
KD
Weakest rank
AI Overview
travel espresso kit
1,300
12
38 · smallbrew.example · #6
Not observed
manual espresso maker cleaning
320
4
55 · beanpress.example · #9
On page one
espresso ratio calculator
590
8
24 · pullshot.example · #3
Not observed
The method this feeds — and the half you keep
Our own selection method starts where difficulty scores end: open page one, read what the results actually answer, note who holds each place and whether an answer box has already taken the click. The map automates the measurable slice of that — pricing demand, opening the page, finding the weakest holder — and hands you everything it saw: the domain, its position, the page's features, the full audit trail of what was withheld and why.
The final reading stays yours on purpose. Whether the weak site that broke through is defended or abandoned, whether the inferred intent matches the page you can actually build, whether the demand is your buyer — the tool has not read those ranking pages and will not pretend it has. Treat every row as a place worth looking, walk the remaining decisions printed on it, and spend your writing budget only on what survives your own eyes.
Keep reading, keep checking
This map hunts for pages you have not written yet. The articles below cover the selection method itself; the two sibling tools work the data you already have. All of them follow the same evidence discipline.
Yes. Read-only access is required. It is what lets the map skip terms your site already serves — without it every suggestion would risk being a page you already have.
Are AI-generated candidates enough?
No. The model proposes terms from what your site says; a search-data provider prices them and a real page-one sample decides whether any of them is worth attempting.
Why would the map suggest terms that have nothing to do with my business?
The candidates come from a model reading a bounded context of up to 20 of your pages, and models mishandle ambiguous words: an earlier version of our own internal keyword engine once tagged 'miami dade transit bus tracker' as astrology-relevant, because 'transit' is a legitimate astrology term. That failure is why this map shows you what it read and waits for your confirmation before spending anything — and why the seed field exists. Correct the reading, and the candidates follow.
The difficulty score says easy. Why does page one still look impossible?
A difficulty score models links and authority; it does not say who actually holds page one. Terms with single-digit scores routinely show a page one owned end to end by high-authority domains. That is why the map opens the real page for each surviving term and reports the weakest domain it found there — named, with its position — instead of trusting the score.
What does the weakest rank tell me — and what does it not?
It answers one narrow question: how weak is the weakest domain currently holding a page-one place. It is raw context, not the decision rule. The v2 decision instead asks whether page one contains a young domain, a domain below the requesting site's organic-traffic threshold, or a community result; each signal and its unavailable state is shown separately.
Does every candidate get checked against page one?
Every deduplicated candidate except a term the provider explicitly priced at zero enters durable waves of up to ten concurrent checks. Completed keywords are checkpointed independently. A provider or interpretation failure is recorded on the affected candidate as unavailable evidence; it does not silently turn into a negative or disappear from the report.
Does the map detect AI Overviews?
It keeps two claims separate. Provider availability says whether page one contained an AI Overview or whether that fact was unavailable. A provenanced LLM answer assessment says whether returned AI Overview content completely, partially, or did not answer the query. A complete answer is a ranking discount, never a veto, and an unavailable assessment remains unavailable.
Is the search volume global?
No. You pick one market and one language before the run, and every volume is priced for that pair — the same term can carry entirely different demand in different countries. The market list is deliberately short: every entry on it has actually been run against the crawl, the prompts and the data provider.
Why would a run come back with almost nothing?
Because the public data does not support a keyword plan for that site and market yet. Roughly a quarter of the sites we tested came back that way, and padding the table would be the dishonest answer.
How long does it take?
The site read is bounded to 20 pages. Candidate pricing and page-one checks then continue through every candidate except an explicit-zero term in durable waves of up to ten concurrent requests. Completed keywords are checkpointed independently, so there is no fixed duration promise; elapsed time depends on the candidate count and provider responses.