
Finding good content ideas sounds easy until you actually sit down to build a content calendar.
You can probably think of 10 or 20 article ideas without much effort. But what happens when you need 100, 300, or even 500 content opportunities?
This is where I prefer to combine two different tools:
- Keyword Everywhere for discovering and evaluating keywords.
- Apify for collecting large amounts of data from search results and websites.
Instead of guessing what people might want to read, you can build a repeatable process for discovering topics, collecting related keywords, studying competitors, and turning all that information into a structured list of content opportunities.
In this guide, I’ll show you the workflow.
The basic idea
The process is simple:
Find keywords → collect related searches → analyze competitors → scrape useful data → group opportunities → prioritize content
The goal isn’t to blindly publish 500 articles.
The goal is to create a database containing hundreds of potential topics, and then identify the strongest ones.
Think of it as building a mine before deciding which pieces of gold are worth digging out. ⛏️
Step 1: Start with a seed topic
First, choose a broad topic related to your website.
For example, imagine you have a website about:
- web scraping
- SEO
- automation
- digital marketing
- Python
- AI tools
Let’s take web scraping as our example.
Instead of immediately writing:
“What is web scraping?”
we want to discover all the smaller questions and problems surrounding the subject.
Our initial seed keyword could simply be:
web scraping
Now we need to expand it.
Step 2: Use Keyword Everywhere to expand the keyword universe
This is where Keyword Everywhere becomes useful.
Keyword Everywhere can display keyword data while you are searching on Google and exploring related searches.
Depending on the keyword and the features available to your account, you can investigate things such as:
- search volume
- CPC
- competition
- related keywords
- long-tail variations
- question keywords
- keyword trends
The important part isn’t finding one perfect keyword.
It’s finding hundreds of related searches that reveal what people are actually looking for.
For our “web scraping” example, we might discover topics such as:
- web scraping tutorial
- web scraping Python
- web scraping JavaScript
- web scraping tools
- web scraping API
- how to scrape a website
- scrape Google search results
- scrape product data
- scrape websites with Python
- web scraping without coding
And each of these can lead to another group of keywords.
Step 3: Don’t stop at keywords
This is where many keyword research workflows become too narrow.
A keyword tells you what someone searched for.
But the search results tell you what Google believes is relevant to that search.
That’s why the next step is to collect search-result data.
Suppose we have 50 promising keywords.
We could manually search all 50.
But if we want to scale this to hundreds or thousands of keywords, manual research quickly becomes painful.
This is where Apify enters the workflow.
Apify provides tools and ready-made Actors that can automate web data collection.
Instead of opening hundreds of Google searches manually, you can use an appropriate Apify Actor to collect search-result information at scale.
Step 4: Collect the search results with Apify
Let’s say our keyword list contains 500 potential searches.
We can feed those queries into a suitable search-engine scraping workflow.
The collected dataset can contain information such as:
- search query
- result title
- URL
- position
- description
- domain
- other available SERP information
Now something interesting happens.
We don’t just have 500 keywords anymore.
We have potentially thousands of relationships between:
keywords → search results → websites → competitors → topics
That is much more valuable.
Step 5: Look for repeated competitors
Now take the scraped results and look for domains that repeatedly appear across your keyword set.
Imagine your dataset contains results like:
| Keyword | Position | Website |
|---|---|---|
| web scraping Python | 1 | example.com |
| Python scraping tutorial | 3 | example.com |
| scrape website Python | 2 | anotherexample.com |
| web scraping tutorial | 1 | example.com |
| Python web scraper | 4 | example.com |
The interesting signal here isn’t just the individual keywords.
It’s the repetition.
If the same website appears for many related searches, it may have built strong topical coverage around that subject.
That gives us another research opportunity:
What topics are these websites covering that we aren’t?
Step 6: Turn competitor pages into content opportunities
Now we can investigate the pages ranking for our target keywords.
For example, suppose we discover that competitors have separate pages covering:
- Python web scraping
- BeautifulSoup tutorials
- Selenium scraping
- Puppeteer scraping
- scraping JavaScript websites
- scraping dynamic websites
- scraping APIs
- handling pagination
- rotating proxies
- scraping product pages
Instead of copying these articles, we use them as topic signals.
We can ask:
Do we already cover this topic?
If yes, perhaps we can improve the existing article.
Is this topic missing completely?
Add it to our content opportunity list.
Is the competitor article targeting several different intents?
Perhaps we can create a more focused article.
Are several competitors answering the same question?
That is another strong signal that the topic deserves investigation.
Step 7: Find the questions behind the keywords
One of my favorite ways to expand a topic is to look for questions.
People rarely search only for broad topics.
They search for problems.
For example:
“Puppeteer web scraping”
can lead to questions such as:
- How do I scrape a website with Puppeteer?
- Can Puppeteer scrape dynamic websites?
- How do I wait for JavaScript to load?
- How do I scrape multiple pages with Puppeteer?
- How do I extract data from a table?
- How do I handle pagination?
- How do I save scraped data as JSON?
- How do I avoid common scraping errors?
Suddenly, one keyword has become an entire content cluster.
This is exactly why I don’t recommend building a content strategy around a list of isolated keywords.
Build around problems and search intent.
Step 8: Combine Keyword Everywhere data with scraped data
Now we have two different types of information.
Keyword Everywhere gives us keyword intelligence
We can investigate:
- keyword variations
- search demand
- competition indicators
- CPC
- related searches
- questions
- trends
Apify gives us web intelligence
We can collect:
- search results
- ranking pages
- competitor domains
- titles
- URLs
- other information available from the scraped source
Put these together and you have a much stronger research dataset.
For example:
| Topic | Keyword data | SERP data | Competitors | Opportunity |
|---|---|---|---|---|
| Puppeteer scraping | Strong | Competitive | 8 | High |
| Scrape JavaScript sites | Moderate | Moderate | 5 | High |
| Scraping pagination | Moderate | Weak | 3 | Very High |
| Save scraped data to CSV | Moderate | Weak | 2 | Very High |
Now we’re no longer asking:
“What should I write about?”
We’re asking:
“Which opportunities should I pursue first?”
That’s a much better question.
Step 9: Create your 500-opportunity database
At this point, I like to put everything into a spreadsheet or database.
You could structure it like this:
| Keyword | Topic | Intent | Volume | CPC | Competition | Ranking competitors | URL | Priority |
|---|---|---|---|---|---|---|---|---|
| web scraping Python | Python | Informational | … | … | … | … | … | High |
| scrape dynamic website | JavaScript | Informational | … | … | … | … | … | High |
| scraping API | APIs | Commercial | … | … | … | … | … | Medium |
| web scraping tools | Tools | Commercial | … | … | … | … | … | High |
You don’t need every row to become an article.
That’s an important distinction.
500 opportunities does not mean 500 articles.
Some keywords will be duplicates.
Some will have the same search intent.
Some will be too competitive.
Some will have little business value.
Some should be merged into existing content.
The database is the raw material.
Step 10: Group similar keywords
This is one of the most important steps.
Suppose you discover:
- how to scrape a website with Python
- Python website scraper
- Python web scraping tutorial
- scrape websites using Python
- Python web scraping
Don’t automatically create five articles.
These searches may represent the same underlying topic.
Instead, group them into one content cluster:
Python Web Scraping
Then put the related keywords underneath it.
This helps prevent keyword cannibalization and gives you a clearer content architecture.
Step 11: Identify gaps rather than copying competitors
Here’s where the workflow becomes particularly useful.
Imagine three competitors cover the following:
Competitor A
- Python scraping
- Selenium
- BeautifulSoup
Competitor B
- Python scraping
- Puppeteer
- JavaScript scraping
Competitor C
- Python scraping
- APIs
- pagination
The overlap gives us obvious topics.
But the gaps can be even more interesting.
Maybe none of them has a good tutorial about:
“How to scrape paginated JavaScript websites with Puppeteer.”
That could be a much more interesting content opportunity than simply publishing another generic:
“What is web scraping?”
This is the basic principle behind competitor content-gap analysis.
Step 12: Prioritize the opportunities
Once you’ve collected hundreds of possibilities, don’t publish randomly.
Create a scoring system.
For example:
Opportunity Score = Search Demand + Business Value + Ranking Potential + Content Gap
You can assign each factor a score from 1 to 5.
For example:
| Factor | Score |
|---|---|
| Search demand | 4 |
| Business value | 5 |
| Ranking potential | 4 |
| Competitor gap | 5 |
| Total | 18/20 |
A topic scoring 18/20 deserves much more attention than one scoring 7/20.
You can also give extra weight to keywords with strong commercial intent.
For an affiliate website, this can make a huge difference.
Step 13: Separate informational and commercial opportunities
Not every visitor is ready to buy something.
That’s okay.
Your content strategy should include different stages of the search journey.
Informational
Examples:
- What is web scraping?
- How does web scraping work?
- How to scrape a website with Python
Problem-solving
Examples:
- How to scrape JavaScript websites
- How to handle pagination when scraping
- How to extract data from dynamic websites
Commercial investigation
Examples:
- Best web scraping APIs
- Apify alternatives
- Best web scraping tools
Transactional
Examples:
- Apify pricing
- Apify review
- Keyword research tools for SEO
This creates a content funnel rather than a random collection of articles.
Step 14: Build content clusters
Instead of publishing 500 unrelated articles, organize the opportunities into clusters.
For example:
Web Scraping
→ Python Web Scraping
→ JavaScript Web Scraping
→ Browser Automation
→ APIs
→ SERP Scraping
→ E-commerce Scraping
→ Data Extraction
→ Proxies
→ Pagination
→ Anti-bot techniques
→ Scraping Tools
Each cluster can contain multiple articles.
Then connect them with internal links.
This creates a much stronger website structure.
Step 15: Where Apify becomes especially interesting
The real advantage of this approach is that you don’t have to use Apify only once.
You can build repeatable research workflows.
For example:
Keyword list
↓
SERP collection
↓
Ranking URLs
↓
Competitor domains
↓
Competitor page collection
↓
Titles and topics
↓
Content-gap analysis
↓
Keyword database
↓
Content calendar
Once the process is built, researching hundreds of opportunities becomes much less tedious.
You are essentially turning keyword research into a small data pipeline.
And that’s much closer to how I prefer to approach SEO.
A practical workflow
Here’s the complete process in one diagram:
1. Choose a seed topic
↓
2. Expand it with Keyword Everywhere
↓
3. Export or collect your keyword ideas
↓
4. Clean and group the keywords
↓
5. Send the keywords into an Apify scraping workflow
↓
6. Collect search-result data
↓
7. Identify recurring competitors
↓
8. Analyze competitor topics
↓
9. Find missing topics and content gaps
↓
10. Group related keywords by search intent
↓
11. Score each opportunity
↓
12. Build your content calendar
↓
13. Publish and internally link the resulting content
The result: a content opportunity machine
The biggest lesson here is that you don’t need to rely on inspiration to build a content strategy.
You can create a repeatable system.
Keyword Everywhere helps you understand the keyword side of the equation.
Apify helps you collect information from the web at scale.
Together, they can turn:
one seed topic
into:
hundreds of keywords
which can become:
dozens of content clusters
which can ultimately produce:
hundreds of potential content opportunities.
The number 500 isn’t really the important part.
The important part is having a process that can reliably produce more opportunities than you could ever research manually.
Want to try the workflow?
If you want to start with keyword research, you can check out Keyword Everywhere here:
And if you want to automate the data-collection side of the workflow, explore Apify:
The interesting part isn’t using either tool in isolation.
It’s combining keyword intelligence + web data + automation into a repeatable research workflow.
And once you’ve built that workflow, your next content idea doesn’t have to come from staring at a blank page.
It can come from your data.