Geo Fundamentals
wasp-lang/wasp
Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).
A skill your agent uses when the user asks to "optimize for AI citations"; improves citation readiness for ChatGPT, Perplexity, AI Overviews, Gemini, and Claude.
$ npx skills add aaron-he-zhu/aaron-marketing-skills --skill geo-content-optimizer -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills geo-content-optimizer --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/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/seo-geo/implement/geo-content-optimizer .claude/skills/geo-content-optimizer && 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 "geo-content-optimizer" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/seo-geo/implement/geo-content-optimizer into .claude/skills/geo-content-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo-content-optimizer", 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/aaron-he-zhu/aaron-marketing-skills/tree/main/seo-geo/implement/geo-content-optimizerType 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 aaron-he-zhu/aaron-marketing-skills --skill geo-content-optimizer -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills geo-content-optimizer --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/seo-geo/implement/geo-content-optimizer .agents/skills/geo-content-optimizer && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "geo-content-optimizer" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/seo-geo/implement/geo-content-optimizer into .agents/skills/geo-content-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo-content-optimizer", 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 aaron-he-zhu/aaron-marketing-skills --skill geo-content-optimizer -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills geo-content-optimizer --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/seo-geo/implement/geo-content-optimizer .cursor/skills/geo-content-optimizer && 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 "geo-content-optimizer" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/seo-geo/implement/geo-content-optimizer into .cursor/skills/geo-content-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo-content-optimizer", 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/aaron-he-zhu/aaron-marketing-skills.git --path seo-geo/implement/geo-content-optimizer--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 aaron-he-zhu/aaron-marketing-skills --skill geo-content-optimizer -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills geo-content-optimizer --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/seo-geo/implement/geo-content-optimizer .gemini/skills/geo-content-optimizer && 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 "geo-content-optimizer" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/seo-geo/implement/geo-content-optimizer into .gemini/skills/geo-content-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo-content-optimizer", 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 aaron-he-zhu/aaron-marketing-skills geo-content-optimizerInstalls 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 aaron-he-zhu/aaron-marketing-skills --skill geo-content-optimizer -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/seo-geo/implement/geo-content-optimizer .github/skills/geo-content-optimizer && 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 "geo-content-optimizer" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/seo-geo/implement/geo-content-optimizer into .github/skills/geo-content-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo-content-optimizer", 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 aaron-he-zhu/aaron-marketing-skills --skill geo-content-optimizer -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aaron-he-zhu/aaron-marketing-skills geo-content-optimizer --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aaron-he-zhu/aaron-marketing-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/seo-geo/implement/geo-content-optimizer .opencode/skills/geo-content-optimizer && 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 "geo-content-optimizer" agent skill from https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/seo-geo/implement/geo-content-optimizer into .opencode/skills/geo-content-optimizer/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "geo-content-optimizer", 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.
geo-content-optimizerA skill your agent uses when the user asks to "optimize for AI citations"; improves citation readiness for ChatGPT, Perplexity, AI Overviews, Gemini, and Claude.
Geo Content Optimizer is an agent skill from aaron-he-zhu/aaron-marketing-skills. Use when the user asks to "optimize for AI citations"; improves citation readiness for ChatGPT, Perplexity, AI Overviews, Gemini, and Claude. Not for structural on-page SEO — use on-page-seo-checker; not for net-new drafting — use content-writer. AI引用优化/GEO优化/AI搜索
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/ai-citation-patterns.md`, `references/ai-overview-recovery.md` and `references/geo-optimization-techniques.md`). Compatibility notes: Claude Code and compatible agent-skill hosts
It sits in Marketing & SEO, covering AI search optimization, On-page SEO and Web search. It works with OpenAI and Perplexity. The repository describes itself as: 120 marketing skills as an AI marketing staff — plugin, portable skills, or an 8-bot team across 7 disciplines (narrative, SEO/GEO, social, email, paid, influencer, launch) on… The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d5529cb. 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.
Shell commands in SKILL.md call:
python3From 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.
Claude Code and compatible agent-skill hosts
From compatibility in the SKILL.md frontmatter.
Geo Content Optimizer loads about 2.3k tokens when it runs, and up to ~11k if it reads all its reference files. Until then it costs about 72 tokens; SKILL.md has 861 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 aaron-he-zhu/aaron-marketing-skills at commit d5529cb, republished under its Apache-2.0 licence (© aaron-he-zhu). 861 words, ~2,307 tokens.
.claude/skills/geo-content-optimizer/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Optimizes content for AI-generated answers and citation surfaces such as ChatGPT, Perplexity, Gemini, Claude, and AI Overviews.
Improves structure, authority signals, factual density, quotable statements, source attribution, and overall GEO readiness.
Optimize this content for GEO/AI citations: [content or URL]
Make this article more likely to be cited by AI systems
Write content about [topic] optimized for both SEO and GEO
Audit this content for GEO readiness and suggest improvements
AI Overview is eating clicks on 12 head queries — build a recovery planSee AI Overview Recovery for the 4-phase playbook (measure → diagnose → rewrite → monitor) tailored to recovery scenarios (as opposed to generic GEO optimization).
Expected output: a ready-to-use asset or implementation-ready transformation plus a short handoff summary ready for memory/content/.
memory/entities/<slug>.md (per the entity-geo handoff schema) to populate display_name, description_short, ai_resolution_status and decide whether disambiguation boilerplate is needed. If the profile is missing or stale (>90 days), declare DONE_WITH_CONCERNS and recommend entity-registry as an open loop.memory/content/.memory/hot-cache.md and memory/open-loops.md; propose durable decisions as pending-decision items.Next Best Skill below when the asset is ready for review or deployment.Emit the standard shape from skill-contract.md §Handoff Summary Format.
Use ~~AI monitor and ~~SEO tool when connected; otherwise ask for target queries, content, engines, competitor examples, and known AI-citation gaps. See CONNECTORS.md.
Measuring whether GEO work paid off: the changes this skill makes (extractable, quotable, answer-shaped content) move citability — testable in minutes by handing a live-fetch engine the URL and asking the target query. That is a proxy. Whether an engine then cites you unprompted (surfacing) is gated by its crawl/index refresh — week-scale and confounded, not minute-level. Do not conflate the two or promise fast surfacing. The latency of each signal, and why outcome deltas need a control group, are defined in references/measurement-protocol.md.
Keyless AI-citation probe (Tavily): python3 "${CLAUDE_PLUGIN_ROOT}/scripts/connectors/tavily.py" search "<target query>" --answer --limit 10 runs that citability test against a real AI answer engine, no key needed — check whether the synthesized answer cites your URL/domain and where the page ranks among the scored sources. This is Measured for Tavily's own layer and an Estimated proxy for ChatGPT/Perplexity/Google AI Overviews (different indexes, different retrieval). Re-run after shipping changes for a minutes-scale citability read; unprompted surfacing stays week-scale per the paragraph above. See scripts/connectors/README.md.
When a user requests GEO optimization, run these five steps:
Label every metric Measured (tool/export), User-provided, or Estimated (model inference); never present an estimate as measured; if a required metric is unavailable, mark it N/A — do not invent it.
Reference: See Instructions Detail for the full CORE-EEAT GEO target tables, AI engine preferences, analysis templates, optimization report template, self-check matrix, and examples.
User: "Optimize this paragraph for GEO: 'Email marketing is a good way to reach customers. It's been around for a while and many businesses use it.'"
Output adds a clear definition, dated/source-backed facts, structured list, quotable statements, and a before/after GEO score. See the full pattern in Instructions Detail — Example.
Reference: See the GEO Readiness Checklist in GEO Optimization Techniques for the full checklist covering definitions, quotable content, authority, structure, and technical elements.
On user confirmation, save to memory/content/YYYY-MM-DD-<topic>.md — see Skill Contract §Save Results Template.
Termination note: keep a visited-set this session; if the recommended skill was already invoked, stop and report the chain complete rather than re-running it. Honor a max handoff depth of 3 to avoid loops (per skill-contract.md §Termination rules).
© aaron-he-zhu, Apache-2.0. 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 6 other files (references) in seo-geo/implement/geo-content-optimizer of aaron-he-zhu/aaron-marketing-skills.
Open the folder on GitHubat commit d5529cb
Geo Content Optimizer 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 |
|---|---|---|---|---|---|---|
| Geo Content Optimizer this skillaaron-he-zhu/aaron-marketing-skills | 2.9k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Geo Fundamentalswasp-lang/wasp | 19k | 9 repos | ~861 | Automated safety check: Pass | MIT | |
| Marketing OsYuzzyuk/marketing-os | 540 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Geoliangdabiao/GEO-Content-Optimizer-Skill | 205 | 1 repos | ~2.3k | Automated safety check: Notes | MIT | |
| Geo Optimizerliangdabiao/GEO-Content-Optimizer-Skill | 205 | — | ~1.1k | Automated safety check: Pass | None | |
| GEO Platform Optimizerzubair-trabzada/geo-seo-claude | 11k | 2 repos | ~4.7k | Automated safety check: Notes | MIT |
wasp-lang/wasp
Generative Engine Optimization for AI search engines (ChatGPT, Claude, Perplexity).
Yuzzyuk/marketing-os
A complete marketing department in one skill. An agent skill from Yuzzyuk/marketing-os.
liangdabiao/GEO-Content-Optimizer-Skill
完整的 GEO(生成式引擎优化)服务流水线:给一个产品官网 URL 和介绍材料, 做站点诊断与 AI 答案采样、生成带验收标准的执行工单、产出可直接部署的资产 (llms.txt / JSON-LD / 定义块 / FAQ / 内容大纲与初稿)、自动验收工单是否闭环、 并打包成可直接发给客户的交付物。可按周期复跑,做长期 GEO 运营与月报。
liangdabiao/GEO-Content-Optimizer-Skill
GEO (Generative Engine Optimization) 全流程优化工具。帮助品牌内容被 ChatGPT、Perplexity、Gemini 等 AI 搜索引擎引用。
zubair-trabzada/geo-seo-claude
Audits a site for AI search visibility one platform at a time, scoring Google AI Overviews, ChatGPT, Perplexity, Gemini and Bing Copilot and listing gaps to fix.
shadcn-labs/agentcn
How to present the deterministic AI-SEO audit returned by auditpage.
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when auditing a paid ad account for incremental contribution, wasted spend, or measurement integrity before scaling; runs a typed 20-item ROAS profile with verified vetoes…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "write ad copy", "generate RSA headlines", or "build ad creative at volume"; produces ad units — RSA headlines/descriptions, hooks, and an angle matrix…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "design an A/B test", "set up a creative/landing test", "run an incrementality test", or "is this result statistically and practically material?"…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "pick a bid strategy", "set a tCPA/tROAS target", or "plan the learning-phase entry"; produces a bid-strategy choice (tCPA / tROAS / max-conversions /…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks to "QA my conversion tracking before launch", "check my UTMs / pixel / event firing", "set up a tracking pre-flight", or "set the dedup rule so Meta and…
aaron-he-zhu/aaron-marketing-skills
A skill your agent uses when the user asks "what did we pay this creator last time" or to "update the creator roster"; curates creator identity, rate, rights, exclusivity, compliance-event, and…
Works with
Categories
A skill your agent uses when the user asks to "optimize for AI citations"; improves citation readiness for ChatGPT, Perplexity, AI Overviews, Gemini, and Claude. Geo Content Optimizer is an agent skill from aaron-he-zhu/aaron-marketing-skills. Use when the user asks to "optimize for AI citations"; improves citation readiness for ChatGPT, Perplexity, AI Overviews, Gemini, and Claude.
Geo Content Optimizer fits situations like: the user asks to optimize for AI citations; improves citation readiness for ChatGPT.
Run `npx skills add aaron-he-zhu/aaron-marketing-skills --skill geo-content-optimizer -a claude-code`. Or copy the skill folder (seo-geo/implement/geo-content-optimizer in aaron-he-zhu/aaron-marketing-skills) into .claude/skills/geo-content-optimizer in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aaron-he-zhu/aaron-marketing-skills --skill geo-content-optimizer -a codex`. Or copy the skill folder (seo-geo/implement/geo-content-optimizer in aaron-he-zhu/aaron-marketing-skills) into .agents/skills/geo-content-optimizer 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 aaron-he-zhu/aaron-marketing-skills --skill geo-content-optimizer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/geo-content-optimizer, .gemini/skills/geo-content-optimizer, .github/skills/geo-content-optimizer and .opencode/skills/geo-content-optimizer in your project.
Going by SKILL.md and its folder, Geo Content Optimizer needs the command-line tools its instructions call (python3). Our summary lists: Python 3. Compatibility (from SKILL.md): Claude Code and compatible agent-skill hosts.
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.
Geo Content Optimizer is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 8.2k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Geo Content Optimizer: Geo Fundamentals (wasp-lang/wasp, 19k stars), Marketing Os (Yuzzyuk/marketing-os, 540 stars), Geo (liangdabiao/GEO-Content-Optimizer-Skill, 205 stars) and Geo Optimizer (liangdabiao/GEO-Content-Optimizer-Skill, 205 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aaron-he-zhu (a GitHub user) maintains it in aaron-he-zhu/aaron-marketing-skills, which has 2,898 GitHub stars. The repository holds 119 skills in this directory. The repository was last updated on October 11, 2026.
Source: aaron-he-zhu/aaron-marketing-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.