Geo Fundamentals
wasp-lang/wasp
Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).
Find the AI-search prompts and topics where a brand is invisible (or losing to competitors) in SE Ranking, then turn those gaps into a social campaign in Planable and set up before/after tracking.
$ npx skills add seranking/seo-skills --skill ai-search-gaps-to-social-campaign -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install seranking/seo-skills ai-search-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/ai-search-gaps-to-social-campaign .claude/skills/ai-search-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 "ai-search-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/ai-search-gaps-to-social-campaign into .claude/skills/ai-search-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-search-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/ai-search-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 ai-search-gaps-to-social-campaign -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install seranking/seo-skills ai-search-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/ai-search-gaps-to-social-campaign .agents/skills/ai-search-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 "ai-search-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/ai-search-gaps-to-social-campaign into .agents/skills/ai-search-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-search-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 ai-search-gaps-to-social-campaign -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install seranking/seo-skills ai-search-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/ai-search-gaps-to-social-campaign .cursor/skills/ai-search-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 "ai-search-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/ai-search-gaps-to-social-campaign into .cursor/skills/ai-search-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-search-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/ai-search-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 ai-search-gaps-to-social-campaign -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install seranking/seo-skills ai-search-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/ai-search-gaps-to-social-campaign .gemini/skills/ai-search-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 "ai-search-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/ai-search-gaps-to-social-campaign into .gemini/skills/ai-search-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-search-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 ai-search-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 ai-search-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/ai-search-gaps-to-social-campaign .github/skills/ai-search-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 "ai-search-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/ai-search-gaps-to-social-campaign into .github/skills/ai-search-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-search-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 ai-search-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 ai-search-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/ai-search-gaps-to-social-campaign .opencode/skills/ai-search-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 "ai-search-gaps-to-social-campaign" agent skill from https://github.com/seranking/seo-skills/tree/main/skills/ai-search-gaps-to-social-campaign into .opencode/skills/ai-search-gaps-to-social-campaign/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-search-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.
ai-search-gaps-to-social-campaignFind the AI-search prompts and topics where a brand is invisible (or losing to competitors) in SE Ranking, then turn those gaps into a social campaign in Planable and set up before/after tracking.
AI Search Gaps To Social Campaign is an agent skill from seranking/seo-skills. Find the AI-search prompts and topics where a brand is invisible (or losing to competitors) in SE Ranking, then turn those gaps into a social campaign in Planable and set up before/after tracking. Use this skill whenever the user wants to improve how their brand shows up in AI answers (ChatGPT, Perplexity, Gemini, Google AI Overview, AI Mode) through content, or says things like "what should we post to get cited by AI", "where are competitors winning in AI answers and we're not", "create content for the prompts…
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 AI search optimization. It works with OpenAI and Perplexity. 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.
AI Search Gaps To Social Campaign loads about 2.7k tokens when it runs. Until then it costs about 194 tokens; SKILL.md has 1,405 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,405 words, ~2,667 tokens.
.claude/skills/ai-search-gaps-to-social-campaign/SKILL.md (or your agent's skills folder).Use SE Ranking's AI Search data to see which prompts and narratives a brand owns, which competitors own, and which are wide open — then build social content in Planable that stakes a claim in the missing narratives, and instrument it so impact is measurable.
Scope note (read this). SE Ranking's AI Search MCP tools expose brand presence, link presence, share of voice, and the prompts behind them. They do not expose sentiment scoring. Do not report or imply sentiment from these tools. Social content is one lever on AI visibility — LLM citation is also driven by website content and authority, which is outside what these two MCPs publish.
us), competitor domains + brand names (up to 10), and optionally which engines to focus on (default: all of ai-overview, ai-mode, chatgpt, perplexity, gemini).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.
If the user gives a domain but not the exact brand string, call DATA_getAiSearchBrand(target, source) to get the name SE Ranking attributes to it. Do the same for each competitor. Confirm the Planable workspace and target platforms.
DATA_getAiSearchOverview(target, source, brand?) — capture brand_presence, link_presence, ai_opportunity_traffic, and average_position. Read previous before quoting change: if it's null, this is the first snapshot — report the current values as a baseline and do not present the change_percent of 100 as real growth.DATA_getAiSearchLeaderboard(primary{target,brand}, competitors[{target,brand}], source, engines[]) — share of voice for the brand vs competitors, per engine. Build a quick heatmap (rows = brands, columns = engines).DATA_getAiSearchOverview for each competitor and compare brand_presence / link_presence yourself.For the target and each competitor, pull the prompts behind the presence:
DATA_getAiSearchPromptsByBrand(brand, engine, source) — prompts mentioning the brand by name.DATA_getAiSearchPromptsByTarget(target, engine, source) — prompts where the domain is cited as a source.Compare: cluster prompts by topic, then mark each cluster as owned (target appears), contested (target + competitors), or missing (competitors appear, target doesn't). The missing and contested clusters are the campaign targets.
volume: 0 — they're conversational queries, not search keywords. That is expected and is not a signal of low value. Judge a cluster by topical relevance and by which brands the LLM cites, never by search volume.For each target cluster, write a hypothesis: "If we publish clear, citable content asserting [brand] in [narrative], we should start appearing for prompts like [examples]." Translate each into social angles that make the brand's position explicit and quotable — definitions, head-to-head comparisons, "X vs Y", myth-busting, FAQ-style answers. LLMs favour clear, structured, attributable claims, so write social copy that states the position plainly rather than burying it.
Present the clusters and hypotheses to the user before drafting.
Write platform-appropriate copy, then create drafts: create_post per page (per-platform copy) or create_grouped_post for synced content. Tag the batch with a label (via list_labels / create_label, e.g. "AI-visibility") so the campaign is easy to isolate when measuring.
Scheduling — ask before creating. Don't guess dates or leave everything undated by default. Ask how the user wants the batch dated and offer: spread evenly across a window (e.g. the next 7 days, one post per slot at a sensible hour), a fixed cadence/interval (e.g. every weekday at 10:00, laid out from a start date they give), manual dates per post, or no dates yet (undated drafts to place on the calendar later). Convert each chosen time to ISO 8601 and pass it as 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.
This is what makes the loop real:
PROJECT_createLlmEngine, add the target prompts with PROJECT_addPrompts(site_id, llm_id, prompts[]), then read movement later with PROJECT_getPromptsRankings and PROJECT_getLlmStatistics. Because this writes to the user's live project (and consumes plan limits), confirm before creating engines/prompts.DATA_getAiSearchOverview and DATA_getAiSearchLeaderboard after the campaign has run and diff against the baseline from step 2.get_post_metrics_summary(workspaceId, pageIds, startDate, endDate) on the labelled campaign posts shows the engagement the content earned.Keep these in mind when creating social content meant to target a specific keyword or close an AI-visibility gap:
DATA_ AI Search calls work without a project; the AI Result Tracker (prompts over time) requires an SE Ranking project.© 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/ai-search-gaps-to-social-campaign of seranking/seo-skills.
Open the folder on GitHubat commit fd6d140
AI Search 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 |
|---|---|---|---|---|---|---|
| AI Search Gaps To Social Campaign this skillseranking/seo-skills | 161 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Geo Fundamentalswasp-lang/wasp | 19k | 9 repos | ~861 | Automated safety check: Pass | MIT | |
| SEO GeoReScienceLab/opc-skills | 1.8k | 4 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| GEO-First SEO Audit Toolzubair-trabzada/geo-seo-claude | 11k | — | ~2.8k | Automated safety check: Notes | MIT | |
| Fire Your SEO Agencyleopard627/fire-your-seo-agency | 711 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Marketing OsYuzzyuk/marketing-os | 540 | — | ~2.5k | Automated safety check: Pass | MIT |
wasp-lang/wasp
Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).
ReScienceLab/opc-skills
SEO & GEO (Generative Engine Optimization) for websites. An agent skill from ReScienceLab/opc-skills.
zubair-trabzada/geo-seo-claude
Audits a website for AI search visibility across ChatGPT, Claude, Perplexity and Google AI Overviews while checking traditional SEO, schema and E-E-A-T content quality.
leopard627/fire-your-seo-agency
SEO·AEO·GEO·LLMO·NEO(네이버) 다섯 레인을 진단하고 직접 구현하며, 인용되는 콘텐츠를 계속 생산하는 서브 블로그·콘텐츠 운영 파이프라인까지 세팅하는 스킬.
Yuzzyuk/marketing-os
A complete marketing department in one skill. An agent skill from Yuzzyuk/marketing-os.
Ryze-AI-Adgent/open-seo-mcp-skills
Measure real AI-engine visibility — traffic from ChatGPT, Perplexity, Claude, Gemini and which pages they cite — from actual GA4 referral data, not prompt sampling.
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.
Works with
Categories
Find the AI-search prompts and topics where a brand is invisible (or losing to competitors) in SE Ranking, then turn those gaps into a social campaign in Planable and set up before/after tracking. AI Search Gaps To Social Campaign is an agent skill from seranking/seo-skills. Find the AI-search prompts and topics where a brand is invisible (or losing to competitors) in SE Ranking, then turn those gaps into a social campaign in Planable and set up before/after tracking.
AI Search Gaps To Social Campaign fits situations like: the user wants to improve how their brand shows up in AI answers (ChatGPT; google AI Overview; AI Mode) through content; says things like what should we post to get cited by AI.
Run `npx skills add seranking/seo-skills --skill ai-search-gaps-to-social-campaign -a claude-code`. Or copy the skill folder (skills/ai-search-gaps-to-social-campaign in seranking/seo-skills) into .claude/skills/ai-search-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 ai-search-gaps-to-social-campaign -a codex`. Or copy the skill folder (skills/ai-search-gaps-to-social-campaign in seranking/seo-skills) into .agents/skills/ai-search-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 ai-search-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/ai-search-gaps-to-social-campaign, .gemini/skills/ai-search-gaps-to-social-campaign, .github/skills/ai-search-gaps-to-social-campaign and .opencode/skills/ai-search-gaps-to-social-campaign in your project.
SKILL.md names no scripts, command-line tools or credentials: AI Search 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.
AI Search 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 AI Search Gaps To Social Campaign: Geo Fundamentals (wasp-lang/wasp, 19k stars), SEO Geo (ReScienceLab/opc-skills, 1.8k stars), GEO-First SEO Audit Tool (zubair-trabzada/geo-seo-claude, 11k stars) and Fire Your SEO Agency (leopard627/fire-your-seo-agency, 711 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.