SEO keyword insights skill

Build evidence-backed SEO keyword insights and strategy using SandBase-managed search, keyword, site-analysis, and SERP capabilities.

by sandbaseai·Apache-2.0 license·★ 199 Stars on the repo·GitHub ↗

Use now

Inside this skill

SKILL.md · the author's own words
# SEO Keyword Insights

Build a decision-ready organic-search strategy from a site, product, seed topic, or competitor set. This Skill is a SandBase API workflow:…

The primary capability is **DataForSEO keyword search through SandBase**: discover candidates, validate demand and difficulty, compare site…

## Operating principles

- Start from the business and audience, not a brand-name keyword list.
- Treat tool-returned metrics and SERP results as evidence; treat model-generated keywords, intent labels, and recommendations as hypothese…
- Select the country, language, device, and search engine deliberately. State any default rather than silently assuming a market.
- Optimize for qualified organic traffic and the site's conversion model, not volume alone.
- Inspect live SERPs before recommending a page type or claiming a ranking opportunity.
- Keep user domains, competitor lists, raw exports, and strategy confidential. Return a summarized report unless raw data is requested.

## Workflow

Word-for-word excerpt, not a result. Read the full SKILL.md ↓

Files of SEO keyword insights

sandbaseai/main1 file shown
SKILL.md
Show the full text122 lines

SEO Keyword Insights

Build a decision-ready organic-search strategy from a site, product, seed topic, or competitor set. This Skill is a SandBase API workflow: it calls the named SEO capabilities in the SandBase API map through the SandBase MCP gateway. In a SandBase Agent, run the capabilities directly. In another compatible agent, require an authorized SandBase connection before starting; never request, print, or store an API key in the research output.

The primary capability is DataForSEO keyword search through SandBase: discover candidates, validate demand and difficulty, compare site visibility, and inspect live SERPs. Read example workflows when the user needs a starting prompt or wants to understand the output.

Operating principles

  • Start from the business and audience, not a brand-name keyword list.
  • Treat tool-returned metrics and SERP results as evidence; treat model-generated keywords, intent labels, and recommendations as hypotheses or judgment.
  • Select the country, language, device, and search engine deliberately. State any default rather than silently assuming a market.
  • Optimize for qualified organic traffic and the site's conversion model, not volume alone.
  • Inspect live SERPs before recommending a page type or claiming a ranking opportunity.
  • Keep user domains, competitor lists, raw exports, and strategy confidential. Return a summarized report unless raw data is requested.

Workflow

1. Frame the decision

Collect or infer the target site or product, target market, language, conversion goal, audience, content scope, and competitors. Classify the request as one or more of: discovery, site opportunity, competitor gap, content roadmap, or page keyword map.

If a site is supplied, form a compact site brief before researching: category, offer, ICP, jobs-to-be-done, differentiators, conversion action, current content themes, and exclusions. Inspect the homepage and a small set of representative product, use-case, pricing, docs, and content pages. Use a SandBase site/content capability when available; use SandBase web search only as a fallback. Record inaccessible or JavaScript-heavy pages as evidence gaps.

When market details are missing, choose a defensible default only if the site or request makes one clear; otherwise ask for the market. Never merge metrics from different markets or engines without labels.

2. Select and call SandBase capabilities

Read the SandBase API map before selecting tools. Use the listed tool_name through the SandBase gateway:

  1. Call sandbase_describe_tool for the selected tool_name and read its current input schema.
  2. Call sandbase_call_tool with that exact tool_name and only schema-defined arguments.
  3. Keep the tool name, market, language, device, and timestamp with the returned data.

Use sandbase_find_tools only when the API map does not cover a needed capability or SandBase has added a relevant one. Do not replace a mapped SEO capability with an unverified guessed name.

Prefer this evidence ladder:

  1. Site/content parsing for the supplied site.
  2. Keyword discovery from site-derived, product, problem, use-case, and integration seeds.
  3. Demand, difficulty, trend, and clickstream metrics for the shortlisted candidates.
  4. Ranked-keyword, competitor, and intersection data when a domain comparison is useful.
  5. Live organic SERPs for the leading candidates and each priority cluster.

The API map intentionally fixes the product-facing capability names, while sandbase_describe_tool remains authoritative for payload shape, supported locations, and optional parameters. If an expected capability is unavailable, identify the evidence gap and continue only with evidence that is available.

3. Build and validate the keyword universe

Create 3–10 justified seed themes from the site brief or product description: category, capability, use case, pain point, buyer role, integration, comparison, and transactional or informational modifiers. Keep brand terms separate unless brand SEO is explicitly in scope.

Expand a small number of diverse seeds first, then deduplicate and remove clearly irrelevant, unsafe, navigational, or off-market terms. Preserve the provenance of each candidate: site, seed, suggestion, related, competitor, SERP, or hypothesis.

