Install
$ agentstack add skill-zubair-trabzada-dataforseo-claude-seo-content ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Phase 0: Credential Preflight (REQUIRED — run BEFORE anything else)
Before running any of the steps below, always invoke the shared preflight check:
~/.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:
- Parse
login:andpassword:from their message. - Write them to
~/.claude/skills/seo/.env:
`` DATAFORSEO_LOGIN= DATAFORSEO_PASSWORD= ``
chmod 600 ~/.claude/skills/seo/.env- Run a verification call:
~/.claude/skills/seo/scripts/keyword_research.py volume "test" - If verification succeeds (real JSON returned): tell the user "✅ Credentials verified. Running your command now..." and proceed with the original request.
- If status
40104 — Please verify your account: tell the user to verify their account at https://app.dataforseo.com/, then say "continue" to retry. - 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 Content Authority Skill
> Powered by: DataForSEO API — Labs ranked_keywords + Labs competitors_domain + Labs domain_intersection. > Cost: ~$0.05 per run.
Run
Pull what the target ranks for, plus the top competitor's ranked keywords:
~/.claude/skills/seo/scripts/domain_overview.py ranked --target --limit 200
~/.claude/skills/seo/scripts/domain_overview.py competitors --target --limit 5
~/.claude/skills/seo/scripts/domain_overview.py content_gap --you --competitors
Topic clustering
Group keywords into topical clusters using common stems / shared head terms. Don't be too granular — aim for 8-15 clusters max for a typical site.
Example clusters for an SEO tool site:
- "keyword research" (head: keyword)
- "rank tracking" (head: rank, ranking)
- "backlinks" (head: backlink, link building)
- "site audit" (head: audit, technical)
- ...
For each cluster, classify it
| Status | Definition | |--------|------------| | Strong | 5+ keywords ranking top 10, total est. traffic > 100/mo | | Building | Some keywords top 30, none top 10 yet | | Weak | Keywords ranking but all below position 30 | | Missing | Competitors rank, you don't (from content_gap) |
Content Score (0-100)
content_score = round(
50 * (strong_clusters / total_clusters) +
25 * (1 - missing_clusters / total_clusters) +
25 * (avg_position_top_quartile_score)
)
Highest-leverage content moves
Surface the top 5 specific articles to write next. Pick from the "Missing" and "Building" clusters, prioritizing keywords with:
- Search volume > 200/mo
- Difficulty < competitor's domain rank
- Commercial or transactional intent
For each, suggest: working title, target keyword, related keywords to include, estimated word count.
Return JSON shape
{
"content_score": 64,
"strong_topics": [{"cluster": "...", "keywords": 12, "avg_position": 5.2}],
"weak_topics": [{"cluster": "...", "keywords": 18, "avg_position": 42.1}],
"missing_topics": [{"cluster": "...", "competitor": "...", "keyword_count": 24}],
"content_recommendations": [
{"title": "...", "target_keyword": "...", "volume": 880, "difficulty": 22, "intent": "commercial"}
]
}
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
- Source: zubair-trabzada/dataforseo-claude
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.