How I Find Content Gaps With Claude

Editorial illustration showing a personal content library compared with competitors to reveal a missing content opportunity.

For a while, my content gap process was just me, six competitor tabs open, and a notebook. I’d read an article, feel like something was missing, and try to guess what. That’s not a process. That’s improvising with extra steps.

Claude didn’t fix that by handing me a “here are 20 topics you’re missing” list. Those lists look impressive. Half of them are usually garbage — duplicates of things I’d already published under a different title, or topics that sound smart but don’t match what anyone’s actually searching for.

What actually changed my output was turning content gap analysis into a repeatable sequence instead of a single clever prompt. I feed Claude my own content first, then competitors, then make it sort what’s left into categories — before I ever look at a “priority” score it hands me.

Here’s the exact six-step version I run every time I open a new cluster.

The Quick Version: My 6-Step Gap-Finding Process

  1. Show Claude what I’ve already written — a full content inventory, not a topic list.
  2. Hand it competitor sitemaps, not single URLs, so it sees their whole footprint.
  3. Sort every gap into one of four buckets — keyword, entity, information, or bridge.
  4. Dedupe against my own site before I trust anything on the list.
  5. Score the gaps myself — I don’t let Claude rank them by “opportunity.”
  6. Check Google Search Console before anything touches my roadmap.

Each step exists because I got burned skipping it. Here’s the reasoning behind each one.

Step 1: I Show Claude What I’ve Already Written

Before I ask Claude to find anything, I paste in my full content inventory — every published URL, title, and primary keyword in the cluster. It’s a fast content audit, and it has to come first.

Skip this step and Claude has no idea what “a gap” even means for my site. It’ll suggest topics I covered two months ago, just phrased differently. I learned that after wasting an afternoon “discovering” gaps that were actually live articles.

This is also where a Claude Project earns its keep. I keep the inventory and my past gap-analysis notes in the project’s knowledge, so I’m not rebuilding this list from scratch every session. Claude’s memory picks up fragments of this too, but I still treat the Project file as the source of truth — memory is a backstop, not the system.

Step 2: I Hand Claude the Competition’s Sitemap, Not Just Their URL

A single competitor URL tells Claude about one article. A sitemap or full blog index tells it about a strategy.

I pull 2–3 competitor sitemaps for the same cluster and paste the URLs and titles in alongside my own list, then ask Claude to compare footprints — not just topics. This is competitor analysis at the structural level, not the article level.

The difference matters because a single-article comparison misses structural gaps: the fact that a competitor has an entire sub-cluster on something I’ve never touched. That’s a gap worth six new articles, not one.

Step 3: I Make Claude Sort Every Gap Into One of Four Buckets

A flat list of “content ideas” is close to useless. I make Claude categorize every gap before I look at it, because each type gets solved differently.

The prompt itself is simple: “Sort every gap on this list into one of four categories — Keyword Gap, Entity Gap, Information Gap, or Bridge Topic — and explain your reasoning for each.”

Gap TypeWhat It Actually MeansWhat I Do With It
Keyword GapA topic competitors rank for that I don’t cover at allNew spoke article
Entity GapA tool, term, or concept competitors explain that I never defineAdd a section to an existing article
Information GapA question my own articles raise but never answerUpdate the existing piece
Bridge TopicA topic connecting two clusters I already haveNew article, plus internal links both ways

This is also where information gain comes in — not just whether I cover a topic, but whether I’d add anything competitors haven’t already said. Sorting first means I’m not writing six new articles when two updates would’ve done the job.

Step 4: I Dedupe Against My Own Site Before I Trust the List

This is the mistake I made most often early on: get a gap list, get excited, start outlining — before checking whether I’d already written something close enough to cannibalize it.

Now every surviving gap gets run back through my own content inventory, and I ask Claude specifically whether the search intent overlaps with anything I’ve already published. Not the title. The intent.

If two topics would rank for the same query, I don’t need a new article. I need a better one.

Step 5: I Score Gaps Myself — I Don’t Let Claude Rank Them

Ask Claude for an “opportunity score” and it’ll give you one. I ask for one and then ignore about half of it.

It doesn’t know my current rankings, my domain authority, or how much editorial time I actually have this month. So I score what’s left against three things I control: relevance to the cluster, realistic intent match, and whether I can back the article with real experience instead of theory.

That last filter kills more “gaps” than anything else. If I can’t back it with real experience, it doesn’t go on the roadmap — no matter how good the keyword looks.

Step 6: Nothing Hits My Roadmap Without a GSC Check

Claude’s training data has a cutoff. My rankings don’t wait for it.

Before anything graduates from “gap” to “roadmap item,” I check Google Search Console for related queries I might already be getting impressions on, then scan the current top-ranking pages myself.

More than once, a “gap” got filled by three other sites in the time it took me to run this workflow. This step is what catches that.

The Mistake That Wasted the Most of My Time

Early on, I skipped Step 4 constantly. I’d get a gap list, feel the “20 new article ideas” rush, and start outlining without checking my own site first.

The result: I’d write half an article before realizing I already had a piece covering the same intent under a different title. That’s not a new article. That’s a cannibalization problem I built myself.

The second mistake was trusting Claude’s “opportunity” language at face value.

“High potential” and “significant gap” sound authoritative. They’re not evidence. They’re Claude describing a pattern in the text I gave it — not a verified market signal.

Now every gap gets checked against my own site and against real search data before it earns a place on the roadmap.

Where Claude Actually Gets This Wrong

I don’t pretend this workflow makes Claude infallible. Here’s where it actually breaks, and what I do about each:

  • It hallucinates plausible-sounding gaps. A topic can sound like a real opportunity and reflect zero actual search demand. Nothing reaches the roadmap without a GSC or SERP check.
  • Its training data isn’t current. It doesn’t know what a competitor published last week. I always feed it a fresh, manually pulled competitor list instead of asking what’s “currently” ranking.
  • It suggests duplicates when I skip context. Without my content inventory in front of it, it re-suggests topics I’ve already covered.
  • It overestimates weak opportunities. “Significant gap” and “strong opportunity” are language patterns, not data. I discount that framing and score gaps myself.

None of this makes the workflow less useful. It just means the workflow ends with me, not with Claude.

My Pre-Roadmap Checklist

Before any gap makes it onto my actual content calendar, I run it through this:

  • [ ] Checked GSC — not already getting impressions under a different URL
  • [ ] Checked live SERPs — not already crowded by three competitors
  • [ ] Doesn’t overlap in search intent with anything I’ve already published
  • [ ] Fits the cluster instead of being a tangent
  • [ ] I can write it from real experience, not just theory

If a gap fails more than one of these, it doesn’t make the cut — no matter how good it looked in Claude’s first list.

What This Workflow Actually Buys Me

Claude doesn’t find my content gaps. It helps me see my own site and my competitors’ sites clearly enough to find them myself, faster than I could manually.

The workflow only works because I never skip the boring parts — feeding it my own inventory, deduping against myself, checking real data before anything hits the roadmap. Skip those and you’re back to a fancier version of guessing.

That’s the actual difference between a gap list and a content roadmap, and it’s how topical authority gets built — one honest gap at a time, not one impressive-looking list at a time.

That’s the input stage. The rest of my Claude SEO workflow — from outline to publish — is its own guide.

Leave a Comment