Validate the promising candidates with the available SandBase capabilities. Keep search volume, difficulty, CPC, trend, clickstream, rank, and SERP features in their original market and source context. Mark unavailable metrics as unavailable; never estimate them.

For competitor work, distinguish:

  • coverage gap: a competitor ranks and the target does not;
  • performance gap: both rank, but the target is materially weaker;
  • strategic gap: the query fits the target's offer but no adequate target page exists.

Do not call every available provider merely because it exists. Stop expanding once clusters have enough evidence to make a decision; expand again only for thin or ambiguous clusters.

Use the keyword capabilities deliberately:

  • Start with keyword_suggestions, keyword_ideas, related_keywords, or Google Ads seed expansion.
  • Use search_volume, historical volume, Google Trends, and bulk difficulty only after shortlisting candidates.
  • Use keywords_for_site and ranked_keywords to distinguish existing coverage from true gaps.
  • Use competitors_domain, domain_intersection, and serp_competitors only for a justified competitor comparison.
  • Use Google organic SERP and related/autocomplete queries to validate intent and the recommended page type.
4. Interpret intent, competition, and opportunity

Cluster validated candidates by user problem and shared ranking intent, then label each cluster with funnel stage and the best page purpose. Use live SERPs to verify whether the query rewards a product page, feature page, comparison, integration page, programmatic template, documentation, category page, or editorial content.

Score at cluster level before scoring individual keywords. Use a transparent qualitative scorecard:

Dimension Question
Qualified demand Is the audience and demand meaningful for the business?
Commercial fit Can the offer or a conversion path serve this query well?
Feasibility Do difficulty, incumbent quality, topical authority, and SERP shape make entry plausible?
Strategic leverage Does winning support positioning, product adoption, or a reusable page family?
Evidence confidence Are the market, metrics, and SERP evidence sufficiently complete?

Explain the reasoning behind each priority. Do not use a universal volume or difficulty cutoff: an opportunity's threshold depends on the market, query intent, business value, and the target's authority. If the user supplies a threshold, honor it and show which candidates meet it.

5. Produce an execution plan

Return a concise report using the report template for full deliverables. Separate observed data, calculated prioritization, and strategic judgment. Include assumptions, market labels, sources/capabilities used, data gaps, and next validation actions.

For every recommended page, specify its target cluster, primary query, supporting queries, intent, proposed page type, angle, conversion path, and SERP evidence. Recommend updates to an existing page when that is stronger than creating a new URL. Flag potential cannibalization between pages targeting the same intent.

Example tasks

  • “Find non-brand keyword opportunities for example.com in the United States. Prioritize commercial intent and show the evidence behind every recommendation.”
  • “Expand AI agent observability into keyword clusters, then validate volume, difficulty, trends, and the Google SERP for the top cluster.”
  • “Compare our-domain.com with competitor-a.com and competitor-b.com. Separate coverage gaps from performance gaps and recommend the next three pages.”
  • “Audit the keywords this domain already ranks for. Identify which existing pages should be improved before creating new content.”
  • “Research keyword opportunities for CRM software in Germany. Keep Germany/German metrics separate from any English-language research.”

Quality gate

Before delivering, verify that:

  • The site brief supports the selected seeds, or a no-site scope is explicit.
  • Every metric is source-backed and labeled with its market or marked unavailable.
  • Intent and page-type claims for priority clusters have live-SERP evidence.
  • Competitor claims distinguish observation from inference.
  • Priorities favor qualified outcomes and feasibility, not a single vanity metric.
  • Recommendations are specific enough to hand to content, product marketing, or SEO owners.

Failure handling

  • If SandBase is unavailable or unauthorized, report the failed capability and ask the user to connect or authorize SandBase; do not silently substitute a direct provider API.
  • If a capability returns incomplete data, keep partial findings, downgrade confidence, and name the missing evidence.
  • If crawling is blocked, analyze accessible pages and clarify that the site brief may be incomplete.
  • If no feasible priority emerges, report that finding and recommend a validation, authority-building, or paid-discovery path rather than inventing an opportunity.
