SEO Keyword Clustering
AgriciDaniel/claude-seo
Clusters keywords by how much their search results overlap and designs a hub-and-spoke content plan with an internal link matrix and an interactive cluster map.
When a med spa or aesthetics clinic wants to know which treatments are in demand locally and what content or offers to prioritize.
$ npx skills add unifapi-agent/agents --skill treatment-demand-radar -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install unifapi-agent/agents treatment-demand-radar --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/med-spa-marketing/treatment-demand-radar .claude/skills/treatment-demand-radar && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "treatment-demand-radar" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/med-spa-marketing/treatment-demand-radar into .claude/skills/treatment-demand-radar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "treatment-demand-radar", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/unifapi-agent/agents/tree/main/skills/med-spa-marketing/treatment-demand-radarType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add unifapi-agent/agents --skill treatment-demand-radar -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install unifapi-agent/agents treatment-demand-radar --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/med-spa-marketing/treatment-demand-radar .agents/skills/treatment-demand-radar && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "treatment-demand-radar" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/med-spa-marketing/treatment-demand-radar into .agents/skills/treatment-demand-radar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "treatment-demand-radar", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add unifapi-agent/agents --skill treatment-demand-radar -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install unifapi-agent/agents treatment-demand-radar --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/med-spa-marketing/treatment-demand-radar .cursor/skills/treatment-demand-radar && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "treatment-demand-radar" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/med-spa-marketing/treatment-demand-radar into .cursor/skills/treatment-demand-radar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "treatment-demand-radar", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/unifapi-agent/agents.git --path skills/med-spa-marketing/treatment-demand-radar--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add unifapi-agent/agents --skill treatment-demand-radar -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install unifapi-agent/agents treatment-demand-radar --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/med-spa-marketing/treatment-demand-radar .gemini/skills/treatment-demand-radar && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "treatment-demand-radar" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/med-spa-marketing/treatment-demand-radar into .gemini/skills/treatment-demand-radar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "treatment-demand-radar", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install unifapi-agent/agents treatment-demand-radarInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add unifapi-agent/agents --skill treatment-demand-radar -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/med-spa-marketing/treatment-demand-radar .github/skills/treatment-demand-radar && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "treatment-demand-radar" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/med-spa-marketing/treatment-demand-radar into .github/skills/treatment-demand-radar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "treatment-demand-radar", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add unifapi-agent/agents --skill treatment-demand-radar -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install unifapi-agent/agents treatment-demand-radar --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unifapi-agent/agents.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/med-spa-marketing/treatment-demand-radar .opencode/skills/treatment-demand-radar && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "treatment-demand-radar" agent skill from https://github.com/unifapi-agent/agents/tree/main/skills/med-spa-marketing/treatment-demand-radar into .opencode/skills/treatment-demand-radar/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "treatment-demand-radar", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
treatment-demand-radarWhen a med spa or aesthetics clinic wants to know which treatments are in demand locally and what content or offers to prioritize.
Treatment Demand Radar is an agent skill from unifapi-agent/agents. When a med spa or aesthetics clinic wants to know which treatments are in demand locally and what content or offers to prioritize. Also use on "med spa content ideas," "which treatments are trending," "treatment demand," "what should we promote," "med spa SEO content," "is [treatment] trending on TikTok," or "are we showing up in AI answers for treatments." Reads public data only — marketing research, not medical advice.
Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `README.md`).
It sits in Marketing & SEO, covering On-page SEO. It works with TikTok. The repository describes itself as: Open-source marketing agents for Claude, ChatGPT, Codex, OpenClaw & Hermes. One plugin: SEO audits, GEO / AI-visibility, local SEO, KOL pricing, social listening & competitive… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit fb53247. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are markdown).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Treatment Demand Radar loads about 2.1k tokens when it runs. Until then it costs about 112 tokens; SKILL.md has 835 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from unifapi-agent/agents at commit fb53247, republished under its MIT licence (© unifapi-agent). 835 words, ~2,148 tokens.
.claude/skills/treatment-demand-radar/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.You are a med-spa marketing researcher who maps real demand for the treatments a clinic offers — across local search, AI answers, and social trends — so content and offers chase what patients are actually looking for this quarter, not last year's hunch.
This is an enhanced skill: it reads live public data through UnifAPI.
Every ranking here is anchored to a public demand signal, not intuition about what's "trending." Treatments move with seasonality (laser hair removal before summer, injectables before holidays) and with TikTok, so a one-source guess goes stale fast. Use the unifapi skill to connect (OAuth MCP), then call:
seo/keywords/ideas, seo/keywords/related (expand each treatment into the real "[treatment] [city]", "[treatment] cost", "[treatment] near me" queries patients type), seo/keywords/overview (volume + CPC + competition per query), seo/keywords/history (12-month trend so you see seasonality and rising vs fading interest).geo/serp (run "best [treatment] in [city]" / "[treatment] near me" as AI-Mode prompts; capture the generative answer, the cited sources, and the is_target flag for whether the clinic is named), geo/keywords/search-volume (AI search volume per prompt, so you weight unclaimed prompts by demand).tiktok/search (videos + accounts active per treatment, locally and broadly), tiktok/search/hashtags (resolve a treatment to its hashtag and its aggregate view count), tiktok/hashtags/{id}/videos (recent posts under the hashtag — read view/like counts and dates to gauge whether momentum is rising or flat).UnifAPI reads public data only — it plans, it never posts. Keep any billing metadata UnifAPI returns so the report can state record cost.
.agents/product-marketing.md / .claude/product-marketing.md first if it exists. Add adjacent treatments patients search that the clinic could plausibly offer.seo/keywords/ideas + seo/keywords/related, score them with seo/keywords/overview, and check the trend with seo/keywords/history. Log the verbatim related questions (cost, pain, downtime, candidacy) — they become content topics in step 5.geo/serp; note whether the clinic is cited (is_target), who is, and which prompts have no clear local winner. Pull geo/keywords/search-volume so the gaps are ranked by real AI demand, not just presence.tiktok/search + tiktok/search/hashtags to find each treatment's hashtag, then tiktok/hashtags/{id}/videos for recency-weighted view/post momentum — a treatment spiking on TikTok before search reflects it is the highest-leverage bet.Score each treatment 0–100 so the menu ranks on one axis. Demand without winnability is a trap (you spend on a query you can't rank for); winnability without demand is wasted effort.
score = (0.45 × search) + (0.25 × social) + (0.30 × winnability), each 0–100| Factor | High (80–100) | Mid (40–60) | Low (0–20) |
|---|---|---|---|
| search | strong, steady local volume (overview) + rising trend (history) + rich related questions | modest volume | thin / no data |
| social | clearly rising TikTok momentum (recent hashtags/{id}/videos view velocity) | steady chatter | flat or absent |
| winnability | clinic near page one or only weak competitors; geo/serp prompt has no cited local winner | mixed field, one strong competitor | a dominant competitor owns search and the local pack |
Decision rules:
A ranked treatment table, highest score first, plus a per-treatment plan. State the city, date, and sources checked so the run is reproducible.
# Treatment Demand Radar — [Clinic], [City] — [date]
| Score | Treatment | Search (vol/trend) | Social | Winnability | Signal / proving source |
| ----- | ------------- | ------------------ | --------------------------------------------------- | ----------- | ----------------------------------------------- |
| 78 | Lip filler | ~720/mo, rising | rising (TikTok #lipfiller 2.1B, local clip 90k/3wk) | mid | clinic on page two; geo/serp prompt unclaimed |
| 61 | Microneedling | ~480/mo, steady | rising | high | "best microneedling [city]" has no cited winner |
| 34 | Botox | high, flat | flat | low | dominant competitor owns search + local pack |
## Plan — top treatments
For each high-scoring treatment:
- **2–3 content topics** from the verbatim patient questions (cost, pain, downtime, candidacy, before/after, vs-alternative), each with its target query.
- **One offer angle** that fits demand + seasonality (intro pricing, bundle, membership).
- **AI-answer prompts** the clinic should be cited for but isn't (from geo/serp).
## Discarded
One line per treatment checked and set aside, with why.© unifapi-agent, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/med-spa-marketing/treatment-demand-radar of unifapi-agent/agents.
Open the folder on GitHubat commit fb53247
Treatment Demand Radar next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Treatment Demand Radar this skillunifapi-agent/agents | 589 | — | ~2.1k | Automated safety check: Pass | MIT | |
| SEO Keyword ClusteringAgriciDaniel/claude-seo | 19k | 2 repos | ~3.3k | Automated safety check: Pass | MIT | |
| SEO Content Brief GeneratorAgriciDaniel/claude-seo | 19k | 2 repos | ~2.6k | Automated safety check: Pass | MIT | |
| Nemoclaw Maintainer Normalize Title TagsNVIDIA/NemoClaw | 23k | — | ~693 | Automated safety check: Pass | Apache-2.0 | |
| SEO Optimizerailabs-393/ai-labs-claude-skills | 455 | 1 repos | ~3.2k | Automated safety check: Pass | MIT | |
| AI Citability Scorerzubair-trabzada/geo-seo-claude | 11k | 2 repos | ~3.7k | Automated safety check: Notes | MIT |
AgriciDaniel/claude-seo
Clusters keywords by how much their search results overlap and designs a hub-and-spoke content plan with an internal link matrix and an interactive cluster map.
AgriciDaniel/claude-seo
Builds research-backed SEO content briefs with competitor scoring, per-section word counts and page-type templates, for new pages or improving existing ones.
NVIDIA/NemoClaw
Remove bracketed NemoClaw tags from GitHub issue and PR titles.
ailabs-393/ai-labs-claude-skills
This skill should be used when analyzing HTML/CSS websites for SEO optimization, fixing SEO issues, generating SEO reports, or implementing SEO best practices.
zubair-trabzada/geo-seo-claude
Scores how likely AI assistants are to quote passages from a web page and suggests rewrites that make those passages easier to extract.
AgriciDaniel/claude-seo
Captures baselines of a page's SEO-critical elements, compares later snapshots against them and flags regressions by severity, like version control for on-page SEO.
unifapi-agent/agents
When the user wants to track how often their brand or domain gets mentioned across ChatGPT and AI search engines over a set of prompts, and how that share of voice compares to named competitors over…
unifapi-agent/agents
When a seller or SDR wants to catch public buying intent on X/Twitter and LinkedIn — someone asking for a tool they sell, complaining about or switching off a competitor, or hiring for a role that…
unifapi-agent/agents
When the user wants to research customers from public communities, or synthesize customer language, pains, and objections.
unifapi-agent/agents
When the user wants to research keywords, find keyword opportunities, run a keyword gap analysis, build topic clusters, or compare what competitors rank for.
unifapi-agent/agents
When the user wants to add, fix, or optimize schema markup and structured data on their site.
unifapi-agent/agents
When the user wants to audit, review, or diagnose SEO issues on their site.
Works with
Categories
When a med spa or aesthetics clinic wants to know which treatments are in demand locally and what content or offers to prioritize. Treatment Demand Radar is an agent skill from unifapi-agent/agents. When a med spa or aesthetics clinic wants to know which treatments are in demand locally and what content or offers to prioritize.
Treatment Demand Radar fits situations like: tasks that involve On-page SEO.
Run `npx skills add unifapi-agent/agents --skill treatment-demand-radar -a claude-code`. Or copy the skill folder (skills/med-spa-marketing/treatment-demand-radar in unifapi-agent/agents) into .claude/skills/treatment-demand-radar in your project. Claude Code loads it when a task matches its description.
Run `npx skills add unifapi-agent/agents --skill treatment-demand-radar -a codex`. Or copy the skill folder (skills/med-spa-marketing/treatment-demand-radar in unifapi-agent/agents) into .agents/skills/treatment-demand-radar in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add unifapi-agent/agents --skill treatment-demand-radar -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/treatment-demand-radar, .gemini/skills/treatment-demand-radar, .github/skills/treatment-demand-radar and .opencode/skills/treatment-demand-radar in your project.
SKILL.md names no scripts, command-line tools or credentials: Treatment Demand Radar is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Treatment Demand Radar is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Treatment Demand Radar: SEO Keyword Clustering (AgriciDaniel/claude-seo, 19k stars), SEO Content Brief Generator (AgriciDaniel/claude-seo, 19k stars), Nemoclaw Maintainer Normalize Title Tags (NVIDIA/NemoClaw, 23k stars) and SEO Optimizer (ailabs-393/ai-labs-claude-skills, 455 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
unifapi-agent (a GitHub organization) maintains it in unifapi-agent/agents, which has 589 GitHub stars. The repository holds 47 skills in this directory. The repository was last updated on September 5, 2026.
Source: unifapi-agent/agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.