Source profileQuality 82/100

MoizIbnYousaf/marketing-cli/skills/openseo-competitor-analysis/SKILL.md

openseo-competitor-analysis

Deep-dive ONE competitor's organic footprint — exact ranking keywords and URLs, content themes, backlink profile, and exploitable gaps — with findings written into brand/competitors.md. Use this skill when the user names a competitor and wants to know what to learn from them, counter, or outrank, including head-to-head comparisons against the user's own domain. For market-level mapping first, use openseo-competitive-landscape. Triggers: "analyze competitor", "competitor keywords", "competitor ba

Source repository stars
27
Declared platforms
0
Static risk flags
0
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Analyze one competitor deeply enough to decide what to learn from, avoid, counter-position against, or outrank. Findings merge into brand/competitors.md — mktg's competitor memory that competitive-intel maintains qualitatively and this skill now grounds in measured rows.

Best for

  • Use this skill when the user names a competitor and wants to know what to learn from them, counter, or outrank, including head-to-head comparisons against the user's own domain.

Not for

  • Treating every competitor keyword as desirable — because ranking for a term and PROFITING from a term are different things; filter through positioning before anything lands in a plan.
  • Inferring page-level content strategy from keyword rows alone — because a keyword list can't tell you WHY a page works (structure, depth, format). Use SERP/web evidence for page-level claims.

Compatibility matrix

Platform support, with evidence labels

PlatformStatusEvidenceWhat to check
CodexNot declaredNo explicit evidencePortability before use
Claude CodeNot declaredNo explicit evidencePortability before use
CursorNot declaredNo explicit evidencePortability before use
Gemini CLINot declaredNo explicit evidencePortability before use
Open the compatibility checker

Installation

Inspect first. Install second.

The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

Source-detected install commandSource
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/openseo-competitor-analysis"
Safe inspection promptEditorial

Inspect the Agent Skill "openseo-competitor-analysis" from https://github.com/MoizIbnYousaf/marketing-cli/blob/f12fbcbe4929584697b309b9096c9427b0cfce8e/skills/openseo-competitor-analysis/SKILL.md at commit f12fbcbe4929584697b309b9096c9427b0cfce8e. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

Workflow