1---
2name: seo-keyword-insights
3description: Build evidence-backed SEO keyword insights and strategy using SandBase-managed search, keyword, site-analysis, and SERP capabilities. Use when asked to discover or prioritize keywords, assess search demand or ranking feasibility, map intent and topics, find competitor gaps, plan organic-search landing pages or content, or analyze a website's SEO opportunities.
4---
5 
6# SEO Keyword Insights
7 
8Build a decision-ready organic-search strategy from a site, product, seed topic, or competitor set. This Skill is a SandBase API workflow: it calls the named SEO capabilities in [the SandBase API map](references/sandbase-api-map.md) through the SandBase MCP gateway. In a SandBase Agent, run the capabilities directly. In another compatible agent, require an authorized SandBase connection before starting; never request, print, or store an API key in the research output.
9 
10The primary capability is **DataForSEO keyword search through SandBase**: discover candidates, validate demand and difficulty, compare site visibility, and inspect live SERPs. Read [example workflows](references/example-workflows.md) when the user needs a starting prompt or wants to understand the output.
11 
12## Operating principles
13 
14- Start from the business and audience, not a brand-name keyword list.
15- Treat tool-returned metrics and SERP results as evidence; treat model-generated keywords, intent labels, and recommendations as hypotheses or judgment.
16- Select the country, language, device, and search engine deliberately. State any default rather than silently assuming a market.
17- Optimize for qualified organic traffic and the site's conversion model, not volume alone.
18- Inspect live SERPs before recommending a page type or claiming a ranking opportunity.
19- Keep user domains, competitor lists, raw exports, and strategy confidential. Return a summarized report unless raw data is requested.
20 
21## Workflow
22 
23### 1. Frame the decision
24 
25Collect or infer the target site or product, target market, language, conversion goal, audience, content scope, and competitors. Classify the request as one or more of: discovery, site opportunity, competitor gap, content roadmap, or page keyword map.
26 
27If a site is supplied, form a compact site brief before researching: category, offer, ICP, jobs-to-be-done, differentiators, conversion action, current content themes, and exclusions. Inspect the homepage and a small set of representative product, use-case, pricing, docs, and content pages. Use a SandBase site/content capability when available; use SandBase web search only as a fallback. Record inaccessible or JavaScript-heavy pages as evidence gaps.
28 
29When market details are missing, choose a defensible default only if the site or request makes one clear; otherwise ask for the market. Never merge metrics from different markets or engines without labels.
30 
31### 2. Select and call SandBase capabilities
32 
33Read [the SandBase API map](references/sandbase-api-map.md) before selecting tools. Use the listed `tool_name` through the SandBase gateway:
34 
351. Call `sandbase_describe_tool` for the selected `tool_name` and read its current input schema.
362. Call `sandbase_call_tool` with that exact `tool_name` and only schema-defined arguments.
373. Keep the tool name, market, language, device, and timestamp with the returned data.
38 
39Use `sandbase_find_tools` only when the API map does not cover a needed capability or SandBase has added a relevant one. Do not replace a mapped SEO capability with an unverified guessed name.
40 
41Prefer this evidence ladder:
42 
431. Site/content parsing for the supplied site.
442. Keyword discovery from site-derived, product, problem, use-case, and integration seeds.
453. Demand, difficulty, trend, and clickstream metrics for the shortlisted candidates.
464. Ranked-keyword, competitor, and intersection data when a domain comparison is useful.
475. Live organic SERPs for the leading candidates and each priority cluster.
48 
49The API map intentionally fixes the product-facing capability names, while `sandbase_describe_tool` remains authoritative for payload shape, supported locations, and optional parameters. If an expected capability is unavailable, identify the evidence gap and continue only with evidence that is available.
50 
51### 3. Build and validate the keyword universe
52 
53Create 3–10 justified seed themes from the site brief or product description: category, capability, use case, pain point, buyer role, integration, comparison, and transactional or informational modifiers. Keep brand terms separate unless brand SEO is explicitly in scope.
54 
55Expand a small number of diverse seeds first, then deduplicate and remove clearly irrelevant, unsafe, navigational, or off-market terms. Preserve the provenance of each candidate: `site`, `seed`, `suggestion`, `related`, `competitor`, `SERP`, or `hypothesis`.
56 
57Validate the promising candidates with the available SandBase capabilities. Keep search volume, difficulty, CPC, trend, clickstream, rank, and SERP features in their original market and source context. Mark unavailable metrics as unavailable; never estimate them.
58 
59For competitor work, distinguish:
60 
61- **coverage gap**: a competitor ranks and the target does not;
62- **performance gap**: both rank, but the target is materially weaker;
63- **strategic gap**: the query fits the target's offer but no adequate target page exists.
64 
65Do not call every available provider merely because it exists. Stop expanding once clusters have enough evidence to make a decision; expand again only for thin or ambiguous clusters.
66 
67Use the keyword capabilities deliberately:
68 
69- Start with `keyword_suggestions`, `keyword_ideas`, `related_keywords`, or Google Ads seed expansion.
70- Use `search_volume`, historical volume, Google Trends, and bulk difficulty only after shortlisting candidates.
71- Use `keywords_for_site` and `ranked_keywords` to distinguish existing coverage from true gaps.
72- Use `competitors_domain`, `domain_intersection`, and `serp_competitors` only for a justified competitor comparison.
73- Use Google organic SERP and related/autocomplete queries to validate intent and the recommended page type.
74 
75### 4. Interpret intent, competition, and opportunity
76 
77Cluster validated candidates by user problem and shared ranking intent, then label each cluster with funnel stage and the best page purpose. Use live SERPs to verify whether the query rewards a product page, feature page, comparison, integration page, programmatic template, documentation, category page, or editorial content.
78 
79Score at cluster level before scoring individual keywords. Use a transparent qualitative scorecard:
80 
81| Dimension | Question |
82|---|---|
83| Qualified demand | Is the audience and demand meaningful for the business? |
84| Commercial fit | Can the offer or a conversion path serve this query well? |
85| Feasibility | Do difficulty, incumbent quality, topical authority, and SERP shape make entry plausible? |
86| Strategic leverage | Does winning support positioning, product adoption, or a reusable page family? |
87| Evidence confidence | Are the market, metrics, and SERP evidence sufficiently complete? |
88 
89Explain the reasoning behind each priority. Do not use a universal volume or difficulty cutoff: an opportunity's threshold depends on the market, query intent, business value, and the target's authority. If the user supplies a threshold, honor it and show which candidates meet it.
90 
91### 5. Produce an execution plan
92 
93Return a concise report using [the report template](references/report-template.md) for full deliverables. Separate observed data, calculated prioritization, and strategic judgment. Include assumptions, market labels, sources/capabilities used, data gaps, and next validation actions.
94 
95For every recommended page, specify its target cluster, primary query, supporting queries, intent, proposed page type, angle, conversion path, and SERP evidence. Recommend updates to an existing page when that is stronger than creating a new URL. Flag potential cannibalization between pages targeting the same intent.
96 
97## Example tasks
98 
99- “Find non-brand keyword opportunities for `example.com` in the United States. Prioritize commercial intent and show the evidence behind every recommendation.”
100- “Expand `AI agent observability` into keyword clusters, then validate volume, difficulty, trends, and the Google SERP for the top cluster.”
101- “Compare `our-domain.com` with `competitor-a.com` and `competitor-b.com`. Separate coverage gaps from performance gaps and recommend the next three pages.”
102- “Audit the keywords this domain already ranks for. Identify which existing pages should be improved before creating new content.”
103- “Research keyword opportunities for `CRM software` in Germany. Keep Germany/German metrics separate from any English-language research.”
104 
105## Quality gate
106 
107Before delivering, verify that:
108 
109- The site brief supports the selected seeds, or a no-site scope is explicit.
110- Every metric is source-backed and labeled with its market or marked unavailable.
111- Intent and page-type claims for priority clusters have live-SERP evidence.
112- Competitor claims distinguish observation from inference.
113- Priorities favor qualified outcomes and feasibility, not a single vanity metric.
114- Recommendations are specific enough to hand to content, product marketing, or SEO owners.
115 
116## Failure handling
117 
118- If SandBase is unavailable or unauthorized, report the failed capability and ask the user to connect or authorize SandBase; do not silently substitute a direct provider API.
119- If a capability returns incomplete data, keep partial findings, downgrade confidence, and name the missing evidence.
120- If crawling is blocked, analyze accessible pages and clarify that the site brief may be incomplete.
121- If no feasible priority emerges, report that finding and recommend a validation, authority-building, or paid-discovery path rather than inventing an opportunity.
122 

