Social SEO
social-media-skills/skills
A skill your agent uses to make social content discoverable through SEARCH across social platforms — the social-SEO / keyword-discovery skill.
Turn SE Ranking search-opportunity insights into a ready-to-publish social campaign in Planable.
$ npx skills add seranking/seo-skills --skill seo-gaps-to-social-campaign -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install seranking/seo-skills seo-gaps-to-social-campaign --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/seranking/seo-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/seo-gaps-to-social-campaign .claude/skills/seo-gaps-to-social-campaign && 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 "seo-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/seo-gaps-to-social-campaign into .claude/skills/seo-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-gaps-to-social-campaign", 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/seranking/seo-skills/tree/main/skills/seo-gaps-to-social-campaignType 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 seranking/seo-skills --skill seo-gaps-to-social-campaign -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install seranking/seo-skills seo-gaps-to-social-campaign --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/seranking/seo-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/seo-gaps-to-social-campaign .agents/skills/seo-gaps-to-social-campaign && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "seo-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/seo-gaps-to-social-campaign into .agents/skills/seo-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-gaps-to-social-campaign", 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 seranking/seo-skills --skill seo-gaps-to-social-campaign -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install seranking/seo-skills seo-gaps-to-social-campaign --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/seranking/seo-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/seo-gaps-to-social-campaign .cursor/skills/seo-gaps-to-social-campaign && 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 "seo-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/seo-gaps-to-social-campaign into .cursor/skills/seo-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-gaps-to-social-campaign", 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/seranking/seo-skills.git --path skills/seo-gaps-to-social-campaign--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 seranking/seo-skills --skill seo-gaps-to-social-campaign -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install seranking/seo-skills seo-gaps-to-social-campaign --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/seranking/seo-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/seo-gaps-to-social-campaign .gemini/skills/seo-gaps-to-social-campaign && 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 "seo-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/seo-gaps-to-social-campaign into .gemini/skills/seo-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-gaps-to-social-campaign", 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 seranking/seo-skills seo-gaps-to-social-campaignInstalls 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 seranking/seo-skills --skill seo-gaps-to-social-campaign -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/seranking/seo-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/seo-gaps-to-social-campaign .github/skills/seo-gaps-to-social-campaign && 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 "seo-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/seo-gaps-to-social-campaign into .github/skills/seo-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-gaps-to-social-campaign", 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 seranking/seo-skills --skill seo-gaps-to-social-campaign -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install seranking/seo-skills seo-gaps-to-social-campaign --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/seranking/seo-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/seo-gaps-to-social-campaign .opencode/skills/seo-gaps-to-social-campaign && 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 "seo-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/seo-gaps-to-social-campaign into .opencode/skills/seo-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "seo-gaps-to-social-campaign", 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.
seo-gaps-to-social-campaignTurn SE Ranking search-opportunity insights into a ready-to-publish social campaign in Planable.
SEO Gaps To Social Campaign is an agent skill from seranking/seo-skills. Turn SE Ranking search-opportunity insights into a ready-to-publish social campaign in Planable. Use this skill whenever the user wants to convert SEO research into social content — keyword gaps, competitor wins, ranking losses, question keywords, or new topic opportunities — and have the posts drafted and scheduled in Planable. Trigger on things like "what should we post based on our SEO data", "turn these keyword gaps into posts", "our competitor is ranking for X, make social content about it", "repurpose our…
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Marketing & SEO, covering Keyword research, Social media posts and Content repurposing. The repository describes itself as: Claude SEO Skills — production Claude Agent Skills for the SE Ranking MCP server. Content briefs, AI Search share of voice, audits, backlink gaps, keyword clusters, schema… The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fd6d140. 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.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
seranking.comhelp.planable.ioFrom 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.
SEO Gaps To Social Campaign loads about 2.7k tokens when it runs. Until then it costs about 196 tokens; SKILL.md has 1,450 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 seranking/seo-skills at commit fd6d140, republished under its MIT licence (© seranking). 1,450 words, ~2,729 tokens.
.claude/skills/seo-gaps-to-social-campaign/SKILL.md (or your agent's skills folder).Connect SE Ranking (where the demand and the gaps live) to Planable (where content gets made, approved, and published). The goal is a focused social campaign whose every post is grounded in real search demand — not a generic brainstorm.
us), the Planable workspace, and ideally 1–3 competitor domains. Number of posts defaults to 6 if unspecified.Before doing anything else, verify both MCPs are reachable:
DATA_getSubscription. If it fails or returns an auth error, stop immediately and tell the user:"The SE Ranking connector isn't responding — please reconnect it before we continue. Setup guide: https://seranking.com/api/integrations/mcp/"
list_workspaces. If it fails or returns an auth error, stop immediately and tell the user:"The Planable connector isn't responding — please reconnect it before we continue. Setup guide: https://help.planable.io/hc/en-us/articles/27538577098780-How-to-connect-Planable-MCP-to-your-AI-tools"
Only continue to the process steps below once both calls return a successful response.
Confirm: target domain, country, competitors (optional), the Planable workspace + which platforms, how many posts, and any campaign window. If the workspace is ambiguous, call list_workspaces and let the user pick — do not guess.
Work sequentially (respect the Data API limit of ~10 requests/second). Save raw results as you go.
DATA_getDomainOverviewWorldwide + DATA_getDomainKeywords — the target's current footprint and best existing keywords. The target's own strong/striking-distance keywords are often the most on-brand campaign fuel, so mine these first.DATA_getDomainCompetitors — confirm the real organic competitors (sort by shared keywords; take the top 3–5). Note: this call returns the full set and may be written to a file — read and parse it.DATA_getDomainKeywordsComparison — the core gap list: keywords competitors rank for that the target does not. Filter to keep it useful (e.g. informational/commercial intent, volume > a sensible floor, difficulty the domain can realistically win). Then judge relevance, not just the numbers — competitor gap lists are noisy and surface off-brand junk (glossary entries, follower-farming terms like "free followers", unrelated blog tangents). Discard anything that isn't a topic the target could credibly post about; a high-volume term the brand has no business addressing is not an opportunity. If a strict filter returns almost nothing, loosen one threshold or try another competitor rather than forcing a campaign out of junk.DATA_getRelatedKeywords + DATA_getKeywordQuestions — expansion terms and real questions people ask. Question keywords are gold for social hooks — they map directly to post openers. These endpoints often return only a handful of rows per seed, so query several seeds (3–5 core topics) and aggregate rather than trusting one; a seed returning 1–2 questions is normal, not a sign there's no demand.DATA_getSerpResults for the 2–4 strongest themes — read the intent and the SERP features so the social angle matches what searchers actually want.PROJECT_getPositionHistory (type avg_pos or visibility) to find terms that slipped. A recovering or slipping keyword is a strong "we have something to say" social trigger. If there is no project, skip this and rely on the gap analysis above.Group the keywords/questions into 3–6 content themes. For each theme, write a one-line rationale tied to the data (volume, gap size, intent, or a ranking move). Then translate each theme into concrete social angles — a question keyword becomes a hook, a comparison term becomes a carousel, a how-to becomes a tips post.
Surface the themes to the user before drafting, so they can steer.
Write platform-appropriate copy for each post (see length/format norms below). Vary hooks and formats across the batch — don't repeat one structure. Keep each post traceable to its source keyword/question so the user understands the "why".
| Platform | Length | Notes |
|---|---|---|
| ~3,000 chars | Professional, can be long-form, line breaks | |
| ~2,200 chars | Visual-first; hashtags at end or first comment; requires media | |
| shorter performs better | Conversational | |
| X/Twitter | 280 chars | Punchy |
| TikTok | ~2,200 chars | Casual, trend-aware |
Show all drafts in a preview before creating anything, unless the user said "just create them".
list_pages(workspaceId) to get page IDs for the requested platforms. Then:
create_grouped_post(workspaceId, pageIds[], text, scheduledAt?, labels?). Caveat: a grouped post shares one text across every page, so grouping platforms with very different limits (e.g. Facebook + X) forces the shared copy under the strictest one (X's 280 chars). When copy should differ in length or tone per platform, use separate create_post calls instead.create_post(workspaceId, pageId, text, scheduledAt?, labels?, firstComment?) once per page.scheduledAt. Keep posts as proposed drafts — don't set publishAtScheduledDate — so nothing auto-publishes; only set it true if the user explicitly wants auto-publishing. Scheduled times are treated as UTC, so confirm the timezone or state that times are UTC.list_labels (or create_label) and pass the label UUIDs. A campaign label (e.g. "SEO-driven") makes later reporting easy.Report how many drafts were created, in which workspace/pages, the proposed schedule, and any validationErrors (e.g. Instagram needs media — flag it). Offer to set up rank/AI tracking for the targeted terms, or to report on the campaign later (the seo-ai-social-report skill).
Keep these in mind when creating social content meant to target a specific keyword or close an AI-visibility gap:
campaign-brief.md to the outputs folder if the user wants something to circulate.mediaUrls, or note that media must be added in Planable before publishing.© seranking, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/seo-gaps-to-social-campaign of seranking/seo-skills.
Open the folder on GitHubat commit fd6d140
SEO Gaps To Social Campaign 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 |
|---|---|---|---|---|---|---|
| SEO Gaps To Social Campaign this skillseranking/seo-skills | 161 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Social SEOsocial-media-skills/skills | 134 | — | ~2k | Automated safety check: Pass | MIT | |
| Content Brief Authoringrampstackco/claude-skills | 945 | — | ~5.6k | Automated safety check: Pass | MIT | |
| SEO DataforseoAgriciDaniel/codex-seo | 799 | 2 repos | ~4.6k | Automated safety check: Pass | MIT | |
| Competitor GapRyze-AI-Adgent/open-seo-mcp-skills | 4.7k | — | ~560 | Automated safety check: Pass | MIT | |
| Geo DifficultyOpenClaudia/openclaudia-skills | 713 | — | ~694 | Automated safety check: Pass | MIT |
social-media-skills/skills
A skill your agent uses to make social content discoverable through SEARCH across social platforms — the social-SEO / keyword-discovery skill.
rampstackco/claude-skills
How to author a content brief that actually guides a writer (human or AI) to produce a piece that ranks, converts, or both.
AgriciDaniel/codex-seo
Live SEO data via DataForSEO MCP server. An agent skill from AgriciDaniel/codex-seo.
Ryze-AI-Adgent/open-seo-mcp-skills
Find keywords a competitor ranks for that the user's site doesn't — the content gap, prioritized by volume and winnability.
OpenClaudia/openclaudia-skills
Score how hard a keyword is to rank for in the AI-search era — page-level URL Rating of real competitors (not just domain DR), Ahrefs keyword difficulty, and whether a given site already ranks or is…
Ryze-AI-Adgent/open-seo-mcp-skills
Keyword research from a seed topic — ideas, real Google volume/CPC, intent, difficulty, clustered into a plan.
seranking/seo-skills
Direct access to Google's own SEO data via Search Console (Search Analytics, URL Inspection, Sitemaps), PageSpeed Insights v5, CrUX field data with 25-week history, Indexing API v3, GA4 organic…
seranking/seo-skills
SE Ranking API integration architect. An agent skill from seranking/seo-skills.
seranking/seo-skills
E-E-A-T + CITE quality audit for an EXISTING piece of content.
seranking/seo-skills
Generate a writer-ready SEO content brief from a target domain and topic.
seranking/seo-skills
Capture an SEO baseline snapshot for a domain or URL, then on later runs compare the current state and surface regressions.
seranking/seo-skills
Ad-hoc web scraping, site mapping, and full-site crawling via Firecrawl MCP.
Categories
Turn SE Ranking search-opportunity insights into a ready-to-publish social campaign in Planable. SEO Gaps To Social Campaign is an agent skill from seranking/seo-skills. Turn SE Ranking search-opportunity insights into a ready-to-publish social campaign in Planable.
SEO Gaps To Social Campaign fits situations like: the user wants to convert SEO research into social content — keyword gaps; competitor wins; question keywords; new topic opportunities — and have the posts drafted and scheduled in Planable.
Run `npx skills add seranking/seo-skills --skill seo-gaps-to-social-campaign -a claude-code`. Or copy the skill folder (skills/seo-gaps-to-social-campaign in seranking/seo-skills) into .claude/skills/seo-gaps-to-social-campaign in your project. Claude Code loads it when a task matches its description.
Run `npx skills add seranking/seo-skills --skill seo-gaps-to-social-campaign -a codex`. Or copy the skill folder (skills/seo-gaps-to-social-campaign in seranking/seo-skills) into .agents/skills/seo-gaps-to-social-campaign 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 seranking/seo-skills --skill seo-gaps-to-social-campaign -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-gaps-to-social-campaign, .gemini/skills/seo-gaps-to-social-campaign, .github/skills/seo-gaps-to-social-campaign and .opencode/skills/seo-gaps-to-social-campaign in your project.
SKILL.md names no scripts, command-line tools or credentials: SEO Gaps To Social Campaign is instructions for the agent only.
SKILL.md names 2 domains. As links in the text: seranking.com and help.planable.io. 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.
SEO Gaps To Social Campaign is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k 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 SEO Gaps To Social Campaign: Social SEO (social-media-skills/skills, 134 stars), Content Brief Authoring (rampstackco/claude-skills, 945 stars), SEO Dataforseo (AgriciDaniel/codex-seo, 799 stars) and Competitor Gap (Ryze-AI-Adgent/open-seo-mcp-skills, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
seranking (a GitHub organization) maintains it in seranking/seo-skills, which has 161 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on June 25, 2026.
Source: seranking/seo-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.