30x-seo-keywords — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited 30x-seo-keywords (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Comprehensive keyword research and analysis using DataForSEO API via direct curl calls.
Credentials stored in ~/.config/dataforseo/auth (Base64 encoded).
# Read auth token
AUTH=$(cat ~/.config/dataforseo/auth)| Command | What it does |
|---|---|
/seo keywords research <seed> | Generate keyword ideas from seed keyword |
/seo keywords volume <keyword1, keyword2, ...> | Get search volume for keywords |
/seo keywords difficulty <keyword1, keyword2, ...> | Analyze keyword difficulty scores |
/seo keywords site <domain> | Find keywords a site ranks for |
/seo keywords gap <your-domain> <competitor> | Find keyword opportunities |
/seo keywords intent <keyword1, keyword2, ...> | Analyze search intent |
/seo keywords trending | Find trending search queries |
/seo keywords history <keyword> | Historical search volume data |
curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_ideas/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keywords": ["SEED_KEYWORD"], "location_name": "United States", "language_code": "en", "limit": 50}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_suggestions/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keyword": "SEED_KEYWORD", "location_name": "United States", "language_code": "en", "limit": 50}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/related_keywords/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keyword": "SEED_KEYWORD", "location_name": "United States", "language_code": "en", "limit": 50}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/bulk_keyword_difficulty/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keywords": ["kw1", "kw2", "kw3"], "location_name": "United States", "language_code": "en"}]'curl -s -X POST "https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keywords": ["kw1", "kw2"], "location_code": 2840, "language_code": "en"}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"target": "example.com", "location_name": "United States", "language_code": "en", "limit": 100}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/search_intent/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keywords": ["kw1", "kw2"], "language_code": "en"}]'curl -s -X POST "https://api.dataforseo.com/v3/dataforseo_labs/google/historical_search_volume/live" \
-H "Authorization: Basic $(cat ~/.config/dataforseo/auth)" \
-H "Content-Type: application/json" \
-d '[{"keywords": ["KEYWORD"], "location_name": "United States", "language_code": "en"}]'Generate keyword ideas from a seed keyword:
Input: seed keyword (e.g., "coffee maker")
Output:
- Related keyword ideas
- Search volume per keyword
- CPC and competition data
- Keyword difficulty score
- Search intent classificationGet accurate search volume data:
Input: list of keywords
Output:
- Monthly search volume
- Search volume trend (12 months)
- CPC estimate
- Competition level (0-1)
- Seasonal patternsAnalyze ranking difficulty:
Input: list of keywords
Output:
- Difficulty score (0-100)
- SERP feature presence
- Top 10 competitor strength
- Estimated effort to rankDifficulty Interpretation:
Find keywords a domain ranks for:
Input: domain (e.g., "example.com")
Output:
- All ranking keywords
- Position for each keyword
- Search volume
- Traffic estimate
- Featured snippet presenceClassify keyword intent:
Input: list of keywords
Output:
- Intent type per keyword:
- Informational (how, what, why)
- Navigational (brand searches)
- Commercial (best, review, compare)
- Transactional (buy, price, discount)
- Content format recommendationsContent Mapping:
| Intent | Content Type |
|---|---|
| Informational | Blog posts, guides, tutorials |
| Navigational | Landing pages, about pages |
| Commercial | Comparison pages, reviews |
| Transactional | Product pages, pricing pages |
Score each keyword on these factors:
| Factor | Weight | Scoring |
|---|---|---|
| Search Volume | 25% | High (3), Medium (2), Low (1) |
| Difficulty | 30% | Easy (3), Medium (2), Hard (1) |
| Business Relevance | 25% | High (3), Medium (2), Low (1) |
| Intent Match | 20% | Perfect (3), Good (2), Partial (1) |
Quick wins have:
# Keyword Research: [seed keyword]
## Overview
- Total keywords found: X
- Average monthly volume: X
- Average difficulty: X
## Top Opportunities (Priority Sorted)
| Keyword | Volume | Difficulty | Intent | Priority |
|---------|--------|------------|--------|----------|
| [kw1] | X | X | Info | High |
| [kw2] | X | X | Trans | High |
## Keyword Clusters
### Cluster 1: [Topic]
- keyword a (vol: X, diff: X)
- keyword b (vol: X, diff: X)
## Content Recommendations
### Immediate Actions (Quick Wins)
1. [Keyword] -> Create [content type]
2. [Keyword] -> Create [content type]seo-content to create content for target keywordsseo-backlinks to build authority for competitive keywordsseo-serp to track ranking progress[PROTOCOL]: Update this header on changes, then check CLAUDE.md
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.