Discussion

Alternatives

Agentic Browsing ReadinessAudit and fix agent readiness: the Lighthouse Agentic Browsing fraction, accessibility tree for agents, robots.txt and Content-Signal for AI agents, WAF treatment of agent traffic, llms.txt, Markdown delivery, ai-catalog.json, /.well-known discovery files, and WebMCP tools. Exclude AI citability and brand signals (seo-geo) and commerce protocol depth (seo-ecommerce).Marketing · MITBacklink Profile AnalysisBacklink profile analysis: referring domains, anchor text distribution, toxic link detection, competitor gap analysis. Works with free APIs (Moz, Bing Webmaster, Common Crawl) and DataForSEO extension. Use when user says backlinks, link profile, referring domains, anchor text, toxic links, link gap, link building, disavow, or backlink audit.Marketing · MIT/setup-cmsConnect a CMS to notfair SEO tools. Guides users through configuring WordPress, Strapi, Contentful, or Ghost — tests the connection, and writes credentials to .env.local. Once set up, seo-analysis automatically cross- references CMS content against Google Search Console data. Use whenever the user says "connect my CMS", "set up WordPress", "configure Strapi", "add Contentful", "connect Ghost", or "CMS setup". Also trigger if the user asks why no CMS data appears in a seo-analysis report. · MITBacklink checkBacklink profile for any domain — referring domains, authority, anchors, new/lost links, and a side-by-side vs a competitor. Use when asked "check my backlinks", "backlink profile of X", "who links to them", or "link gap vs competitor".Marketing · MIT