Map SEO market leaders, winning content themes, keyword coverage, backlinks, and strategic gaps.
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./.agents/skills/competitive-landscape/SKILL.mdAnswer: "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.
projectIdThe project-context tools are free and shared with the app and other agents.
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.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.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>" } }.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.research_keywords to build 5-10 representative queries.get_keyword_metrics to validate relative demand and difficulty and find_serp_competitors to identify recurring domains at scale.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.get_serp_results for representative queries when live SERP composition, ranking URLs, or SERP features need inspection. Send at most 10 queries per call.get_domain_overview; default to the top 3-5 domains before expanding.get_ranked_keywords.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.Start with the market read:
Then include:
| Domain | Type | Why they matter | Organic footprint | Winning themes | Weakness/gap |
|---|
Add:
c469a48
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.