semantic-gap-analysis
Skill1 starsChanged 7 months agoApache-2.0View on GitHub
Use when a page ranks for a keyword but isn't in the top 3 and you want to know exactly what's missing. The agent compares the page to the top-ranking competitors and produces a specific list of entities, subtopics, and relationships to add.
In this repository10 other files it gives its agents.
- content-briefSkill
- eeat-auditSkill
- expert-interviewSkill
- featured-snippet-optimizerSkill
- improve-contentSkill
- keyword-deep-diveSkill
- linkbuildingSkill
- page-auditSkill
- topic-cluster-planningSkill
- write-contentSkill
The file
We split this skill into the rules it gives an agent
3 rules. About 0 are common, 3 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
All named entities (people, places, products, concepts, dates, organizations)
- Distinctive: line 26
All predicates (verbs that signal the contextual depth — for "coffee brewing", verbs like grind, extract, bloom, tamp)
- Distinctive: line 39
Create three lists side by side:
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Semantic Gap Analysis
Identifies the exact entities, subtopics, predicates, and relationships that are missing from your page but present in top-ranking competitors. This is the content brief for what to add — not a generic "write more depth" recommendation.
Google's NLP models (BERT, MUM, Gemini) build a semantic graph of your content. If you're missing nodes or edges that competitors have, your content reads as shallow to the algorithm. This skill finds the exact missing nodes.
Input
- URL of your page (required)
- Target keyword the page should rank for (required)
Role
You are a semantic SEO specialist in the tradition of Koray Tuğberk GÜBÜR. You think in entities, attributes, and relationships — not keywords.
Step 1: Read Your Page
Fetch the URL. Extract:
- Main topic and sub-topics
- All named entities (people, places, products, concepts, dates, organizations)
- All predicates (verbs that signal the contextual depth — for "coffee brewing", verbs like grind, extract, bloom, tamp)
- Internal structure: H2/H3 hierarchy
- What the page explicitly covers and what it implicitly assumes
Step 2: Read the Top 3 Competitors
Google the target keyword. Fetch the top 3 results in full. For each:
- Extract entities, predicates, and structural elements the same way
- Note what they cover that your page doesn't
- Note the depth at which they discuss each entity (single mention vs. full section)
Step 3: Build the Semantic Inventory
Create three lists side by side:
| Your page covers | Competitors cover but you don't | Unique to your page |
Be specific. "Pricing models" is too generic. "Three-tier vs usage-based pricing with examples from Stripe and Twilio" is specific.
Step 4: Classify the Gaps
For each gap, classify its importance:
- Core gap — all 3 competitors cover this, you don't. Critical to add.
- Differentiator gap — 1-2 competitors cover this and it's working for them. Worth adding.
- Commodity gap — everyone covers this superficially. Add briefly or skip.
- Opportunity gap — competitors skip this, you could own it. Your angle.
Step 5: Map Entity Relationships
For the core gaps, identify the Entity-Attribute-Value (EAV) relationships that should exist:
- Entity: what is it
- Attribute: what properties does it have that matter
- Value/Relation: how does it relate to other entities in this topic space
Example for "espresso machine reviews":
- Entity: La Marzocco Linea Mini
- Attribute: brew pressure, boiler type, price point
- Relation: competes with Rocket Appartamento, used by third-wave cafes
This is what competitors are implicitly encoding when they write detailed sections — you need the same density.
Step 6: Output
Semantic Fingerprint
One sentence on what your page actually "talks about" to an NLP model, and what it should talk about.
Your Page
List of entities and predicates currently present.
Competitor Coverage
What each top 3 competitor covers that yours doesn't (specific sections, with brief notes on why they chose to include them).
Gap List
| Gap | Importance | Add to section | Depth required |
Importance: Core / Differentiator / Commodity / Opportunity. Section: where in your H2/H3 structure this belongs. Depth: Paragraph / subsection / full section.
Entity Relationships to Encode
The EAV triples that should appear in your page, even if just in passing. These are the signals that tell Google "this content understands the topic space."
Unique Angle to Preserve
What your page does well that competitors don't. Don't lose this when adding depth.
Content Addition Plan
Specific sections to add or expand, in order of priority. Each with: section heading, 2-3 sentence description of what goes in it, estimated word count.
What to Ignore
- Keyword density for related terms — don't force. Semantic relevance is about covering the entities, not repeating the keyword variants.
- Fluff additions — every section you add should carry actual information. Padding defeats the purpose.
- Wikipedia-style completeness — you don't need to cover everything. You need to cover enough that an NLP model recognizes the topic depth.
Next Step
Turn the content addition plan into an actual rewrite: use the improve-content skill with your page URL as input, and paste the gap list as context.
Bundled references
Load from references/ only when the step calls for them.
eav-triple-worked-examples.md— full Entity-Attribute-Value examples across 6 niches for Step 5 (when the EAV framework feels abstract and you need concrete analogues)predicate-verb-fields.md— domain-specific verb fields that signal contextual depth to NLP models (Step 3, when extracting predicates from competitor pages)gap-classification-rubric.md— detailed scoring for Core / Differentiator / Commodity / Opportunity gaps (Step 4, when classification is ambiguous)topic-cluster-strategy.md— how the gap list feeds into cluster architecture (optional, when the gaps reveal missing spokes rather than in-page sections)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

