Most teams take the first list of topics an AI tool hands them and start writing. That is why so many blogs read like they were written for a search engine that no longer exists. If the topic list is wrong, no amount of clever editing on the post will save it.
A research agent will do exactly what you tell it. If you tell it "find me things to write about", it will come back with the median of the internet. If you tell it what a good topic looks like for your business, it will come back with the small number of topics that actually match.
This post is about that second version. Three levers do most of the work: intent filters, SERP shape rules, and a competitor allow-list. Set them properly once and you spend far less time deleting bad suggestions.
Start with the reader you want, not the keyword
Volume is a poor first filter. A keyword with fifty searches a month can be worth more than one with fifty thousand, if those fifty are the people you sell to.
Tell your research agent who the reader is before you tell it anything else. Not a persona document, a sentence. "The reader is a solo founder-marketer running a small SaaS blog, who already knows what a keyword is." A short sentence like that rules out half of what would otherwise come back.
If you use RankMill, that sentence lives in the website profile. Every agent that runs on the project reads it, so the research agent already has it before a topic hunt starts. The clearer the profile, the tighter the topic list.
Intent filters: what does the reader want to do next
A ranking opportunity is not just a query someone types. It is a query where the reader wants the thing you sell, or the next thing on the path to it.
Ask the research agent to sort candidates by intent, and to keep only the ones that match. Four buckets are usually enough:
- Job-to-be-done queries. The reader is trying to finish a task. "How to write a research prompt" is one of these.
- Comparison queries. The reader is picking between options. "Jasper vs Copy.ai" is one of these.
- Problem-first queries. The reader knows they have a problem but not what to call it. "Why does my blog feel generic" is one of these.
- Reference queries. The reader needs a fact and will leave the moment they have it. "Length of a meta description" is one of these.
Most B2B blogs earn their keep on the first three. Reference queries are worth writing about only when the reader is likely to stay for what else you have to say.
Tell the agent which buckets are in and which are out. A prompt line as plain as "return only job-to-be-done and comparison queries, drop reference queries" will change what you get back.
SERP shape rules: what already ranks for this query
The results page for a query is a description of what Google thinks the reader wants. If every top result is a listicle from a domain twice your size, you are unlikely to displace them with another listicle. If the top results are all thin, dated and off-topic, there is room.
Give your research agent a short list of SERP shapes to accept and reject. A working set:
- Accept: queries where the top ten includes at least two small or medium sites, and where the average top result is more than eighteen months old.
- Accept: queries where the top results answer a different question from the one asked, or answer it badly.
- Reject: queries dominated by the query's own brand pages. A "Notion templates" search is mostly Notion's own gallery.
- Reject: queries whose top result is a well-maintained page from a domain much larger than yours, unless you have a genuinely different angle.
You do not need to give the agent access to a rank tracker to make this useful. Describing the shape of a good SERP in plain sentences is enough for it to score its own suggestions and drop the weaker ones.
Competitor allow-lists: who you are trying to sit next to
An unbounded research agent will happily pull topics from anyone in the wider category. That is how you end up with posts that could have come from a competitor twice your size and read like theirs too.
Give it a short allow-list. Five or six sites is plenty. Pick sites that:
- Sell to the reader you want.
- Publish at a similar cadence and depth.
- Are one notch above or below you in reach, not ten.
Then tell the agent what to do with the list. You are not asking it to copy their headlines. You are asking it to find the gaps: topics they cover thinly, topics they have not touched at all, topics where their post is old.
RankMill lets you attach competitor URLs to a project when you set it up, and the agents that run afterwards use them. Whatever tool you use, keep the list short. A long allow-list behaves the same as none.
Rules the topic list must obey
Once you have intent, SERP shape and competitors set, add a handful of hard rules the list has to obey before it comes back to you. These are the ones worth writing down:
- No topic broader than the front page of a category site. "Content marketing" is not a topic, it is a section.
- No topic where you would need to invent a statistic to make it credible.
- No topic that is really a landing page in disguise. If the honest answer is "buy our thing", it belongs on the site, not the blog.
- No two topics that overlap by more than a working title. If the agent has two candidates that would draw from the same sources, keep the sharper one.
A rule like "drop any topic where the outline includes a section called 'benefits'" sounds petty and saves hours downstream.
Reading the list the agent hands back
A short topic list is a working list, not a plan. Read it as if it were a stranger's suggestions, because that is what it is.
For each topic, ask three questions before you approve it:
- Who is the reader, in one sentence, and would they finish this post?
- What does the reader do next, and is that a thing you can help with?
- Is there anything in the outline that would need a number, a customer name or a date you do not have?
If the third answer is yes, either supply the fact or cut the section. Do not let a topic through with a hole in it and hope the writer papers over it.
In RankMill, the research agent may attach questions to a topic, up to four of them. Those are the things it could not find on its own. Answering them turns unknowns into facts the writer will treat as given. Leaving them blank tells the writer to write around them. Either is fine. What is not fine is inventing a fact yourself and pasting it in as an answer.
When to rewrite the prompt
The signal that your research prompt needs work is not that a single topic came back bad. It is that the same kind of bad topic comes back run after run. If half your rejections share a shape, name the shape and add it to the reject list.
Do the same in reverse. When a topic you approved turns into a post that did well, look at what made it work and see if you can teach the agent to spot the pattern next time. Over a few months the prompt becomes a small, sharp document about what your business is actually good at ranking for. That document is worth more than any single post it produces.