Skip to content
cccskills
FreePublished on GitHub

competitive-landscape

Compare several competitors to see which sites lead a search market, what content earns rankings, and where opportunities remain. The report covers keyword reach, links from other sites, and practical next steps.

OriginalShow the original description

Map SEO market leaders, winning content themes, keyword coverage, backlinks, and strategic gaps.

See how to install

Good for

  • Identifying leading sites in a search market
  • Comparing competitors' successful content themes
  • Finding underserved topics to target
  • Comparing organic search and Maps leaders in a local market

Files included (1)

  • SKILL.md6.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

OpenSEO Competitive Landscape

Goal

Answer: "Who is winning this SEO market, what content is working for them, and where are the openings?"

Use this when the user wants a market-level view across several competitors. For a deep dive on one domain, use competitor-analysis.

Required inputs

  • projectId
  • Topic, seed keywords, market/category, or user's domain
  • Optional known competitors
  • Optional location/language

Project context

The project-context tools are free and shared with the app and other agents.

  1. Call get_project_context first and ground the market read in it — the saved competitors are the starting roster, and the business and positioning decide who counts as a competitor.
  2. This skill needs competitors. If none are saved, run a minimal inline setup: ask the user who they compete with, or infer a shortlist from find_serp_competitors and the site and confirm it, write it back with update_project_context (addCompetitors), then continue the landscape work. Never front-load the full interview; suggest seo-project-setup at the end for the rest.
  3. Before spending credits, check the research log. If the same research ran within the last 30 days, reuse that result and say so instead of re-buying it.
  4. On finish, write back what is durable with update_project_context — every confirmed competitor via addCompetitors with a short note on why they matter, plus removeCompetitors for entries you added that turned out irrelevant (leave rows the user added alone) — and append a research log entry: { appendResearchLog: { summary: "Competitive landscape: <market/query set>. Verdict: <conclusion>" } }.

Deliver as a report

Deliver through the seo-report skill, saving with skill: "competitive-landscape". If that skill is not available, say so and stop before writing HTML.

OpenSEO MCP tools

  • research_keywords: discover representative market queries.
  • get_keyword_metrics: validate known query sets with volume, difficulty, intent, and trends.
  • get_serp_results: identify recurring ranking domains across target queries.
  • find_serp_competitors: compare domains competing across supplied keywords; use this before manual SERP counting when a keyword set is available.
  • get_domain_overview: size organic footprint for candidate leaders.
  • get_search_console_performance: when the user's own domain is in the comparison and Search Console is connected, anchor their position with first-party clicks/impressions/CTR rather than third-party estimates.
  • get_ranked_keywords: find exact ranking keywords, URLs, ranks, intents, and SERP result types for leaders.
  • get_backlinks_overview: compare backlink/referring-domain strength where relevant.
  • search_local_businesses, get_local_serp_results, and get_google_business_questions: use for local SEO markets where proximity, Maps rankings, business categories, reviews, or Google Q&A affect who is winning.

Workflow

  1. Define the market query set:
    • Use provided keywords, or call research_keywords to build 5-10 representative queries.
    • Include mixed intent: informational, commercial, comparison, and tool/software terms when applicable.
    • For local SEO, include neighborhood/city/service-area queries and identify the priority locations or coordinates.
  2. If the query set is already known, use get_keyword_metrics to validate relative demand and difficulty and find_serp_competitors to identify recurring domains at scale.
  3. For local SEO, call search_local_businesses and get_local_serp_results for the highest-priority location(s) before synthesizing winners. Use get_serp_results as a complement for organic pages, not as the only local evidence.
  4. Call get_serp_results for representative queries when live SERP composition, ranking URLs, or SERP features need inspection. Send at most 10 queries per call.
  5. Identify recurring domains and group them by type:
    • Direct product competitors
    • Publishers/media
    • Marketplaces/directories
    • Communities/forums
    • Documentation/resources
  6. For the strongest recurring domains, call get_domain_overview; default to the top 3-5 domains before expanding.
  7. For direct competitors and relevant publishers, call get_ranked_keywords.
  8. Use get_backlinks_overview when backlink authority appears important or the user asks why a domain is winning. Backlinks may be unavailable if the account has not enabled that data; continue with SERP/domain evidence if it fails.
  9. Synthesize patterns: content types, themes, SERP formats, local-pack signals, authority advantages, and underserved angles.

