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.
Analyze Google search results (SERP) for any keyword. An agent skill from OpenClaudia/openclaudia-skills.
$ npx skills add OpenClaudia/openclaudia-skills --skill serp-analyzer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install OpenClaudia/openclaudia-skills serp-analyzer --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/OpenClaudia/openclaudia-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/serp-analyzer .claude/skills/serp-analyzer && 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 "serp-analyzer" agent skill from https://github.com/OpenClaudia/openclaudia-skills/tree/main/skills/serp-analyzer into .claude/skills/serp-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serp-analyzer", 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/OpenClaudia/openclaudia-skills/tree/main/skills/serp-analyzerType 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 OpenClaudia/openclaudia-skills --skill serp-analyzer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install OpenClaudia/openclaudia-skills serp-analyzer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenClaudia/openclaudia-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/serp-analyzer .agents/skills/serp-analyzer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "serp-analyzer" agent skill from https://github.com/OpenClaudia/openclaudia-skills/tree/main/skills/serp-analyzer into .agents/skills/serp-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serp-analyzer", 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 OpenClaudia/openclaudia-skills --skill serp-analyzer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install OpenClaudia/openclaudia-skills serp-analyzer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenClaudia/openclaudia-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/serp-analyzer .cursor/skills/serp-analyzer && 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 "serp-analyzer" agent skill from https://github.com/OpenClaudia/openclaudia-skills/tree/main/skills/serp-analyzer into .cursor/skills/serp-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serp-analyzer", 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/OpenClaudia/openclaudia-skills.git --path skills/serp-analyzer--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 OpenClaudia/openclaudia-skills --skill serp-analyzer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install OpenClaudia/openclaudia-skills serp-analyzer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenClaudia/openclaudia-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/serp-analyzer .gemini/skills/serp-analyzer && 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 "serp-analyzer" agent skill from https://github.com/OpenClaudia/openclaudia-skills/tree/main/skills/serp-analyzer into .gemini/skills/serp-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serp-analyzer", 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 OpenClaudia/openclaudia-skills serp-analyzerInstalls 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 OpenClaudia/openclaudia-skills --skill serp-analyzer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/OpenClaudia/openclaudia-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/serp-analyzer .github/skills/serp-analyzer && 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 "serp-analyzer" agent skill from https://github.com/OpenClaudia/openclaudia-skills/tree/main/skills/serp-analyzer into .github/skills/serp-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serp-analyzer", 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 OpenClaudia/openclaudia-skills --skill serp-analyzer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install OpenClaudia/openclaudia-skills serp-analyzer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OpenClaudia/openclaudia-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/serp-analyzer .opencode/skills/serp-analyzer && 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 "serp-analyzer" agent skill from https://github.com/OpenClaudia/openclaudia-skills/tree/main/skills/serp-analyzer into .opencode/skills/serp-analyzer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "serp-analyzer", 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.
serp-analyzerAnalyze Google search results (SERP) for any keyword. An agent skill from OpenClaudia/openclaudia-skills.
Serp Analyzer is an agent skill from OpenClaudia/openclaudia-skills. Analyze Google search results (SERP) for any keyword. Use when the user says "analyze the SERP", "what ranks for", "SERP analysis", "competitive analysis for keyword", "content brief", "what's ranking", "search results for", "who ranks for", or asks about ranking content patterns for a keyword.
Its SKILL.md is about 3.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 Productivity & Automation, covering Web search, Content strategy and Keyword research. It works with SerpApi. The repository describes itself as: 77 open-source marketing skills for Claude Code, Codex, and other AI coding agents. SEO, content, email, ads, analytics, and growth. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 28bf209. 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.
Shell commands in SKILL.md call:
curljqFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
serpapi.comapi.serpingapi.comapi.semrush.comapi.dataforseo.comAlso links to:
serpingapi.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SERPINGAPI_API_KEYSERPAPI_API_KEYDATAFORSEO_PASSWORDSEMRUSH_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Serp Analyzer loads about 3.6k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 1,074 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 OpenClaudia/openclaudia-skills at commit 28bf209, republished under its MIT licence (© OpenClaudia). 1,074 words, ~3,643 tokens.
.claude/skills/serp-analyzer/SKILL.md (or your agent's skills folder).You are an expert SERP analyst. Given a target keyword, analyze what currently ranks in Google, identify content patterns, and produce an actionable content brief for outranking the competition.
Optional API keys for enriched data (the skill can work without any of them using web search):
SEMRUSH_API_KEY - for keyword and organic results dataSERPAPI_API_KEY - for real-time Google SERP data including SERP featuresDATAFORSEO_LOGIN and DATAFORSEO_PASSWORD - for advanced SERP dataSERPINGAPI_API_KEY - for real-time Google SERP data (free tier available)Use multiple data sources to build a complete SERP picture:
Method A: SemRush API (if available)
# Get organic results for keyword
https://api.semrush.com/?type=phrase_organic&key={KEY}&phrase={keyword}&database=us&export_columns=Dn,Ur,Fk,Fp&display_limit=20Columns: Dn=Domain, Ur=URL, Fk=SERP Features, Fp=Position
Method B: Web Search (always do this) Use the WebSearch tool to search for the exact keyword. This gives you real-time SERP data.
Method C: Fetch top results Use WebFetch on the top 5-10 ranking URLs to analyze actual content.
Method D: SerpAPI (if SERPAPI_API_KEY available)
Real-time Google SERP data with structured SERP features:
# Real-time Google SERP data via SerpAPI
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en"The JSON response includes:
organic_results - Array of organic listings with position, title, link, snippet, displayed_linkrelated_questions - People Also Ask questions with question, snippet, title, linkknowledge_graph - Knowledge panel data with title, description, entity_type, and attributesshopping_results - Product listings (if present) with title, price, link, sourcelocal_results - Local Pack listings (if present) with title, address, rating, reviewsinline_images - Image pack resultsanswer_box - Featured snippet content with type (paragraph, list, table), snippet, titlerelated_searches - Related search queriesParse example:
# Extract organic results
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en" | \
jq '.organic_results[] | {position, title, link, snippet}'
# Extract People Also Ask questions
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en" | \
jq '.related_questions[] | {question, snippet}'
# Check for knowledge graph
curl -s "https://serpapi.com/search.json?q={keyword}&api_key=${SERPAPI_API_KEY}&num=20&gl=us&hl=en" | \
jq '.knowledge_graph | {title, description, entity_type}'SerpAPI is especially useful for mapping SERP features in Step 2, as it returns structured data for every feature type.
Method E: DataForSEO (if DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD available)
Advanced SERP data with detailed item types and ranking metrics:
# DataForSEO SERP API
curl -s -X POST "https://api.dataforseo.com/v3/serp/google/organic/live/advanced" \
-H "Authorization: Basic $(echo -n '${DATAFORSEO_LOGIN}:${DATAFORSEO_PASSWORD}' | base64)" \
-H "Content-Type: application/json" \
-d '[{"keyword": "{keyword}", "location_code": 2840, "language_code": "en"}]'The response provides:
result[0].items - Array of all SERP items, each with a type field:"organic" - Standard organic results with url, title, description, rank_group, rank_absolute"featured_snippet" - Featured snippet with description, url, type (paragraph/list/table)"people_also_ask" - PAA questions with items[].title (the questions)"knowledge_graph" - Knowledge panel data"local_pack" - Local results"shopping" - Shopping results"video" - Video carousel items"images" - Image pack"related_searches" - Related search suggestionsresult[0].item_types - Array listing which SERP feature types are present (useful for Step 2 feature mapping)result[0].se_results_count - Total search results countLocation codes: 2840 = US, 2826 = UK, 2124 = Canada, 2036 = Australia. Change location_code for geo-targeted analysis.
Method F: Serping API (if SERPINGAPI_API_KEY available)
Real-time Google SERP data as Serper-style JSON from a single endpoint. Get a key at https://serpingapi.com (free tier available) and set SERPINGAPI_API_KEY.
# Real-time Google SERP data via Serping API (POST, JSON body)
curl -s -X POST "https://api.serpingapi.com/v1/search" \
-H "X-API-Key: ${SERPINGAPI_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"q": "{keyword}", "gl": "us", "hl": "en", "num": 20}'The JSON response includes (sections appear only when Google returns them):
organic - Array of organic listings with position, title, link, snippet (sometimes sitelinks, date, rating)peopleAlsoAsk - People Also Ask questions with question, snippet, title, linkanswerBox - Featured snippet / direct answerknowledgeGraph - Knowledge panel data with title, type, description, attributesrelatedSearches - Related search queries as { "query": ... }searchParameters - Echo of the parameters the search ran withParse example:
# Extract organic results
curl -s -X POST "https://api.serpingapi.com/v1/search" \
-H "X-API-Key: ${SERPINGAPI_API_KEY}" -H "Content-Type: application/json" \
-d '{"q": "{keyword}", "gl": "us", "hl": "en", "num": 20}' | \
jq '.organic[] | {position, title, link, snippet}'
# Extract People Also Ask questions
curl -s -X POST "https://api.serpingapi.com/v1/search" \
-H "X-API-Key: ${SERPINGAPI_API_KEY}" -H "Content-Type: application/json" \
-d '{"q": "{keyword}", "gl": "us", "hl": "en", "num": 20}' | \
jq '.peopleAlsoAsk[] | {question, snippet}'
# Check for featured snippet / knowledge graph
curl -s -X POST "https://api.serpingapi.com/v1/search" \
-H "X-API-Key: ${SERPINGAPI_API_KEY}" -H "Content-Type: application/json" \
-d '{"q": "{keyword}", "gl": "us", "hl": "en", "num": 20}' | \
jq '{answerBox, knowledgeGraph: (.knowledgeGraph | {title, type, description})}'Optional parameters: location (e.g. "Seattle, Washington, United States"), page (starting at 1), tbs for a time filter (qdr:d day, qdr:w week, qdr:m month, qdr:y year). Web search only — no ads, shopping, or local pack sections.
Errors come back as {"error": {"code": "...", "message": "..."}}: 401 invalid_api_key means the key is wrong or revoked; 429 quota_exceeded means the monthly quota is used up (resets on the 1st, UTC). In either case tell the user the specific error and fall back to Method B.
Document every SERP feature present for this keyword:
| Feature | Present? | Who owns it? | Can you win it? |
|---|---|---|---|
| Featured Snippet | Yes/No | {domain} | {assessment} |
| People Also Ask | Yes/No | {list questions} | - |
| Knowledge Panel | Yes/No | {entity} | - |
| Image Pack | Yes/No | {position in SERP} | {assessment} |
| Video Carousel | Yes/No | {platforms} | {assessment} |
| Local Pack | Yes/No | - | {assessment} |
| Shopping Results | Yes/No | - | {assessment} |
| News Results | Yes/No | {sources} | {assessment} |
| Sitelinks | Yes/No | {domain} | - |
| Reviews/Stars | Yes/No | {domains} | {assessment} |
| FAQ Rich Results | Yes/No | {domains} | {assessment} |
| Breadcrumbs | Yes/No | {domains} | - |
SERP Intent Signal Analysis:
For each of the top 10 organic results, fetch and analyze:
| Factor | What to measure |
|---|---|
| URL | Full URL |
| Domain | Domain authority/reputation |
| Title tag | Exact title, length, keyword placement |
| Meta description | Exact description, length, call-to-action |
| Content type | Blog post, landing page, tool, directory, video, etc. |
| Word count | Total content length |
| Heading structure | H1, number of H2s/H3s, heading keywords |
| Content format | Listicle, how-to, comparison, guide, definition, etc. |
| Visuals | Number of images, videos, infographics, tables |
| Date | Published date, last updated date |
| Author | Named author, credentials shown |
| Unique angle | What differentiates this from others |
| Internal links | Number of internal links |
| External links | Number of outbound links, sources cited |
| Schema markup | Types of structured data used |
| Reading level | Approximate Flesch-Kincaid grade level |
After analyzing all top 10 results, find commonalities:
Content Pattern Analysis:
## Content Patterns for "{keyword}"
### Dominant Content Type: {type}
{X} of 10 results are {blog posts/landing pages/tools/etc.}
### Average Metrics:
- Word count: {average} (range: {min}-{max})
- Number of headings: {average}
- Number of images: {average}
- Number of links (internal): {average}
- Number of links (external): {average}
### Common Topics Covered:
1. {topic} - covered by {X}/10 results
2. {topic} - covered by {X}/10 results
3. {topic} - covered by {X}/10 results
...
### Common H2 Headings:
1. "{heading}" or similar - used by {X}/10
2. "{heading}" or similar - used by {X}/10
...
### Featured Snippet Format:
Type: {paragraph/list/table/video}
Content: {what the snippet shows}
How to win it: {specific advice}Identify what the top results are MISSING:
For each top 5 competitor, create a positioning map:
Competitor 1 ({domain}): {Positioning summary - e.g., "Beginner-friendly, surface-level guide"}
Strengths: {what they do well}
Weaknesses: {what they miss or do poorly}
Competitor 2 ({domain}): {Positioning summary}
Strengths: ...
Weaknesses: ...Find your differentiation angle:
Produce a complete content brief based on the analysis:
# Content Brief: {Target Keyword}
## Target Keyword
- **Primary:** {keyword} (Volume: {vol}, KD: {kd})
- **Secondary:** {keyword2}, {keyword3}, {keyword4}
- **Long-tail:** {keyword5}, {keyword6}
## Search Intent
**Primary intent:** {Informational/Commercial/Transactional}
**User goal:** {What the searcher wants to accomplish}
**Stage in funnel:** {Awareness/Consideration/Decision}
## Content Specifications
| Spec | Recommendation | Reasoning |
|------|---------------|-----------|
| Content type | {blog/landing/tool} | {X}/10 results are this type |
| Word count | {target} words | Top 3 average {avg}, aim for {target} |
| Format | {listicle/how-to/guide} | Dominant format in SERP |
| Reading level | Grade {X} | Match audience expectation |
| Visuals | {X} images, {X} custom graphics | Top results average {Y} |
| Videos | {Yes/No - embed or create} | {Reasoning} |
## Title Tag Recommendations
Write 3 options following these patterns from top results:
1. "{Title option 1}" ({length} chars)
2. "{Title option 2}" ({length} chars)
3. "{Title option 3}" ({length} chars)
## Meta Description Recommendations
1. "{Meta option 1}" ({length} chars)
2. "{Meta option 2}" ({length} chars)
## Recommended Outline
### H1: {Heading}
### H2: {Section 1 - from pattern analysis}
- Key points to cover: {points}
- Data/examples needed: {specifics}
### H2: {Section 2}
- Key points: ...
### H2: {Section 3}
...
### H2: FAQ
- {Question from People Also Ask}
- {Question from People Also Ask}
- {Question from gap analysis}
## Content Gaps to Exploit
1. **{Gap}** - Only {X}/10 competitors cover this. Include {specific content}.
2. **{Gap}** - No competitors have {data/tool/visual}. Create {specific asset}.
3. **{Gap}** - Top results are outdated on {topic}. Include {current data}.
## Schema Markup to Include
- {Type}: {Brief description of properties}
- {Type}: {Brief description}
## Internal Linking Targets
- Link TO this page from: {related pages on your site}
- Link FROM this page to: {related pages on your site}
## Differentiation Strategy
{2-3 sentences on how this content will stand out from current SERP}Always present:
© OpenClaudia, 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 skills/serp-analyzer of OpenClaudia/openclaudia-skills.
Open the folder on GitHubat commit 28bf209
Serp Analyzer 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 |
|---|---|---|---|---|---|---|
| Serp Analyzer this skillOpenClaudia/openclaudia-skills | 713 | — | ~3.6k | Automated safety check: Pass | MIT | |
| SEO Content Brief GeneratorAgriciDaniel/claude-seo | 19k | 2 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Strategic SEO PlanningAgriciDaniel/claude-seo | 19k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Chatgpt Web Researchbear2u/my-skills | 932 | — | ~3.3k | Automated safety check: Pass | None | |
| Serp AnalysisMadAppGang/claude-code | 285 | 1 repos | ~1k | Automated safety check: Pass | MIT | |
| Blog OutlineAgriciDaniel/claude-blog | 2.3k | 1 repos | ~1.5k | 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/claude-seo
Builds an SEO strategy for a new or existing site: discovery, competitor analysis, site architecture, content plan, technical foundation and a four-phase roadmap.
bear2u/my-skills
Use the user's already signed-in official ChatGPT website account, especially GPT-5.5 Pro / ChatGPT Pro, to perform product research, market research, competitor research, second-opinion research…
MadAppGang/claude-code
SERP analysis techniques for intent classification, feature identification, and competitive intelligence.
AgriciDaniel/claude-blog
SERP-informed outline generation with H2/H3 heading hierarchy, competitive content gap analysis, section-by-section word count targets, chart and image placement markers, optional FAQ question…
zubair-trabzada/dataforseo-claude
Clusters the keywords a domain ranks for into topics, compares coverage with competitors and returns a content score using DataForSEO data.
OpenClaudia/openclaudia-skills
Build an interactive competitive-traffic report for any company and its rivals — monthly visits (SimilarWeb), organic search traffic and Domain Rating (Ahrefs) — as one self-contained HTML page with…
OpenClaudia/openclaudia-skills
Score how hard a keyword is to rank for in the AI-search era — page-level URL Rating of real competitors (not just domain DR), Ahrefs keyword difficulty, and whether a given site already ranks or is…
OpenClaudia/openclaudia-skills
Audit EVERY Google Search Console property at once — rank all sites by clicks and impressions with period-over-period deltas, then diff keywords per site to surface what is newly ranking, rising…
OpenClaudia/openclaudia-skills
Fetch website traffic estimates (monthly visits, traffic sources, top countries, keywords, engagement, ranks) for any domain from SimilarWeb.
OpenClaudia/openclaudia-skills
Manages Ahrefs API usage in Python using ahrefs-python library.
OpenClaudia/openclaudia-skills
Design, plan, and analyze A/B tests with statistical rigor. An agent skill from OpenClaudia/openclaudia-skills.
Works with
Categories
Analyze Google search results (SERP) for any keyword. An agent skill from OpenClaudia/openclaudia-skills. Serp Analyzer is an agent skill from OpenClaudia/openclaudia-skills. Analyze Google search results (SERP) for any keyword.
Serp Analyzer fits situations like: the user says analyze the SERP; competitive analysis for keyword; search results for; asks about ranking content patterns for a keyword.
Run `npx skills add OpenClaudia/openclaudia-skills --skill serp-analyzer -a claude-code`. Or copy the skill folder (skills/serp-analyzer in OpenClaudia/openclaudia-skills) into .claude/skills/serp-analyzer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add OpenClaudia/openclaudia-skills --skill serp-analyzer -a codex`. Or copy the skill folder (skills/serp-analyzer in OpenClaudia/openclaudia-skills) into .agents/skills/serp-analyzer 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 OpenClaudia/openclaudia-skills --skill serp-analyzer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/serp-analyzer, .gemini/skills/serp-analyzer, .github/skills/serp-analyzer and .opencode/skills/serp-analyzer in your project.
Going by SKILL.md and its folder, Serp Analyzer needs the command-line tools its instructions call (curl and jq) and credentials named SERPINGAPI_API_KEY, SERPAPI_API_KEY, DATAFORSEO_PASSWORD and SEMRUSH_API_KEY. Our summary lists: A credential in SEMRUSH_API_KEY; A credential in SERPAPI_API_KEY.
SKILL.md names 5 domains. In commands or code: serpapi.com, api.serpingapi.com, api.semrush.com and api.dataforseo.com; the agent is likely to contact these when it follows the instructions. As links in the text: serpingapi.com. 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.
Serp Analyzer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 15k 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 Serp Analyzer: SEO Content Brief Generator (AgriciDaniel/claude-seo, 19k stars), Strategic SEO Planning (AgriciDaniel/claude-seo, 19k stars), Chatgpt Web Research (bear2u/my-skills, 932 stars) and Serp Analysis (MadAppGang/claude-code, 285 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
OpenClaudia (a GitHub organization) maintains it in OpenClaudia/openclaudia-skills, which has 713 GitHub stars. The repository holds 74 skills in this directory. The repository was last updated on September 18, 2026.
Source: OpenClaudia/openclaudia-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.