What the source asks the agent to do

  1. 01

    Workflow

    1. getdomainoverview for the competitor (and the user's domain when comparing). 2. getrankedkeywords for the competitor with sensible filters; same for the user, or getserpresults for shared terms when a lighter check suffices. 3. findserpcompetitors when the supplied competitor…

    getdomainoverview for the competitor (and the user's domain when comparing).getrankedkeywords for the competitor with sensible filters; same for the user, or getserpresults for shared terms when a lighter check suffices.findserpcompetitors when the supplied competitor's search overlap is unclear.
  2. 02

    On Activation

    1. Catalog + binding: mktg catalog info openseo --json --fields configured + .seo/openseo.json. No OpenSEO → hand off to competitive-intel (Exa qualitative), labeling metrics unknown. 2. Brand grounding: read brand/competitors.md + brand/positioning.md (tolerate templates). If t…

    Catalog + binding: mktg catalog info openseo --json --fields configured + .seo/openseo.json. No OpenSEO → hand off to competitive-intel (Exa qualitative), labeling metrics unknown.Brand grounding: read brand/competitors.md + brand/positioning.md (tolerate templates). If the competitor isn't named, ask — never guess the domain.1. Catalog + binding: mktg catalog info openseo --json --fields configured + .seo/openseo.json. No OpenSEO → hand off to competitive-intel (Exa qualitative), labeling metrics unknown. 2. Brand grounding: read brand/comp…
  3. 03

    OpenSEO MCP Tools

    getdomainoverview: baseline organic traffic + keyword count (both domains when comparing).

    getdomainoverview: baseline organic traffic + keyword count (both domains when comparing).getrankedkeywords: exact keyword/URL/rank/intent/traffic rows. Use maxRank, minSearchVolume, excludeBrandTerms, resultTypes filters to keep rows relevant.getbacklinksoverview: backlink/referring-domain profile (may be unavailable — continue without it).
  4. 04

    Output Format

    Start with: snapshot, biggest lesson, best opportunity to beat them. Then:

    Start with: snapshot, biggest lesson, best opportunity to beat them. Then:

Permission review

Static risk signals and limitations

No configured static risk pattern was detected

This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

Evidence record

Why each signal appears

EvidenceSourceComputedTestedEditorial
SignalValueEvidence typeMeaning
Quality score82/100ComputedDocumentation, specificity, maintenance, and trust rules
Repository stars27SourceRepository attention, not individual Skill quality
Compatibility0 platformsSourceDeclared in the catalog source record
Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

Pinned source

Provenance and original SKILL.md

Repository
MoizIbnYousaf/marketing-cli
Skill path
skills/openseo-competitor-analysis/SKILL.md
Commit
f12fbcbe4929584697b309b9096c9427b0cfce8e
License
MIT
Collected
2026-07-28
Default branch
main
View the original SKILL.md

OpenSEO Competitor Analysis

Analyze one competitor deeply enough to decide what to learn from, avoid, counter-position against, or outrank. Findings merge into brand/competitors.md — mktg's competitor memory that competitive-intel maintains qualitatively and this skill now grounds in measured rows.

On Activation

  1. Catalog + binding: mktg catalog info openseo --json --fields configured + .seo/openseo.json. No OpenSEO → hand off to competitive-intel (Exa qualitative), labeling metrics unknown.
  2. Brand grounding: read brand/competitors.md + brand/positioning.md (tolerate templates). If the competitor isn't named, ask — never guess the domain.

OpenSEO MCP Tools

  • get_domain_overview: baseline organic traffic + keyword count (both domains when comparing).
  • get_ranked_keywords: exact keyword/URL/rank/intent/traffic rows. Use maxRank, minSearchVolume, excludeBrandTerms, resultTypes filters to keep rows relevant.
  • get_backlinks_overview: backlink/referring-domain profile (may be unavailable — continue without it).
  • find_serp_competitors: validate the named competitor actually overlaps in search.
  • get_serp_results: head-to-head SERP checks for the important shared terms.
  • get_search_console_performance: when comparing to the user's domain and GSC is connected, the USER's baseline is first-party — never estimate your own side from third-party data.
  • research_keywords: expand gap terms.

Workflow

  1. get_domain_overview for the competitor (and the user's domain when comparing).
  2. get_ranked_keywords for the competitor with sensible filters; same for the user, or get_serp_results for shared terms when a lighter check suffices.
  3. find_serp_competitors when the supplied competitor's search overlap is unclear.
  4. Group keywords into themes: product/category, alternatives/comparisons, templates/tools, educational guides, branded demand.
  5. get_backlinks_overview when authority appears to explain rankings.
  6. get_serp_results for the important head-to-head terms.
  7. Synthesize the plan: what they do well, where they're vulnerable, which pages/keywords to pursue, what NOT to copy.
  8. Merge into brand/competitors.md (preserve existing sections; date the entry; confirm before overwriting populated competitor entries).
  9. Hand off: competitor-alternatives for "X vs Y" pages, seo-content for gap-driven briefs, openseo-keyword-clustering for page mapping.

Output Format

Start with: snapshot, biggest lesson, best opportunity to beat them. Then:

AreaCompetitor patternEvidenceOpenSEO opportunity

Anti-Patterns

  • Treating every competitor keyword as desirable — because ranking for a term and PROFITING from a term are different things; filter through positioning before anything lands in a plan.
  • Inferring page-level content strategy from keyword rows alone — because a keyword list can't tell you WHY a page works (structure, depth, format). Use SERP/web evidence for page-level claims.
  • Estimating the user's own performance from third-party data when GSC exists — because first-party clicks/impressions/position are free and exact; third-party estimates of your own site are the worst data in the room.
  • Recommending "copy what they do" — because imitation pages lose to the original on authority and freshness. Recommend a stronger angle on the same intent, never a replica.
  • Separating evidence from inference nowhere — because "they rank for X" (evidence) and "their content strategy is Y" (inference) carry different confidence and must read differently in brand/competitors.md.

Adapted from every-app/open-seo .agents/skills/competitor-analysis (MIT). Workflow upstream; mktg brand-memory writes and handoff wiring added here.

Alternatives

Compare before choosing

Computed 9027

MoizIbnYousaf/marketing-cli

competitor-alternatives

Creates high-converting 'X vs Y' and 'X alternatives' SEO pages that capture comparison search traffic. Researches competitors, writes honest comparison content, and adds schema markup (FAQPage, ItemList). Use when someone needs alternatives pages, comparison content, or says 'alternatives page', 'vs page', 'comparison', 'competitor alternatives', 'X vs Y page', or wants to capture competitor brand search traffic with SEO content. Also trigger when someone wants to rank for competitor brand name

Computed 8627

MoizIbnYousaf/marketing-cli

seo-content

Create high-quality, SEO-optimized content that ranks AND reads like a human wrote it. Performs live SERP gap analysis, writes with anti-AI detection techniques, and adds schema markup. Use when someone needs a blog post, article, SEO page, or wants content that drives search traffic. Triggers on 'SEO content', 'blog post', 'article', 'SERP', 'programmatic SEO', 'content at scale', 'write a post about', 'rank for', or 'search-optimized content'. Two modes: single article or programmatic SEO at s

Computed 8227

MoizIbnYousaf/marketing-cli

openseo-keyword-research

Discover keyword opportunities with MEASURED volume, keyword difficulty, CPC, and intent from OpenSEO, then write them into brand/keyword-plan.md. Use this skill whenever someone asks for keyword difficulty, KD, search volume, keyword ideas with metrics, striking-distance opportunities from Search Console, or SERP-validated keyword priorities. For qualitative research without an OpenSEO connection, use mktg's keyword-research instead (metrics will be unknown). Triggers: "keyword difficulty", "se

Computed 7527

MoizIbnYousaf/marketing-cli

openseo-competitive-landscape

Map who is winning an SEO market with measured data — recurring SERP domains, organic footprints, winning content themes, backlink authority, and the gaps worth attacking. Use this skill for market-level questions ("who ranks for X", "how competitive is this space", "where are the SEO openings") before committing to keyword targets or content themes. For one named competitor, use openseo-competitor-analysis instead. Triggers: "competitive landscape seo", "who ranks for", "seo market map", "how c