| name | openseo-competitive-landscape |
| description | 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 competitive is", "serp competitors". |
| category | seo |
| tier | nice-to-have |
| layer | strategy |
| reads | ["brand/landscape.md","brand/competitors.md"] |
| writes | ["brand/landscape.md"] |
| env_vars | ["OPENSEO_API_KEY","OPENSEO_API_BASE"] |
| triggers | ["competitive landscape seo","who ranks for","seo market map","how competitive is","serp competitors"] |
| allowed-tools | ["Bash(mktg catalog *)","Bash(mktg run *)"] |
OpenSEO Competitive Landscape
Answer with measured data: who is winning this SEO market, what content works for them, and where the openings are. Findings update brand/landscape.md (mktg's market memory) with an evidence tier mktg's landscape-scan cannot reach alone.
On Activation
- Catalog + binding:
mktg catalog info openseo --json --fields configured + .seo/openseo.json. No OpenSEO → fall back to landscape-scan (Exa qualitative) and label authority/metrics unknown.
- Brand grounding: read
brand/landscape.md + brand/competitors.md (tolerate templates) — known competitors seed the query set; positioning filters "SEO competitor" from "business competitor."
OpenSEO MCP Tools
research_keywords + get_keyword_metrics: build + validate a 5–10 query market set (mixed intent: informational, commercial, comparison, tool terms).
find_serp_competitors: recurring domains across the keyword set at scale — use before manual SERP counting.
get_serp_results: inspect live SERP composition/features (≤10 queries per call).
get_domain_overview: organic footprint for top 3–5 recurring domains.
get_ranked_keywords: exact ranking keywords/URLs/intents for leaders.
get_backlinks_overview: authority comparison where rankings look authority-driven (may be unavailable on some accounts — continue without it).
get_search_console_performance: when the user's own domain is compared and GSC is connected, anchor THEIR side with first-party data instead of third-party estimates.
Workflow
- Define the market query set (positioning-filtered, mixed intent).
find_serp_competitors for recurring domains; get_keyword_metrics to validate demand/difficulty.
- Group recurring domains by type: direct product competitors, publishers/media, marketplaces/directories, communities/forums, docs/resources.
get_domain_overview top 3–5; get_ranked_keywords for direct competitors + relevant publishers; get_backlinks_overview where authority explains wins.
- Synthesize: winning content types, SERP formats, authority advantages, underserved angles.