agentleFS
foversefoverse/seoverse/.agents/skills/competitor-analysis/SKILL.md

competitor-analysis

Skill4 starsChanged 10 days agoMITView on GitHub

Analyze one competitor's organic footprint, ranking keywords, content themes, backlinks, and gaps.

64 other projects use a version of this, 9 of them edited; 1 new project in the last 4 weeks, against 1 the 4 before.

Adopted by

Steady: 1 new project took it in the last 4 weeks, 1× the 4 weeks before.thin data

Week of Sep 13: 0 new projectsWeek of Sep 20: 1 new projectWeek of Sep 27: 0 new projectsWeek of Oct 4: 0 new projectsWeek of Oct 11: 0 new projectsWeek of Oct 18: 0 new projectsWeek of Oct 25: 1 new projectWeek of Nov 1: 0 new projects
Sep 2026Oct 2026Nov 2026
New projects taking a version of this file each week, over the 8 weeks our latest run read: only 2 in all, so this is a hint, not a trend.

Most recently taken up by

Used with

Projects with it also use app-marketing-context, metadata-optimization and 1 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • appeekySkill

    app-marketing-context

    When the user wants to create or update their app marketing context document. Also use when the user mentions "app context", "marketing brief", "app positioning", or when starting any ASO or app marketing project. This is the foundation skill — all other skills check for this context first.

    Also in 6 projects that use this

  • appeekySkill

    metadata-optimization

    When the user wants to optimize App Store metadata — title, subtitle, keyword field, or description. Also use when the user mentions "optimize my title", "ASO metadata", "keyword field", "character limits", "app description", or "write my subtitle". For keyword discovery, see keyword-research. For full ASO audits, see aso-audit.

    Also in 6 projects that use this

  • +1 more from appeeky

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 5 are distinctive, and 10 are very specific to this project.

  • 0

    Common

    Most of the 52 edited versions we read keep these.

  • 5

    Distinctive

    This author's own choices. Worth a look.

  • 10

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Use this for a named competitor.

    line 12
  2. Very specific:

    Call get_project_context first and ground the analysis in it — the saved competitors say whether this domain is already known and what was …

    line 25
  3. Distinctive:

    Before spending credits, check the research log.

    line 27
  4. Very specific:

    Call get_domain_overview for the competitor, passing provided location/language when supported.

    line 47
  5. Very specific:

    If comparing to the user, call get_domain_overview for the user's domain too — and if Search Console is connected, …

    line 48
  6. Very specific:

    Call get_ranked_keywords for the competitor.

    line 49
  7. Very specific:

    If comparing to the user, call get_ranked_keywords for the user's domain/page too, or use get_serp_results for the shared terms when a …

    line 50
  8. Very specific:

    Use find_serp_competitors when the competitor was supplied by the user but its search overlap is unclear.

    line 52
  9. Very specific:

    Call get_backlinks_overview for the competitor, especially if authority appears to explain rankings.

    line 60
  10. Very specific:

    Use get_serp_results for important shared or target keywords to compare positioning, passing provided location/language when supported.

    line 61
  11. Very specific:

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

    line 72
  12. Distinctive:

    Do not treat all competitor keywords as desirable.

    line 86
  13. Distinctive:

    Do not infer competitor page/content-type patterns from keyword rows alone.

    line 88
  14. Distinctive:

    Do not recommend copying content.

    line 90
  15. Distinctive:

    If the user's domain is unavailable, frame the analysis as competitor-only.

    line 91

“Common” is measured: kept by at least 6 in 10 of the 52 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

OpenSEO Competitor Analysis

Goal

Analyze one competitor deeply enough to decide what to learn from, avoid, counter-position against, or outrank.

Use this for a named competitor. For identifying the market leaders first, use competitive-landscape.

