# Seo Keywords

> Keyword research and opportunity scoring via the DataForSEO Keywords Data and Labs APIs. Returns search volume, CPC, competition, intent classification, related keywords, and long-tail suggestions with a Keyword Score (0-100).

- **Type:** Skill
- **Install:** `agentstack add skill-zubair-trabzada-dataforseo-claude-seo-keywords`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [zubair-trabzada](https://agentstack.voostack.com/s/zubair-trabzada)
- **Installs:** 0
- **Category:** [Search](https://agentstack.voostack.com/c/search)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [zubair-trabzada](https://github.com/zubair-trabzada)
- **Source:** https://github.com/zubair-trabzada/dataforseo-claude/tree/main/skills/seo-keywords

## Install

```sh
agentstack add skill-zubair-trabzada-dataforseo-claude-seo-keywords
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

## Phase 0: Credential Preflight (REQUIRED — run BEFORE anything else)

Before running any of the steps below, **always** invoke the shared preflight check:

```bash
~/.claude/skills/seo/scripts/preflight.sh
```

**If exit code is 0:** credentials are configured — proceed with the rest of this skill silently.

**If exit code is 2:** the script prints the DataForSEO setup wizard to stdout. STOP, display that wizard to the user verbatim, and **wait for them to paste credentials** in this format:

```
login: their_email@example.com
password: their_api_password_here
```

When they reply:

1. Parse `login:` and `password:` from their message.
2. Write them to `~/.claude/skills/seo/.env`:
   ```
   DATAFORSEO_LOGIN=
   DATAFORSEO_PASSWORD=
   ```
3. `chmod 600 ~/.claude/skills/seo/.env`
4. Run a verification call: `~/.claude/skills/seo/scripts/keyword_research.py volume "test"`
5. If verification succeeds (real JSON returned): tell the user "✅ Credentials verified. Running your command now..." and proceed with the original request.
6. If status `40104 — Please verify your account`: tell the user to verify their account at https://app.dataforseo.com/, then say "continue" to retry.
7. If any other auth error: ask them to double-check the API password (the long alphanumeric string from https://app.dataforseo.com/api-access — not their account login password).

**Never** echo credentials back to the user, never include them in tool output, and never commit them.

---

# SEO Keyword Research Skill

> **Powered by:** [DataForSEO API](https://dataforseo.com) — Keywords Data `google_ads/search_volume` + Labs `related_keywords` + Labs `keyword_suggestions` + Labs `bulk_keyword_difficulty`.
> **Cost:** ~$0.05-0.10 per keyword run.

## Inputs

- A seed keyword OR a domain (call it ``)
- Optional: `--location` (default United States), `--language` (default en)

## Run

For a **seed keyword**:

```bash
~/.claude/skills/seo/scripts/keyword_research.py related "" --limit 200
~/.claude/skills/seo/scripts/keyword_research.py suggestions "" --limit 100
```

For a **domain** (find the keywords it already ranks for):

```bash
~/.claude/skills/seo/scripts/domain_overview.py ranked --target  --limit 200
```

## Analysis

### Group by search intent

Classify each keyword into one of:
- **Informational** — "how to", "what is", "guide", "tutorial"
- **Commercial** — "best", "review", "comparison", "vs"
- **Transactional** — "buy", "price", "deal", "near me", brand+product
- **Navigational** — brand names, specific URLs

### Opportunity score per keyword

```
opportunity = search_volume / (keyword_difficulty + 10)
```

Higher = better. Surface the **top 20** sorted by opportunity.

### Keyword Score (0-100)

| Signal | Weight |
|--------|--------|
| Avg. search volume of top 50 keywords (log-scaled) | 30% |
| Share of low-difficulty keywords (KD < 30) in top 50 | 25% |
| Intent diversity (4 buckets present) | 15% |
| CPC value (high CPC = commercial intent) | 15% |
| Long-tail breadth (count of suggestions) | 15% |

Output: a Keyword Score with a one-sentence justification.

## Return JSON shape (when called from `/seo audit`)

```json
{
  "keyword_score": 78,
  "top_opportunities": [
    {"keyword": "...", "search_volume": 1000, "cpc": 2.5, "difficulty": 25, "intent": "commercial", "opportunity": 28.5},
    ...
  ],
  "intent_breakdown": {"informational": 45, "commercial": 32, "transactional": 18, "navigational": 5}
}
```

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [zubair-trabzada](https://github.com/zubair-trabzada)
- **Source:** [zubair-trabzada/dataforseo-claude](https://github.com/zubair-trabzada/dataforseo-claude)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-zubair-trabzada-dataforseo-claude-seo-keywords
- Seller: https://agentstack.voostack.com/s/zubair-trabzada
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
