Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

competitive-landscape · every-app — Claude Code skill: install

This skill maps SEO competitors, content themes, keyword coverage, and backlinks. Use it to find gaps across a market.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add every-app/open-seo --skill competitive-landscape -a claude-code
Open on GitHub

What competitive-landscape does

The skill builds a market-level SEO view from a topic, seed keywords, category, or domain. It finds domains that recur in search results, labels them as products, publishers, marketplaces, communities, or resources, then compares organic footprint, ranking keywords, content themes, and backlinks.

It works through OpenSEO MCP tools such as research_keywords, get_keyword_metrics, find_serp_competitors, get_serp_results, get_domain_overview, get_ranked_keywords, and get_backlinks_overview. Local SEO adds business and local-result checks. The findings are delivered through the seo-report skill.

You need a projectId plus a topic or query set, and the skill needs competitors to compare. Before buying more research, it checks the research log and reuses matching work from the last 30 days, so the reader should inspect that history before starting another run.

What it helps with

  • compare domains that recur across target queries
  • map the content themes used by market leaders
  • check competitors’ exact ranking keywords
  • measure backlink strength where it affects the result
  • spot underserved topics and search angles

Example prompts for the agent

  • Build a competitive SEO landscape for `projectId` around the topic “sales analytics,” then identify recurring ranking domains.
  • Compare the saved competitors by ranking keywords, URLs, and backlinks, and deliver the findings through `seo-report`.
  • Run a local SEO comparison for the target city and separate organic-page winners from Maps winners.

How to install competitive-landscape

1Skills CLI (Vercel)

npx skills add every-app/open-seo --skill competitive-landscape -a claude-code

2Manually: put the files in place

~/.claude/skills/competitive-landscape/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/competitive-landscape/

From the same set9

The whole set →
keyword-research every-app Finds search query opportunities via OpenSEO MCP tools, evaluates SERP metrics, and saves vetted keywords to the project. Claude Code CX Codex Cursor +1 6,700installs competitor-analysis every-app A skill for analyzing one competitor's organic footprint: keywords, content themes, backlinks, and gaps. Delivers a report with a winnable action plan. Claude Code CX Codex Cursor +1 6,600installs link-prospecting every-app Finds realistic link prospects from search results and competitor backlinks, uncovers public contact details, and drafts targeted outreach pitches. Claude Code CX Codex Cursor +1 6,500installs keyword-clustering every-app Groups keywords by search intent and assigns each cluster to an existing or proposed page. Claude Code CX Codex Cursor +1 6,500installs seo-coach every-app Enters an OpenSEO coach mode to explain search optimization workflows, suggest concrete next actions, and guide agent research tools. Claude Code CX Codex Cursor +1 6,500installs seo-project-setup every-app Collects a site's SEO context, goals, positioning, competitors, and key pages. Use it before running other OpenSEO skills. Claude Code CX Codex Cursor +1 6,500installs seo-audit every-app Audits a domain with OpenSEO tools, finds qualified organic search opportunities, and produces a data-backed action report. Useful when preparing an SEO review for non-experts. Claude Code CX Codex Cursor +1 5,100installs local-seo every-app Audits Google Business Profiles, benchmarks them against local rivals, and maps Google Maps visibility across a coordinate grid. Claude Code CX Codex Cursor +1 4,300installs

Other versions of competitive-landscape

Similar

content-creation official anthropics This skill helps draft marketing content for blogs, social posts, newsletters, landing pages, and more. Use it when channel formatting, SEO copy, headlines, or CTAs matter. Claude Code CX Codex Cursor +1 4,900installs data-manager-api-event-ingestion official google Guides event and conversion ingestion to Google products through the Data Manager API. Use it for offline conversions, lead conversions, and Google Analytics events. Claude Code Gemini CLI CX Codex 6,148installs seo-audit official anthropics This skill audits a site’s search visibility, pages, technical signals, and competitor content. Use it to identify SEO work and sort findings into priorities. Claude Code CX Codex Cursor +1 3,700installs seo AgriciDaniel Runs site audits, technical checks, Schema.org validation, and Generative Engine Optimization. Suitable for SaaS, e-commerce, and local business audits. Claude Code CX Codex Cursor +1 9,000installs seo-audit coreyhaines31 Diagnoses technical SEO issues, indexing drops, and metadata errors. Identifies why your site is losing organic search rankings in Google. Claude Code CX Codex Cursor +1 236,800installs brand claudekit Keeps brand voice, visual rules and design tokens in one markdown file, then feeds them to your agent's prompts and to your CSS variables. Claude Code CX Codex Cursor +1 39,500installs banner-design claudekit Generates banners for social media, ads, and web hero sections using HTML/CSS. Useful when you need fast visual creative assets directly in your coding agent. Claude Code CX Codex Cursor +1 39,000installs marketing-psychology coreyhaines31 Applies behavioral science and mental models to marketing decisions. It helps teams analyze buyer motivations and solve funnel bottlenecks. Claude Code CX Codex Cursor +1 164,000installs

Questions about competitive-landscape

How do I install `competitive-landscape` in Claude Code?

Run npx skills add every-app/open-seo --skill competitive-landscape -a claude-code, then run npx skills add every-app/open-seo --skill competitive-landscape -a claude-code again. The installed file is available at ~/.claude/skills/competitive-landscape/SKILL.md.

What does `competitive-landscape` do?

It studies an SEO market across several competitors by comparing search results, content themes, keywords, organic footprint, and backlinks. It then produces a report with leaders, gaps, and next steps.

What does `competitive-landscape` need to run?

It needs a projectId and a topic, seed keywords, category, or domain. It also needs competitors, which can be supplied in advance or identified with find_serp_competitors and confirmed.

Source text

SKILL.md · MIT
---
name: competitive-landscape
description: Map SEO market leaders, winning content themes, keyword coverage, backlinks, and strategic gaps.
---

# 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.

© every-app · MIT · every-app/open-seo

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor