5-Filter Method: Find Low-Competition Keywords With High Business Intent (Using Gemini)
Contents
Last quarter I pulled 2,400 candidate keywords for a B2B SaaS client, ran them through five sequential filters, and ended up publishing against 87 of them. Four months later, 22 of those 87 are ranking in the top 10. The other 65 are still moving, most of them up. The 2,313 I threw out were not "bad keywords" — they just didn't survive the funnel.
The trick isn't finding low-competition keywords. Ahrefs' free tool can hand you a thousand of those in an afternoon. The trick is finding low-competition keywords that someone will actually pay for. That's a different problem, and it takes a different filter chain.
Why KD Score Alone Is a Trap
Keyword Difficulty (KD) is the most popular proxy for "how hard is this keyword to rank for," and it's also the most over-trusted.
Ahrefs' KD is calculated from the median number of referring domains (RDs) pointing to the top 10 ranking pages. KD 10 maps to roughly 10 RDs among the leaders; KD 40 means around 60+; KD 80+ is 200+. Semrush's KD uses a different model — page authority plus SERP features plus estimated click patterns — which usually runs higher than Ahrefs for the same keyword. The two systems measure the same competitive landscape through different lenses. Neither one tells you whether the person typing the query actually wants to buy what you sell.
That gap is the entire game. I learned this the hard way on a campaign targeting "email automation best practices" — KD 22, decent search volume, easy to rank for. Six months of content later, every visitor bounced. The intent was informational, not commercial. The traffic looked great in dashboards and converted to zero pipeline.
A KD score tells you how many backlinks you'll need to break the top 10. It tells you nothing about the person typing the query.
The 5-Filter Method
I run every candidate keyword through five filters, in order, and stop as soon as it fails any of them. The funnel is ruthless on purpose.
Filter 1 — KD Under 20 (Ahrefs or Semrush)
Yes, just KD. But only as the first gate. A low KD is necessary, not sufficient.
I cap at 20 because that aligns with both tools' "Easy" tier (Ahrefs KD 11-20 maps to roughly 11-20 referring domains needed). For brand-new domains (DR < 20), I'd tighten this to KD 0-15. The exact number doesn't matter as much as being consistent — mixing Ahrefs and Semrush scores in the same list will quietly double-count some keywords and miss others.
Drop anything above your KD ceiling. Don't argue with yourself about it.
Filter 2 — Volume Between 50 and 1,000 Monthly Searches
Under 50 is too thin to be worth a dedicated page, even if the intent is perfect. Above 1,000 is almost always crowded, and the SERP will tell you so the moment you open it. The 50-1,000 band is where the long-tail-but-not-dead zone lives.
This filter alone cut my client's list from 2,400 to 480. That's the 80% that disappears when you stop chasing keyword-tool vanity numbers.
One caveat: search volume data is noisy in 2026. Don't trust the absolute number. Use the band as a sanity check, not a precision instrument.
Filter 3 — At Least One Weak Result on Page 1
This is the filter most people skip, and it's the most important one.
Open the SERP (Search Engine Results Page) manually. Look for at least one of these signals among the top 10:
- A page with DR (Domain Rating) under 30 ranking on page 1
- A forum thread (Reddit, Quora, Stack Exchange) sitting in the top 5
- A page with thin content — under 300 words, or just a list of internal links, or obviously AI-generated fluff
- An outdated post from 2021 or earlier
- A page with no backlinks to speak of (check in Ahrefs or Semrush)
If every result on page 1 is a DR 70+ site with deep content and a strong backlink profile, walk away. The door is closed, and no amount of Gemini classification will open it.
If at least one weak result is there, the SERP is telling you Google hasn't found a definitive answer. That's your window.
A real example from the campaign: "best CRM for solo consultants" had Ahrefs KD 18, volume around 320/month, and a SERP where the #4 result was a 2019 Quora thread and the #7 was a thin affiliate listicle on a DR 22 blog. The top three were authoritative, but the page had real weakness. We published a 2,400-word comparison guide. Three months later, the post was sitting at #5.
Filter 4 — Buying-Intent Modifier in the Query
A keyword with KD 15 and 200 monthly searches is still a waste of time if the person typing it is just looking for free information.
Look for at least one of these verbs or patterns in the query:
- Buy: "buy," "order," "pricing," "cost," "cheap"
- Compare: "vs," "versus," "compared to," "alternative to," "alternatives"
- Evaluate: "best," "top," "review," "reviews," "worth it"
- Action: "free trial," "demo," "sign up," "download," "for [specific use case]"
Queries that don't contain any of these patterns are almost always informational. "What is a CRM" or "how does email automation work" can be useful top-of-funnel content, but they won't pay the bills.
This filter took 480 down to 280. Roughly 40% of low-volume, low-KD queries are informational people Googling for a definition. Don't write commercial content for them.
Filter 5 — Gemini Says It's In Your Wedge
Filters 1-4 are mechanical. Filter 5 is the bottleneck, and it's the one that requires an LLM (Large Language Model, 大语言模型).
For the keywords that survive the first four filters (around 280 in my case), I batch them through Gemini 2.5 Flash in groups of 100. The model reads each query, decides whether the underlying topic falls inside the client's product wedge, and outputs a structured label. The wedge for the SaaS client was "B2B sales pipeline software for independent consultants and small agencies (under 20 employees)" — narrow on purpose, because narrow is the whole point.
The prompt looks like this:
textYou are classifying search queries for a B2B SaaS company.
Product wedge: B2B sales pipeline software for independent consultants
and small agencies (under 20 employees).
For each query below, decide:
1. Is the underlying topic inside the product wedge? (yes / no / maybe)
2. What is the searcher's likely intent? (informational / commercial / transactional)
3. Confidence score from 0 to 1.
Output JSON (JavaScript Object Notation) only, matching this schema:
{
"query": "string",
"in_wedge": "yes" | "no" | "maybe",
"intent": "informational" | "commercial" | "transactional",
"confidence": number
}
Queries:
1. best CRM for solo consultants
2. how to track sales pipeline excel
3. ...I drop anything Gemini labels in_wedge: no and treat maybe as borderline. The intent field gets cross-checked against Filter 4 — if Gemini says informational but the query has a buying modifier, the modifier wins, because the SERP will reflect the modifier.
The 280 candidates became 140 after Gemini's first pass. I then re-prompted the maybe group with a tighter wedge description and recovered 40 more, landing at 100. From there, I manually reviewed the 100 to confirm product fit, and 87 made the final list.
The confidence score is the lever that matters. A confidence: 0.4 from Gemini on a borderline query is usually wrong — but the model is rarely confident and wrong. Pay attention to the score, not just the label.
The Funnel Math
Here's the full sequence on the campaign, in case the numbers help calibrate your own pipeline:
| Stage | Filter | Remaining | Cumulative drop |
|---|---|---|---|
| 0 | Raw candidate list | 2,400 | — |
| 1 | KD < 20 | 1,200 | -50% |
| 2 | Volume 50-1,000 | 480 | -80% |
| 3 | Weak SERP result | 280 | -88% |
| 4 | Buying-intent modifier | 140 | -94% |
| 5 | Gemini in-wedge classification | 100 → 87 | -96% |
The 2,400 → 87 conversion is roughly 3.6%. That feels brutal until you realize what the 87 represent: keywords with low ranking difficulty, real search demand, weak current competition, explicit buying intent, and confirmed product fit. Almost everything you read about SEO tells you to chase volume. Almost nothing will tell you to throw out 96% of your candidates. That's the point.
After four months, 22 of the 87 are in the top 10, 31 are on page 2, and 34 are still mid-pack or lower. None have dropped out of the top 50. The 2,313 I discarded weren't failures — they were correctly identified as not worth the time.
What I'd Watch Out For
Two things would have made this campaign better.
First, the volume filter is the most fragile. Search volume data in 2026 is noisier than it was three years ago, partly because AI Overviews have eaten a chunk of top-of-funnel queries. If I reran the same funnel next quarter, I'd expect the 480 number to shift, and not always in directions that match what you'd see in Search Console. Use the band, not the number.
Second, Gemini's in_wedge label is only as good as the wedge description you give it. The first time I ran this, the wedge was "B2B SaaS for small businesses" — too broad, the model said yes to almost everything. Tightening the wedge to "B2B sales pipeline software for independent consultants and small agencies under 20 employees" cut the yes set in half and made the final 87 much sharper. The narrower you can make the wedge, the more useful Gemini's output becomes.
A 96% drop rate sounds like the funnel is broken. It's not. It's working. The other 96% would have taken six months of writing to produce content that ranks and doesn't convert. The 87 are the ones worth the next six months.