adamkristopher/seo-dataforseo/SKILL.md
SEO keyword research using the DataForSEO API. Perform keyword analysis, YouTube keyword research, competitor analysis, SERP analysis, and trend tracking. Use when the user asks to: research keywords, analyze search volume/CPC/competition, find keyword suggestions, check keyword difficulty, analyze competitors, get trending topics, do YouTube SEO research, or optimize landing page keywords. Requires a DataForSEO API account and credentials in .env file.
npx skillsauth add openclaw/skills seo-dataforseoInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Install dependencies:
pip install -r scripts/requirements.txt
Configure credentials by creating a .env file in the project root:
[email protected]
DATAFORSEO_PASSWORD=your_api_password
Get credentials from: https://app.dataforseo.com/api-access
| User says | Function to call |
|-----------|-----------------|
| "Research keywords for [topic]" | keyword_research("topic") |
| "YouTube keyword data for [idea]" | youtube_keyword_research("idea") |
| "Analyze competitor [domain.com]" | competitor_analysis("domain.com") |
| "What's trending?" | trending_topics() |
| "Keyword analysis for [list]" | full_keyword_analysis(["kw1", "kw2"]) |
| "Landing page keywords for [topic]" | landing_page_keyword_research(["kw1"], "competitor.com") |
Execute functions by importing from scripts/main.py:
import sys
from pathlib import Path
sys.path.insert(0, str(Path("scripts")))
from main import *
result = keyword_research("AI website builders")
Every research task follows three phases:
Run API functions. Each function call hits the DataForSEO API and returns structured data.
All results automatically save as timestamped JSON files to results/{category}/. File naming pattern: YYYYMMDD_HHMMSS__operation__keyword__extra_info.json
After research, read the saved JSON files and create a markdown summary in results/summary/ with data tables, ranked opportunities, and strategic recommendations.
These are the primary functions in scripts/main.py. Each orchestrates multiple API calls for a complete research workflow.
| Function | Purpose | What it gathers |
|----------|---------|----------------|
| keyword_research(keyword) | Single keyword deep-dive | Overview, suggestions, related keywords, difficulty |
| youtube_keyword_research(keyword) | YouTube content research | Overview, suggestions, YouTube SERP rankings, YouTube trends |
| landing_page_keyword_research(keywords, competitor_domain) | Landing page SEO | Overview, intent, difficulty, SERP analysis, competitor keywords |
| full_keyword_analysis(keywords) | Strategic content planning | Overview, difficulty, intent, keyword ideas, historical volume, Google Trends |
| competitor_analysis(domain, keywords) | Competitor intelligence | Domain keywords, Google Ads keywords, competitor domains |
| trending_topics(location_name) | Current trends | Currently trending searches |
All functions accept an optional location_name parameter (default: "United States"). Most functions also have boolean flags to skip specific sub-analyses (e.g., include_suggestions=False).
For granular control, import specific functions from the API modules. See references/api-reference.md for the complete list of 25 API functions with parameters, limits, and examples.
Results auto-save to results/ with this structure:
results/
├── keywords_data/ # Search volume, CPC, competition
├── labs/ # Suggestions, difficulty, intent
├── serp/ # Google/YouTube rankings
├── trends/ # Google Trends data
└── summary/ # Human-readable markdown summaries
from core.storage import list_results, load_result, get_latest_result
# List recent results
files = list_results(category="labs", limit=10)
# Load a specific result
data = load_result(files[0])
# Get most recent result for an operation
latest = get_latest_result(category="labs", operation="keyword_suggestions")
from main import get_recent_results, load_latest
# List recent files across all categories
files = get_recent_results(limit=10)
# Load latest result for a category
data = load_latest("labs", "keyword_suggestions")
After running research, create a markdown summary document in results/summary/. Include:
Name the summary file descriptively (e.g., results/summary/ai-tools-keyword-research.md).
tools
Use when the user wants to connect to, test, or use the McDonalds service at mcp.mcd.cn, including checking authentication, probing MCP endpoints, listing tools, or calling McDonalds MCP tools through a reusable local CLI.
development
Web scraping platform — Twitter/X data, Vinted marketplace, and general web scraping API
development
SlowMist AI Agent Security Review — comprehensive security framework for skills, repositories, URLs, on-chain addresses, and products (Claude Code version)
data-ai
去除中文文本中的 AI 写作痕迹,使其读起来自然。基于维基百科 AI 写作特征指南,检测 24 种 AI 模式。触发词:humanizer-cn、去除 AI 痕迹、去除 AI 写作痕迹、中文文本人性化。