Agent Skills for using the semrush CLI across SEO, paid search, backlinks,
traffic trends, local SEO, and repeatable batch reporting workflows.
This repository intentionally ships multiple focused skills instead of one large Semrush skill. Each skill owns one workflow surface and points to related skills when a task crosses boundaries.
| Skill | Use it for |
|---|---|
semrush-cli-setup |
Install checks, auth, JSON output, cache, API units, and troubleshooting. |
semrush-keyword-research |
Keyword metrics, difficulty, related terms, broad match, questions, and prioritization. |
semrush-competitor-research |
Organic competitors, top keywords, top pages, subdomains, and keyword gaps. |
semrush-backlink-audit |
Backlink overview, referring domains, anchors, authority, history, and link gaps. |
semrush-paid-search-intelligence |
Paid keywords, paid competitors, ad copy, ad history, CPC signals, and PLA reports. |
semrush-traffic-trends |
Traffic summaries, source mix, geo, devices, top pages, destinations, and trend lines. |
semrush-local-seo |
Local listings, map-rank campaigns, keywords, heatmaps, and local competitors. |
semrush-batch-workflows |
TOML batch recipes, API-unit estimates, and repeatable multi-step Semrush reports. |
skills/
semrush-keyword-research/
SKILL.md
agents/openai.yaml
semrush-batch-workflows/
SKILL.md
agents/openai.yaml
assets/recipes/*.toml
skills.sh.json
README.md
Every skill contains a SKILL.md file with YAML frontmatter fields name and
description, then concise procedural instructions. The agents/openai.yaml
files provide optional UI metadata. Batch templates are kept as assets because
they are meant to be copied or invoked, not loaded into context by default.
Install the whole collection with the skills CLI:
npx skills add osodevops/intelligence-layer-skillsInstall one specific skill when the agent or CLI supports skill selection:
npx skills add osodevops/intelligence-layer-skills --skill semrush-keyword-researchThe skills assume a semrush binary is available on PATH. Runtime
credentials stay outside this repository and should be provided by the user's
local CLI configuration or environment.
Most analytics workflows use Semrush API-key authentication:
export SEMRUSH_API_KEY="<set-locally>"Local SEO and project-management workflows use Semrush OAuth:
export SEMRUSH_OAUTH_TOKEN="<set-locally>"Do not commit real keys, tokens, config files, command output containing credentials, or customer-specific Semrush data.
Reusable batch templates live in
skills/semrush-batch-workflows/assets/recipes/:
competitor-audit.tomlkeyword-opportunity.tomlbacklink-audit.tomlpaid-search-audit.tomltraffic-summary.toml
Estimate before running a recipe:
semrush batch estimate skills/semrush-batch-workflows/assets/recipes/keyword-opportunity.toml \
--var phrase="project management software" \
--var database=us \
--output json \
--quietThe skills.sh.json file groups skills on the repository page in skills.sh.
It does not change how the skills CLI installs skills and does not modify any
SKILL.md content.
The skills.sh repo page should be:
https://www.skills.sh/osodevops/intelligence-layer-skills
skills.sh pages and badges are created after the repository is seen by the
skills.sh telemetry service and its cache refreshes. Do not add the install
count badge until the badge endpoint returns a real count instead of
resource not found.
Run the local structural validation:
for d in skills/*; do
python3 /Users/sionsmith/.codex/skills/.system/skill-creator/scripts/quick_validate.py "$d"
doneValidate bundled recipe syntax:
python3 - <<'PY'
import pathlib, tomllib
for path in pathlib.Path("skills/semrush-batch-workflows/assets/recipes").glob("*.toml"):
tomllib.loads(path.read_text())
print(f"OK {path}")
PYBefore publishing, run the repository's normal secret scanner and confirm the skill bodies do not contain organization-specific material:
rg -n -i "oso|osodevops|github\\.com/osodevops" skills || true