Output format

h1: the market or category.

If a report template applies (see seo-report), its sections and tone replace this list.

Sections in this order:

  1. The market read — one or two opening sentences naming the leaders, the most winnable area, and the biggest barrier.
  2. Who is winning — a table of domain, type, organic footprint, winning themes, and the gap. Label domain types explicitly.
  3. Why they win — one finding per pattern, the Fix pointing at what the user should do instead.
  4. Gaps and openings — a table of theme, demand, and who currently owns it, plus a bar chart when a handful of themes carry the demand.
  5. What to do next — an ordered list ending in the next workflow to run: competitor analysis, keyword clustering, or a content brief.
  6. How this report was made — opens with the skill link line from seo-report, pointing at https://openseo.so/docs/skills/competitive-landscape ("OpenSEO Competitive Landscape skill"), then the query set used, and a note calling the read directional when the query set was small.

Guardrails

  • Distinguish SEO competitors from business competitors.
  • Do not overstate exact traffic when OpenSEO returns estimates.
  • If using a small query set, call the result directional.
  • Do not assume a publisher is a product competitor; label domain types clearly.
  • For local markets, distinguish organic-page winners from Maps/local-pack winners.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Research questions about a market, examine recorded ChatGPT answers and cited websites, and identify themes where a brand appears or is missing. Receive ranked prompt groups and suggested questions for future tracking.

  • Finding question themes related to a product category
  • Checking brand mentions and cited websites
  • Identifying themes with limited brand visibility
every-app/open-seo24.1KUpdated Oct 14, 2026

Audit how a brand appears in AI answers by examining mentions, website citations, competitors, and cited pages. Receive one to three evidence-based priorities, such as improving a page, seeking inclusion in a relevant source, or fixing access barriers.

  • Investigate why AI answers recommend competitors
  • Check brand mentions and website citations
  • Prioritize pages to improve or create
every-app/open-seo24.1KUpdated Oct 14, 2026

Analyze a named competitor's unpaid search traffic, ranking keywords, content themes, and links from other websites. Identify strengths, weaknesses, and relevant opportunities, with an optional comparison to your own site and a report of recommended actions.

  • Investigate a specific competitor's SEO strengths
  • Find pages and keywords worth targeting
  • Compare a competitor with your own site
every-app/open-seo24.1KUpdated Oct 14, 2026

Create or update skills using OpenSEO's repository conventions. Keep one canonical source, distinguish internal and public workflows, maintain Claude Code links, and register public skills in documentation, the in-app agent, and plugin bundles.

  • Add a new skill to the OpenSEO repository
  • Turn a development workflow into an internal skill
  • Repair drift between skill directories
every-app/open-seo24.1KUpdated Oct 14, 2026

deslop

FreeSummary

Edit blog posts, documentation, marketing copy, and PR descriptions to remove formulaic AI writing patterns. Replace filler, vague claims, and staged emphasis with plain statements while preserving concrete details and the writer's voice.

  • Editing AI-drafted blog posts
  • Removing wordy introductions from documentation
  • Toning down exaggerated marketing copy
every-app/open-seo24.1KUpdated Oct 14, 2026

evaluate-skill

FreeSummary

Evaluate changes to OpenSEO skills by running fresh Codex sessions against a local backend. Compare saved reports using weighted criteria, then inspect tool logs to understand failures and check whether revised instructions improve output.

  • Comparing report quality before and after skill edits
  • Checking revised instructions across different websites
  • Scoring SEO audit reports against defined criteria
every-app/open-seo24.1KUpdated Oct 14, 2026

See all skills by every-app

Report a problem with this skill