Content gap finder
By Toolspoke
Compares your Semrush rankings with your competitors' each month and drafts article briefs in Notion for the topics you are missing.
Needs a Toolspoke account. You choose which project it installs into.
- Semrush + Notion
- Required integrations
- Runs on a schedule
- First Monday of each month at 9am by default
- Write the briefs
- What its last step does
- Nothing destructive
- 0 of 33 actions in its tools
On this page
The short version
- What it is
- A ready-made Toolspoke agent that finds the search topics your competitors rank for and you do not, and drafts a brief for each.
- What it reads
- Organic rankings for your domain and two to five competitors, keyword difficulty and related keywords in Semrush.
- Where it writes
- Draft pages in a Notion database you choose, and comments on briefs that already exist.
- What each brief holds
- A target keyword, supporting keywords with volume and difficulty, the search intent, the competitor pages ranking and a suggested outline.
- How often
- The first Monday of each month at 9am once you switch it on.
- What it never does
- Publish, write the article, change an existing brief, or copy a competitor's text.
- What you need
- A Toolspoke account, a Semrush API key with units, and a Notion database.
What Content gap finder does
Content gap finder is an AI agent that compares your Google rankings with your competitors' in Semrush once a month and drafts an article brief in Notion for each topic you are missing.
A content gap analysis is easy to describe and slow to do. You export rankings for every competitor, line them up against your own, filter out keywords nobody searches for or nobody could rank for, then group what is left into articles. It usually happens once a year, if at all.
Content gap finder does that work every month. It reads the keywords your competitors rank for on the first page, keeps the ones where you rank below 20 or not at all, and drops anything below your minimum volume or above your maximum difficulty.
It then groups the keywords one article would answer into topics, and writes a brief for each in Notion as a draft, with the search data and the pages already ranking. If a brief on the topic already exists, it adds this month's numbers as a comment.
In practice, on the first Monday of each month you open Notion and find:
- Up to ten draft briefs, ranked by total search volume
- The keywords, volumes and difficulty behind each
- The competitor pages ranking and their positions
- A suggested outline, for a writer to start from
How it works
Content gap finder works in four steps each month: it reads the rankings, finds the gaps, groups them into topics and drafts the briefs. All of it comes from the agent's written instructions, which you can read and edit after you install it.
Step 1: Read the rankings
Your domain's and each competitor's organic keywords, bounded to 500 lines each.
Step 2: Find the gaps
Keywords they rank top 10 for where you rank below 20, filtered by volume and difficulty.
Step 3: Group into topics
Keywords one article would answer, ranked by total volume.
Step 4: Draft the briefs
One draft page per new topic, or a comment on an existing brief.
It keeps Semrush spending bounded
Every Semrush report costs API units, which you pay Semrush for. The agent reads at most 500 ranking lines per domain with domain_organic, checks difficulty 100 keywords at a time with keyword_difficulty, and caps keyword_overview and related_keywords calls per run. You can see the calls in the activity log.
It filters before it writes
A keyword is a gap only when a competitor ranks in the top 10 and you rank below 20 or not at all. Gaps below your minimum monthly volume, 100 by default, or above your maximum difficulty, 60 by default, are dropped.
It groups by what one article answers
Keywords that one article would answer go together, whatever the wording. The largest topics get extra keywords from related_keywords to fill out the outline. It keeps at most ten topics a month.
It checks Notion first
Before drafting, it searches the database with notion-query-data-sources for a brief on the same topic in any status. If one exists, it comments with notion-create-comment instead of creating a duplicate. The limits are listed under what it will never do.
What a monthly brief looks like
Each brief from Content gap finder is a draft page in your Notion database. It leads with the target keyword and the numbers, then the pages already ranking, then a suggested outline.
Brief: Sales forecasting for small teams
Status: Draft. Topic volume 8,400 searches a month (Semrush estimate), us database.
Target and supporting keywords
- sales forecast template: 4,400 a month, difficulty 38. Intent: commercial, people want a template to use.
- how to forecast sales: 2,900 a month, difficulty 45. sales forecasting methods: 1,100 a month, difficulty 41.
Who ranks now
- rivalcrm.example/blog/sales-forecast-template: position 3.
- dealflow.example/guides/forecasting: position 5. Your best page, yourcrm.example/pricing, is at position 34.
Suggested outline
What a sales forecast is. Three forecasting methods compared. A free template, step by step. Common mistakes. Forecasting in your CRM.
- Keywords
The target keyword and its supporting keywords, each with Semrush's volume and difficulty, and the search intent.
- Who ranks now
The competitor pages on the first page for the target keyword, and your own best position if you have one.
- Outline
Headings drawn from the keywords. A starting point for a writer, not the article.
Why some months bring fewer briefs
If a topic already has a brief, the agent adds this month's figures as a comment rather than drafting a second one. After a few months most of the gaps have briefs, and new ones appear only as competitors win new keywords.
If Notion cannot be written, it creates nothing and returns the topics and keywords in the run's output, so the Semrush units spent are not wasted.
Who uses Content gap finder
Content gap finder suits any team that publishes to win search traffic and has competitors already ranking for its topics. The examples use made-up names.
A content lead planning the month
Nadia Hassan plans six articles a month for a B2B software company. She now starts the planning meeting with ranked briefs instead of a blank page.
A founder doing marketing alone
Ollie Brennan has no SEO specialist. The briefs tell him which topics are winnable at his site's strength, because anything too difficult is filtered out.
An agency managing several clients
Chiara Romano runs content for four clients. She installs a copy per client, each with its own competitors and Notion database.
A writer who wants a head start
Ben Asante writes the articles. The outline and the competitor pages give him the research he used to spend half a day on.
What Content gap finder connects to
Content gap finder connects to two tools: it reads Semrush and reads and writes to Notion. You connect each one yourself, and Toolspoke stores the connection encrypted, so the agent never sees the credential.
Semrush
RequiredResearch domains, keywords, competitors and backlinks with Semrush's SEO and advertising data.
Authentication: API key
Notion
RequiredRead and update pages, databases, and team knowledge.
Authentication: Notion OAuth
| Tool | What Content gap finder does | What it cannot do |
|---|---|---|
| Semrush | Reads rankings, competitors and keyword data (organic_competitors, domain_organic, keyword_difficulty, keyword_overview, related_keywords). | Change anything in Semrush: every action the connector has is a read. Each read spends Semrush API units. |
| Notion | Reads your briefs database, drafts new pages and comments on existing ones (notion-fetch, notion-query-data-sources, notion-create-pages, notion-create-comment). | Reach pages you have not shared with the connection. It can update and move pages it can reach, and the agent is told only to create drafts and comment. |
Nothing here can publish to your website: no toolkit this agent uses reaches it. That the agent only drafts and comments in Notion is an instruction, not a lock. If you want a lock, a project can switch off Notion's update, move and duplicate actions. The access control guide explains how.
Semrush bills API units for every report. The instructions bound each run, but the units come from your Semrush account, not from Toolspoke.
What Content gap finder will never do
Content gap finder is told never to publish, never to write the article itself and never to change a brief that already exists. It drafts, and a person decides what gets written.
- Publish, schedule or write the article, or change a page on the company's website.
- Change an existing brief's status, owner or content, or move a draft out of Draft.
- Copy text from a competitor's page into a brief.
- Promise a ranking or traffic.
- Run more Semrush reports than these steps allow.
Why it stops at a brief
Which articles to write is an editorial decision that depends on things Semrush cannot see: your product, your voice and what your customers ask. The brief gives the data, and a person decides.
Why it never copies competitors
A brief links to the pages already ranking. It never pastes their text, which would be someone else's writing and a poor basis for a better article.
Why it never promises traffic
Search volumes are Semrush estimates, and a new article may take months to rank. The brief says the figures are estimates and never promises a position or a number of visits.
If something goes wrong
If Semrush cannot be read, write nothing and stop. If one competitor cannot be read, carry on with the rest and say which in every brief's notes. If Notion cannot be written, or the database has no Draft status, create nothing, and put the topics and their keywords in the run's output so the units spent are not wasted.
These are written into Content gap finder's instructions. They guide the agent, but they are not a permission. What it is allowed to touch is set by the access you grant.
Content gap finder reads Semrush and drafts briefs. What gets written, and when it goes live, stays with a person.
When Content gap finder runs
Content gap finder runs on the first Monday of each month at 9am, but only after you switch its schedule on. It arrives switched off, so nothing runs and nothing is charged until you decide.
- Each run reads your rankings and each competitor's.
- It drafts at most ten briefs a month.
- Existing briefs get a comment, not a duplicate.
- If Semrush cannot be read, it writes nothing.
Each run uses model credit from your workspace balance, and the Semrush reports spend API units from your Semrush account. Rankings move slowly, so a monthly run is usually enough. The Notion calls themselves are free.
Your copy is an ordinary agent in your project. You can pause its schedule there, run it once on demand, change when it runs and edit its instructions. The agent's page lists recent runs and their cost.
How to set up Content gap finder
To get monthly article briefs, add Content gap finder to a Toolspoke project, connect Semrush and Notion, name your competitors and switch on the schedule. It takes a few minutes, and nothing runs until the last step.
Step 1: Create a Toolspoke account or sign in
Choose Use this agent. If you are new, you will be asked to sign up first, and you come straight back to this agent afterwards.
Step 2: Add it to a project
Pick the project it should live in. You get your own editable copy, and you can see the two tools it brings before anything connects.
Step 3: Connect Semrush
Paste your Semrush API key. The API needs a plan with API units; every report the agent runs spends some.
Step 4: Connect Notion and share the database
Sign in to Notion and share your content briefs database with the connection. Make sure its Status property has a Draft option.
Step 5: Name your domain and competitors
Set your domain, two to five competitors, the Semrush database such as
usoruk, and if you like the minimum volume and maximum difficulty.Step 6: Switch on the schedule
The schedule arrives switched off. Run it once to see the briefs, then switch it on.
Make Content gap finder fit your content plan
Content gap finder's instructions are plain English and you can edit them after you install it. Installing copies the agent, so your edits stay with your copy. Open the agent in Toolspoke and tell the builder what to change, and it rewrites the instructions.
Paste any sentence below into the builder chat, or say the same thing in your own words.
Use a maximum keyword difficulty of 40.
Read at most 200 ranking lines per domain and skip related keywords.
Fewer lines means fewer units, and a shorter list of gaps.
Run on the first Monday of January, April, July and October.
This changes when the agent wakes up, so the builder edits its schedule, not the instructions.
Only keep keywords with commercial or transactional intent.
Draft at most five briefs a month.
None of these edits needs more access or touches the Never rules. They change what Content gap finder is told, not what the connections allow.
How it compares to other options
Content gap finder beats the alternatives when you want the gap analysis turned into briefs every month without anyone running it. It loses to them when you want to explore the data yourself.
| Compared on | Content gap finder | Semrush Keyword Gap tool | An SEO agency | A spreadsheet export |
|---|---|---|---|---|
| Runs without anyone starting it | Yes, monthly | No | On their schedule | No |
| Groups keywords into articles | Yes | No, a keyword list | Yes | If you do it |
| Writes a brief | Yes, as a Notion draft | No | Yes | No |
| Avoids duplicate briefs | Yes, comments instead | Not applicable | Usually | If you check |
| Explore the data freely | No, a fixed method | Yes | On request | Yes |
| Can publish to your site | No, no toolkit reaches it | No | Sometimes | No |
| Cost | Model credit and Semrush units | Semrush plan | A monthly retainer | Your time |
Semrush's own Keyword Gap tool is better when you want to explore: change competitors, filters and databases on the fly. It gives you a list, and turning the list into articles is still your job.
An agency is better when you want the strategy and the writing done for you. It costs more, and the work runs on its schedule rather than yours.
Frequently asked questions
Can Content gap finder publish an article?
No. No toolkit this agent uses reaches your website, and it is told never to write the article itself. It drafts briefs in Notion.
Does it cost Semrush API units?
Yes. Every Semrush report spends units from your Semrush account. The instructions bound each run, and you can lower the limits in the builder.
What counts as a content gap?
A keyword where at least one competitor ranks in the top 10 and you rank below 20 or not at all, above your minimum volume and below your maximum difficulty.
Will it create duplicate briefs?
It is told not to. It searches the database first, and where a brief on the topic exists it adds a comment with this month's numbers.
Can it change a brief my team is working on?
It is told never to change a brief's status, owner or content. The Notion connection could update pages it can reach, so for a lock, switch off Notion's update and move actions in your project (how access works).
Which countries does it cover?
One Semrush regional database per copy, such as us or uk, chosen at install. Install another copy for another country.
Is Content gap finder free?
It has no price of its own, and every Toolspoke plan includes agents. Tool calls cost nothing on Toolspoke's side, but each run draws on your usage balance and Semrush bills its own API units. Pricing has the details.
Start each month with briefs, not a blank page
Connect Semrush and Notion, name your competitors and switch on the schedule. Your first briefs land on the first Monday of the month.