SEO Content Brief Generator
AgriciDaniel/claude-seo
Builds research-backed SEO content briefs with competitor scoring, per-section word counts and page-type templates, for new pages or improving existing ones.
Research 3–5 competitors for any product or feature. An agent skill from hamzafarooq/claude-code-starter.
$ npx skills add hamzafarooq/claude-code-starter --skill competitor-research -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hamzafarooq/claude-code-starter competitor-research --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/hamzafarooq/claude-code-starter.git skills-src && mkdir -p .claude/skills && cp -r skills-src/demos/research-agent/.claude/skills/competitor-research .claude/skills/competitor-research && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "competitor-research" agent skill from https://github.com/hamzafarooq/claude-code-starter/tree/main/demos/research-agent/.claude/skills/competitor-research into .claude/skills/competitor-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-research", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/hamzafarooq/claude-code-starter/tree/main/demos/research-agent/.claude/skills/competitor-researchType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add hamzafarooq/claude-code-starter --skill competitor-research -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hamzafarooq/claude-code-starter competitor-research --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hamzafarooq/claude-code-starter.git skills-src && mkdir -p .agents/skills && cp -r skills-src/demos/research-agent/.claude/skills/competitor-research .agents/skills/competitor-research && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "competitor-research" agent skill from https://github.com/hamzafarooq/claude-code-starter/tree/main/demos/research-agent/.claude/skills/competitor-research into .agents/skills/competitor-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-research", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hamzafarooq/claude-code-starter --skill competitor-research -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hamzafarooq/claude-code-starter competitor-research --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hamzafarooq/claude-code-starter.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/demos/research-agent/.claude/skills/competitor-research .cursor/skills/competitor-research && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "competitor-research" agent skill from https://github.com/hamzafarooq/claude-code-starter/tree/main/demos/research-agent/.claude/skills/competitor-research into .cursor/skills/competitor-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-research", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/hamzafarooq/claude-code-starter.git --path demos/research-agent/.claude/skills/competitor-research--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add hamzafarooq/claude-code-starter --skill competitor-research -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hamzafarooq/claude-code-starter competitor-research --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hamzafarooq/claude-code-starter.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/demos/research-agent/.claude/skills/competitor-research .gemini/skills/competitor-research && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "competitor-research" agent skill from https://github.com/hamzafarooq/claude-code-starter/tree/main/demos/research-agent/.claude/skills/competitor-research into .gemini/skills/competitor-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-research", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install hamzafarooq/claude-code-starter competitor-researchInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add hamzafarooq/claude-code-starter --skill competitor-research -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hamzafarooq/claude-code-starter.git skills-src && mkdir -p .github/skills && cp -r skills-src/demos/research-agent/.claude/skills/competitor-research .github/skills/competitor-research && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "competitor-research" agent skill from https://github.com/hamzafarooq/claude-code-starter/tree/main/demos/research-agent/.claude/skills/competitor-research into .github/skills/competitor-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-research", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add hamzafarooq/claude-code-starter --skill competitor-research -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hamzafarooq/claude-code-starter competitor-research --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hamzafarooq/claude-code-starter.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/demos/research-agent/.claude/skills/competitor-research .opencode/skills/competitor-research && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "competitor-research" agent skill from https://github.com/hamzafarooq/claude-code-starter/tree/main/demos/research-agent/.claude/skills/competitor-research into .opencode/skills/competitor-research/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "competitor-research", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
competitor-researchResearch 3–5 competitors for any product or feature. An agent skill from hamzafarooq/claude-code-starter.
Competitor Research is an agent skill from hamzafarooq/claude-code-starter. Research 3–5 competitors for any product or feature. Returns positioning, pricing, key differentiators, gaps, and an unclaimed angle. Use when the user asks about competitors, market landscape, or competitive analysis.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Marketing & SEO, covering Competitor analysis. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 172c531. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Competitor Research loads about 1.6k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 776 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from hamzafarooq/claude-code-starter at commit 172c531, republished under its MIT licence (© hamzafarooq). 776 words, ~1,626 tokens.
.claude/skills/competitor-research/SKILL.md (or your agent's skills folder).You research competitors yourself for the light, fast tasks (search and homepage fetches), and you delegate the heavy work to specialist subagents:
pricing-fetcher — pricing extraction with WebFetch-first, Playwright-fallbackreview-miner — distilling user sentiment from 10+ review pagesWorkshop note: the split between "skill does it" and "subagent does it" follows one rule: delegate work that is heavy, parallelizable, and returns clean structured output. Light fetches stay in the skill. Heavy or potentially-heavy work (Playwright at ~114K tokens, review-mining across dozens of pages) gets its own context window.
Ask the user once:
"What product or feature are you researching? Who is it for?"
Skip if they already gave both. Cap at 2 clarifying questions max (geography, segment, direct vs. adjacent). Don't run an interview.
Use WebSearch by default. Look for:
Use mcp__brave-search__brave_web_search instead only when you need
strictly the last 12 months of results (e.g., a fast-moving category where
2-year-old listicles would be misleading). Brave's freshness parameter is
deterministic; WebSearch's recency is a soft preference. For most categories
the soft preference is fine.
Pick direct competitors (same buyer, same job-to-be-done). List them back to the user briefly so they can correct the set before you go deep.
For each competitor, dispatch the following in a single message with multiple tool calls so they run concurrently:
WebFetch)Fetch the homepage and extract:
This stays inline because homepage HTML is server-rendered for ~95% of competitor sites — fast, light, and pollutes nothing.
pricing-fetcher subagentSpawn one pricing-fetcher per competitor. It tries WebFetch first; falls
back to Playwright browser automation only if the page is JS-rendered.
Why this is delegated: Playwright sessions cost ~114K tokens each. Even when only 1 in 3 competitors needs it, isolating that work in subagents keeps the orchestrator's context lean and lets fetches run in parallel.
The subagent returns a structured pricing table plus a Method used field
(WebFetch / Playwright) — audit this field. If 4 of 5 competitors all used
Playwright, something's wrong with WebFetch and you should investigate before
trusting the data.
review-miner subagentSpawn one review-miner per competitor. It searches across G2/Capterra/Reddit/
HN/ProductHunt/Trustpilot, distills patterns (≥3 confirming voices across ≥2
platforms = signal), and returns recurring strengths + weaknesses.
Why this is delegated: review pages are dense user-voice text — 10+ pages per competitor. Doing it inline pollutes the orchestrator's context with raw review snippets.
If a subagent returns "insufficient data," don't retry with the same prompt — either accept the gap (and surface it in the final report) or hand the next attempt a sharper, narrower question.
Combine your homepage research with the two subagents' findings into exactly 6 bullets per competitor:
### [Competitor Name]
- **Positioning**: one sentence (their words, plain English)
- **Target customer**: who they're built for
- **Pricing**: tiers and price points, or "Not public"
- **Differentiators**: 2–3 things they do well
- **Weaknesses**: 1–2 recurring complaints from reviews/forums
- **Source date**: most recent source pulled (YYYY-MM)Hard rules:
Add this section verbatim:
### Gap Analysis
- **What no competitor does well**: [specific capability gap]
- **Where pricing is underserved**: [a tier or model nobody offers]
- **Unclaimed positioning angle**: [a frame nobody owns]Each gap must be falsifiable — grounded in something a reader can verify. "Better UX" is not a gap. "No competitor offers per-seat pricing under $10/mo for teams under 5" is.
End the report with exactly one line:
Based on this, which gap are you trying to own?
No summary. No "let me know if you want more." Just the question.
| Task | Default tool | Reach for MCP when... |
|---|---|---|
| Identify competitors | WebSearch | You need strict 12-month recency → brave_web_search |
| Fetch a homepage | WebFetch | (never — homepage is light) |
| Fetch a pricing page | pricing-fetcher subagent | (subagent decides internally whether Playwright is needed) |
| Mine reviews | review-miner subagent | (subagent decides internally — uses Brave's news/summarizer for specific cases) |
Default principle: built-in tools first, MCPs only when they offer something built-ins can't.
brave_web_search when WebSearch would have been fine
(this wastes Brave's free-tier budget)pricing-fetcher subagent so the heavy context is isolatedpricing-fetcher report where 4 of 5 competitors used
Playwright — investigate WebFetch first© hamzafarooq, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in demos/research-agent/.claude/skills/competitor-research of hamzafarooq/claude-code-starter.
Open the folder on GitHubat commit 172c531
Competitor Research next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Competitor Research this skillhamzafarooq/claude-code-starter | 145 | — | ~1.6k | Automated safety check: Pass | MIT | |
| SEO Content Brief GeneratorAgriciDaniel/claude-seo | 19k | 2 repos | ~2.6k | Automated safety check: Pass | MIT | |
| SEO DataforseoAgriciDaniel/codex-seo | 797 | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| Competitor ProfilingNexus-JPF/note-companion | 870 | 4 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Startup Competitorsferdinandobons/startup-skill | 1.2k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Amazon Listing Competitor Analysisbrowser-act/skills | 6.1k | 1 repos | ~3.2k | Automated safety check: Pass | MIT |
AgriciDaniel/claude-seo
Builds research-backed SEO content briefs with competitor scoring, per-section word counts and page-type templates, for new pages or improving existing ones.
AgriciDaniel/codex-seo
Live SEO data via DataForSEO MCP server. An agent skill from AgriciDaniel/codex-seo.
Nexus-JPF/note-companion
When the user wants to research, profile, or analyze competitors from their URLs.
ferdinandobons/startup-skill
Deep competitive intelligence for any market. An agent skill from ferdinandobons/startup-skill.
browser-act/skills
Analyzes a competitor's Amazon listing by ASIN with BrowserAct data extraction, then reports what it does well, where the market has gaps and opportunity points for your own listing.
AgriciDaniel/claude-seo
Generates X vs Y comparison pages, alternatives-to-X pages, best-tools roundups and feature-matrix tables, with schema markup and verifiable data rules.
hamzafarooq/claude-code-starter
Turn any document, proposal, report, or outline into a stunning single-file HTML presentation using 34 pre-built professional templates.
hamzafarooq/claude-code-starter
Generate a complete, ready-to-share HTML presentation explaining Claude Code, Skills, Sub Agents, Hooks, and Multi-Agent Systems — designed for product managers.
hamzafarooq/claude-code-starter
Create stunning, animation-rich single-file HTML presentations from scratch or by converting a PowerPoint (.pptx) file.
hamzafarooq/claude-code-starter
Convert any markdown file to a clean PDF. An agent skill from hamzafarooq/claude-code-starter.
hamzafarooq/claude-code-starter
Converts feature ideas or rough bullets into user stories with acceptance criteria.
hamzafarooq/claude-code-starter
Create a production-ready Dockerfile and deployment config for any project.
Categories
Research 3–5 competitors for any product or feature. An agent skill from hamzafarooq/claude-code-starter. Competitor Research is an agent skill from hamzafarooq/claude-code-starter. Research 3–5 competitors for any product or feature.
Competitor Research fits situations like: the user asks about competitors; market landscape; competitive analysis.
Run `npx skills add hamzafarooq/claude-code-starter --skill competitor-research -a claude-code`. Or copy the skill folder (demos/research-agent/.claude/skills/competitor-research in hamzafarooq/claude-code-starter) into .claude/skills/competitor-research in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hamzafarooq/claude-code-starter --skill competitor-research -a codex`. Or copy the skill folder (demos/research-agent/.claude/skills/competitor-research in hamzafarooq/claude-code-starter) into .agents/skills/competitor-research in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add hamzafarooq/claude-code-starter --skill competitor-research -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/competitor-research, .gemini/skills/competitor-research, .github/skills/competitor-research and .opencode/skills/competitor-research in your project.
SKILL.md names no scripts, command-line tools or credentials: Competitor Research is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Competitor Research is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Competitor Research: SEO Content Brief Generator (AgriciDaniel/claude-seo, 19k stars), SEO Dataforseo (AgriciDaniel/codex-seo, 797 stars), Competitor Profiling (Nexus-JPF/note-companion, 870 stars) and Startup Competitors (ferdinandobons/startup-skill, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hamzafarooq (a GitHub user) maintains it in hamzafarooq/claude-code-starter, which has 145 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on September 13, 2026.
Source: hamzafarooq/claude-code-starter on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.