Required inputs

  • projectId
  • Competitor domain
  • User's domain when comparison is requested
  • Optional topic/category/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 analysis in it — the saved competitors say whether this domain is already known and what was concluded about it before.
  2. This skill needs competitors. If none are saved, run a minimal inline setup: save the competitor being analyzed, and ask the user (or infer from find_serp_competitors and confirm) whether there are others, write them back with update_project_context (addCompetitors), then continue the analysis. 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 — an addCompetitors upsert for this domain with a short note on its strengths and where it is vulnerable — and append a research log entry: { appendResearchLog: { summary: "Competitor analysis: <domain>. Verdict: <conclusion>" } }.

Deliver as a report

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

OpenSEO MCP tools

  • get_domain_overview: baseline organic traffic and keyword count.
  • get_search_console_performance: when comparing to the user's own domain and Search Console is connected, use it as the first-party baseline (real clicks/impressions/CTR/position) instead of estimating the user's own performance from third-party data.
  • get_ranked_keywords: exact keyword, URL, rank, intent, traffic, CPC, and SERP-type rows for the competitor domain or page.
  • get_backlinks_overview: backlink/referring-domain profile.
  • find_serp_competitors: validate whether the named competitor is a real search competitor across the target keyword set.
  • search_local_businesses, get_local_serp_results, and get_google_business_questions: use for local SEO competitors when Maps/local-pack visibility, nearby businesses, categories, or Google Q&A matter.
  • get_serp_results: validate direct head-to-head SERPs for important keywords.
  • research_keywords: expand gaps or category terms when needed.

Workflow

  1. Call get_domain_overview for the competitor, passing provided location/language when supported.
  2. If comparing to the user, call get_domain_overview for the user's domain too — and if Search Console is connected, get_search_console_performance for the user's real baseline.
  3. Call get_ranked_keywords for the competitor. Use filters like maxRank, minSearchVolume, excludeBrandTerms, and resultTypes to keep rows relevant.
  4. If comparing to the user, call get_ranked_keywords for the user's domain/page too, or use get_serp_results for the shared terms when a lighter check is enough.
  5. For local SEO, use search_local_businesses and get_local_serp_results around the relevant business location(s) before drawing local-pack conclusions. Add get_google_business_questions only when Q&A evidence matters.
  6. Use find_serp_competitors when the competitor was supplied by the user but its search overlap is unclear.
  7. Group competitor keywords into themes:
    • Product/category terms
    • Alternatives/comparisons
    • Templates/tools/calculators
    • Educational guides
    • Branded demand
    • Local/neighborhood terms when relevant
  8. Call get_backlinks_overview for the competitor, especially if authority appears to explain rankings. Continue without backlink evidence if it is unavailable.
  9. Use get_serp_results for important shared or target keywords to compare positioning, passing provided location/language when supported.
  10. Produce an actionable plan:
    • What they are doing well
    • Where they are vulnerable
    • Which pages/keywords to pursue
    • What to avoid copying

Output format

h1: the competitor domain.

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

Sections in this order:

  1. Snapshot — one or two opening sentences, then a table of the competitor's organic footprint (traffic estimate, keyword count, referring domains). Add the user's domain as a second row when comparing.
  2. The biggest lesson — one finding.
  3. Where they are vulnerable — one finding per opening, ordered by how winnable it is.
  4. Keyword themes — a table of theme, example keywords, volume, and whether the user competes there. A bar chart when a few themes dominate the footprint.
  5. Content patterns and authority — prose, with a note for anything inferred from keyword rows rather than seen on a page.
  6. What to do next — an ordered list, shortest useful.
  7. How this report was made — opens with the skill link line from seo-report, pointing at https://openseo.so/docs/skills/competitor-analysis ("OpenSEO Competitor Analysis skill"), then which tools reported what, and what you checked yourself.

Guardrails

  • Do not treat all competitor keywords as desirable. Filter for business fit.
  • Separate evidence from inference.
  • Do not infer competitor page/content-type patterns from keyword rows alone; use SERP or web evidence for page-level claims.
  • For local SEO, do not infer Maps/local-pack strength from national organic domain metrics alone; use local business and local SERP tools when the location is known or reasonably discoverable.
  • Do not recommend copying content; recommend a stronger angle or better answer to the same intent.
  • If the user's domain is unavailable, frame the analysis as competitor-only.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.