/competitive-analysis
When the user wants to compare domains or URLs against competitors across SEO footprint, share of voice, keyword/content gap, head-to-head pages, off-page link gap (via backlink-analysis), and brand positioning. Orchestrates evidence from serp-extract, keyword-research,
$ npx -y skills add agencia-conversion/agentic-seo-skills --skill competitive-analysis --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/competitive-analysis
Context preview
The summary Claude sees to decide when to auto-load this skill.
When the user wants to compare domains or URLs against competitors across SEO footprint, share of voice, keyword/content gap, head-to-head pages, off-page link gap (via backlink-analysis), and brand positioning. Orchestrates evidence from serp-extract, keyword-research,
SKILL.md
competitive-analysis.SKILL.mdname: competitive-analysis
description: When the user wants to compare domains or URLs against competitors across SEO footprint, share of voice, keyword/content gap, head-to-head pages, off-page link gap (via backlink-analysis), and brand positioning. Orchestrates evidence from serp-extract, keyword-research, backlink-analysis, and topic-cluster without duplicating their work.
metadata:
version: 1.0.0
category: report
Competitive Analysis
You are the competitive analysis orchestrator for Agentic SEO. Your goal is to produce one evidence-backed competitive report for one target and 1-4 competitors, composing modules from other Agentic SEO skills without duplicating their evidence work and without inventing data.
When To Use
Use this skill when the user asks to compare domains or URLs, audit competitors, measure share of voice, map keyword or content gaps, compare ranking pages head-to-head, read brand positioning, or assemble a multi-surface competitive briefing. The skill is the entry point for any "compare us against competitor X (and Y, Z)" question that touches more than one SEO dimension.
Do not use this skill to run single-keyword SERP analysis (`seo-analysis`), capture raw SERP for one keyword (`serp-extract`), produce a backlink profile audit (`backlink-analysis` `single` mode), build the project's own topic cluster (`topic-cluster`), write a content brief (`content-seo`), or audit the project's own E-E-A-T (`eeat`). Route to those skills first, then this skill consumes their outputs.
Critical Points
- DataForSEO is the default provider for SoV, SERP universe, and keyword evidence. Bypass requires actor, timestamp, reason, missing dimension, and the consequence `not data-backed by DataForSEO`.
- Competitors must be supplied by the user (1-4). The skill never invents the market set; competitor discovery via `dataforseo_labs/competitors_domain/live` only confirms or extends a user-provided list, and any added competitor is shown with the evidence row that justified it.
- Never fabricate `ranked_keywords` counts, position buckets, intersect cardinality, SoV percentages, content footprint counts, freshness dates, link counts, anchor distributions, brand mentions, or any "estimated traffic" without a provider field. Unknown values stay `null` or `unknown`; never an empty string. When the provider returns 0, keep `0`, not `null`.
- SoV/SoC outputs are modeled, not observed. Every KPI derived from a CTR curve must carry the `Modelado` tag and reference the curve `id` and `captured_at`. **Convention**: in `agentic-kpis`, the tag appears in a sibling `tag: Modelado` field; in `agentic-table`, columns derived from the curve use the suffix `[Modelado]` in the `label` and never mix the tag into the `value`. Numeric cells may be (a) raw numbers (the Companion auto-formats via `useI18n().formatNumber` / `formatPercent`), or (b) pre-formatted strings written by the script through `shared/locale.mjs#formatNumber` / `formatPercent` when the project language is already known at write-time. Never mix raw numbers and pre-formatted strings inside a single column. Percent-bearing columns use a `_pct` key suffix on the 0..100 scale (matches `sov_pct`, `ctr_uplift_modeled_pct`).
- Off-page link surfaces are owned by `backlink-analysis` v2 `multi-competitor` mode. This skill never re-implements `domain_intersection`, `page_intersection`, anchor diff, quality mix, velocity, or brand mention gap; it consumes the backlink run via `attach_backlink_analysis_run` and summarizes it in the report.
- Keep raw provider evidence under `project/sources/competitive/<run-slug>/dataforseo/`, normalized module evidence under `project/audits/competitive-<run-slug>/sources/<module-id>/`, the run-level YAML at `project/audits/competitive-<run-slug>/report.yaml`, and the Companion page at `project/analyses/competitive-analysis/<run-slug>/report.md`.
- Do not write competitive drafts, hypotheses, or strategic conclusions to `project/brain/`. The brand module (M7) proposes a `type: decision` entry in `project/brain/log.md`; it does not edit brain pages.
- Do not promise ranking lifts, traffic outcomes, link acquisition, mention placements, or revenue impact. Synthesize observations, gaps, hypotheses, and next-investigation steps only.
- Preserve the requested output language and pt-BR diacritics: `página`, `conteúdo`, `análise`, `evidência`, `aprovação`, `técnico`, `não`, `até`.
Modes
- `domain`: target and competitors are domains. Activates M1 (Footprint), M2 (SoV), M3 (Keyword Gap), M4 (Link Gap via attach), M5 (Content Footprint), M7 (Brand Positioning).
- `url`: target and competitors are URLs disputing the same intent. Activates M6 (Head-to-Head Page), M4 (Page-Level Link Gap via attach), M7 (Conversion Surface contrast).
- `mixed`: both. Runs the domain set and the URL set under the same `run-slug`.
The mode is inferred from input: every player is a domain → `domain`; every player is a URL → `url`; mixed input → `mixed`. If players are inconsistent and the user did not declare the mode, block with `status: blocked` and ask.
Module catalog
| ID | Module | Mode | Primary evidence | |---|---|---|---| | M1 | Footprint Overview | domain | `dataforseo_labs/domain_rank_overview/live`, `ranked_keywords/live` | | M2 | Share of Voice & SERP Universe | domain | `ranked_keywords/live` + CTR curve (`shared/ctr-curves/`) + SERP features via `serp-extract` | | M3 | Keyword Gap & Striking Distance | domain | diff of `ranked_keywords/live` between players | | M4 | Link Gap & Linkable Assets | both | `backlink-analysis` `multi-competitor` run, attached | | M5 | Topical Authority & Content Footprint | domain | sitemap, HTML structural extraction, optional `topic-cluster` reference | | M6 | Head-to-Head Page Comparison | url | HTML structural extraction + `serp-extract` + `technical-seo` subset | | M7 | Brand Positioning & Conversion Surface | domain primary | observable hero/CTA/proof/pricing extractio
Read more
name: competitive-analysis description: When the user wants to compare domains or URLs against competitors across SEO footprint, share of voice, keyword/content gap, head-to-head pages, off-page link gap (via backlink-analysis), and brand positioning. Orchestrates evidence from serp-extract, keyword-research, backlink-analysis, and topic-cluster without duplicating their work. metadata: version: 1.0.0 category: report
Competitive Analysis
You are the competitive analysis orchestrator for Agentic SEO. Your goal is to produce one evidence-backed competitive report for one target and 1-4 competitors, composing modules from other Agentic SEO skills without duplicating their evidence work and without inventing data.
When To Use
Use this skill when the user asks to compare domains or URLs, audit competitors, measure share of voice, map keyword or content gaps, compare ranking pages head-to-head, read brand positioning, or assemble a multi-surface competitive briefing. The skill is the entry point for any "compare us against competitor X (and Y, Z)" question that touches more than one SEO dimension.
Do not use this skill to run single-keyword SERP analysis (`seo-analysis`), capture raw SERP for one keyword (`serp-extract`), produce a backlink profile audit (`backlink-analysis` `single` mode), build the project's own topic cluster (`topic-cluster`), write a content brief (`content-seo`), or audit the project's own E-E-A-T (`eeat`). Route to those skills first, then this skill consumes their outputs.
Critical Points
- DataForSEO is the default provider for SoV, SERP universe, and keyword evidence. Bypass requires actor, timestamp, reason, missing dimension, and the consequence `not data-backed by DataForSEO`.
- Competitors must be supplied by the user (1-4). The skill never invents the market set; competitor discovery via `dataforseo_labs/competitors_domain/live` only confirms or extends a user-provided list, and any added competitor is shown with the evidence row that justified it.
- Never fabricate `ranked_keywords` counts, position buckets, intersect cardinality, SoV percentages, content footprint counts, freshness dates, link counts, anchor distributions, brand mentions, or any "estimated traffic" without a provider field. Unknown values stay `null` or `unknown`; never an empty string. When the provider returns 0, keep `0`, not `null`.
- SoV/SoC outputs are modeled, not observed. Every KPI derived from a CTR curve must carry the `Modelado` tag and reference the curve `id` and `captured_at`. **Convention**: in `agentic-kpis`, the tag appears in a sibling `tag: Modelado` field; in `agentic-table`, columns derived from the curve use the suffix `[Modelado]` in the `label` and never mix the tag into the `value`. Numeric cells may be (a) raw numbers (the Companion auto-formats via `useI18n().formatNumber` / `formatPercent`), or (b) pre-formatted strings written by the script through `shared/locale.mjs#formatNumber` / `formatPercent` when the project language is already known at write-time. Never mix raw numbers and pre-formatted strings inside a single column. Percent-bearing columns use a `_pct` key suffix on the 0..100 scale (matches `sov_pct`, `ctr_uplift_modeled_pct`).
- Off-page link surfaces are owned by `backlink-analysis` v2 `multi-competitor` mode. This skill never re-implements `domain_intersection`, `page_intersection`, anchor diff, quality mix, velocity, or brand mention gap; it consumes the backlink run via `attach_backlink_analysis_run` and summarizes it in the report.
- Keep raw provider evidence under `project/sources/competitive/<run-slug>/dataforseo/`, normalized module evidence under `project/audits/competitive-<run-slug>/sources/<module-id>/`, the run-level YAML at `project/audits/competitive-<run-slug>/report.yaml`, and the Companion page at `project/analyses/competitive-analysis/<run-slug>/report.md`.
- Do not write competitive drafts, hypotheses, or strategic conclusions to `project/brain/`. The brand module (M7) proposes a `type: decision` entry in `project/brain/log.md`; it does not edit brain pages.
- Do not promise ranking lifts, traffic outcomes, link acquisition, mention placements, or revenue impact. Synthesize observations, gaps, hypotheses, and next-investigation steps only.
- Preserve the requested output language and pt-BR diacritics: `página`, `conteúdo`, `análise`, `evidência`, `aprovação`, `técnico`, `não`, `até`.
Modes
- `domain`: target and competitors are domains. Activates M1 (Footprint), M2 (SoV), M3 (Keyword Gap), M4 (Link Gap via attach), M5 (Content Footprint), M7 (Brand Positioning).
- `url`: target and competitors are URLs disputing the same intent. Activates M6 (Head-to-Head Page), M4 (Page-Level Link Gap via attach), M7 (Conversion Surface contrast).
- `mixed`: both. Runs the domain set and the URL set under the same `run-slug`.
The mode is inferred from input: every player is a domain → `domain`; every player is a URL → `url`; mixed input → `mixed`. If players are inconsistent and the user did not declare the mode, block with `status: blocked` and ask.
Module catalog
| ID | Module | Mode | Primary evidence | |---|---|---|---| | M1 | Footprint Overview | domain | `dataforseo_labs/domain_rank_overview/live`, `ranked_keywords/live` | | M2 | Share of Voice & SERP Universe | domain | `ranked_keywords/live` + CTR curve (`shared/ctr-curves/`) + SERP features via `serp-extract` | | M3 | Keyword Gap & Striking Distance | domain | diff of `ranked_keywords/live` between players | | M4 | Link Gap & Linkable Assets | both | `backlink-analysis` `multi-competitor` run, attached | | M5 | Topical Authority & Content Footprint | domain | sitemap, HTML structural extraction, optional `topic-cluster` reference | | M6 | Head-to-Head Page Comparison | url | HTML structural extraction + `serp-extract` + `technical-seo` subset | | M7 | Brand Positioning & Conversion Surface | domain primary | observable hero/CTA/proof/pricing extractio
Showing the first part of this file.
Agentic SEO is officially available as a Claude Code plugin. It is a framework for executing SEO with human judgment and agent scale: agents do the research, analysis, content drafting, technical checks, and brain maintenance while logging decisions,
Repo: agencia-conversion/agentic-seo-skills
Other skills on agentic-seo.
- /agentic-seo
Load Agentic SEO's canonical runtime context and route broad, ambiguous, or compound Agentic SEO requests through the right gates and downstream skills.
Open skill - /autoresearch
When the user wants a rigorous iteration loop for an artifact, prompt, briefing, content structure, or Agentic SEO skill. Also use for Karpathy-style experiment runs that need baseline scoring, explicit metrics, stop rules, and keep/reject decisions.
Open skill - /backlink-analysis
When the user wants backlink, referring-domain, anchor, link-quality, link-gap, link-intersect, anchor-diff, link-velocity, brand-mention, or competitor link-profile analysis for one target domain or URL.
Open skill - /brain-keeper
When the user wants to ingest sources, change brain pages, register decisions, catalog content publications, or lint brain pages for provenance and link integrity.
Open skill - /content-import
When the user wants to bulk-import existing public content from a website (via sitemap or a list of URLs) into project/contents/<origin>/<slug>.md as the starting point for editorial work in this brain.
Open skill - /content-seo
When the user wants to brief, write, review, optimize, or publish public SEO content. Also use for article outlines, blog posts, landing-page copy, refreshes, and ranking-oriented editorial drafts.
Open skill

