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.
MoizIbnYousaf/marketing-cli/skills/openseo-competitor-analysis/SKILL.md
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
Decision brief
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.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/MoizIbnYousaf/marketing-cli --skill "skills/openseo-competitor-analysis"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
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…
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…
getdomainoverview: baseline organic traffic + keyword count (both domains when comparing).
Start with: snapshot, biggest lesson, best opportunity to beat them. Then:
Permission review
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
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 82/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 27 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
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.
mktg catalog info openseo --json --fields configured + .seo/openseo.json. No OpenSEO → hand off to competitive-intel (Exa qualitative), labeling metrics unknown.brand/competitors.md + brand/positioning.md (tolerate templates). If the competitor isn't named, ask — never guess the domain.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.get_domain_overview for the competitor (and the user's domain when comparing).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.find_serp_competitors when the supplied competitor's search overlap is unclear.get_backlinks_overview when authority appears to explain rankings.get_serp_results for the important head-to-head terms.brand/competitors.md (preserve existing sections; date the entry; confirm before overwriting populated competitor entries).competitor-alternatives for "X vs Y" pages, seo-content for gap-driven briefs, openseo-keyword-clustering for page mapping.Start with: snapshot, biggest lesson, best opportunity to beat them. Then:
| Area | Competitor pattern | Evidence | OpenSEO opportunity |
|---|
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
MoizIbnYousaf/marketing-cli
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
MoizIbnYousaf/marketing-cli
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
MoizIbnYousaf/marketing-cli
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
MoizIbnYousaf/marketing-cli
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