SEO Geo
eunomia-bpf/eunomia.dev
Technical-only page-level and site-level SEO/GEO checklist for eunomia.dev content.
Creates data visualizations (charts, graphs, tables) optimized for AI engine parsing and citation.
$ npx skills add onvoyage-ai/gtm-engineer-skills --skill create-geo-charts -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install onvoyage-ai/gtm-engineer-skills create-geo-charts --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/onvoyage-ai/gtm-engineer-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/create-geo-charts .claude/skills/create-geo-charts && 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 "create-geo-charts" agent skill from https://github.com/onvoyage-ai/gtm-engineer-skills/tree/main/create-geo-charts into .claude/skills/create-geo-charts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-geo-charts", 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/onvoyage-ai/gtm-engineer-skills/tree/main/create-geo-chartsType 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 onvoyage-ai/gtm-engineer-skills --skill create-geo-charts -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install onvoyage-ai/gtm-engineer-skills create-geo-charts --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/onvoyage-ai/gtm-engineer-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/create-geo-charts .agents/skills/create-geo-charts && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "create-geo-charts" agent skill from https://github.com/onvoyage-ai/gtm-engineer-skills/tree/main/create-geo-charts into .agents/skills/create-geo-charts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-geo-charts", 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 onvoyage-ai/gtm-engineer-skills --skill create-geo-charts -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install onvoyage-ai/gtm-engineer-skills create-geo-charts --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/onvoyage-ai/gtm-engineer-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/create-geo-charts .cursor/skills/create-geo-charts && 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 "create-geo-charts" agent skill from https://github.com/onvoyage-ai/gtm-engineer-skills/tree/main/create-geo-charts into .cursor/skills/create-geo-charts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-geo-charts", 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/onvoyage-ai/gtm-engineer-skills.git --path create-geo-charts--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 onvoyage-ai/gtm-engineer-skills --skill create-geo-charts -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install onvoyage-ai/gtm-engineer-skills create-geo-charts --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/onvoyage-ai/gtm-engineer-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/create-geo-charts .gemini/skills/create-geo-charts && 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 "create-geo-charts" agent skill from https://github.com/onvoyage-ai/gtm-engineer-skills/tree/main/create-geo-charts into .gemini/skills/create-geo-charts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-geo-charts", 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 onvoyage-ai/gtm-engineer-skills create-geo-chartsInstalls 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 onvoyage-ai/gtm-engineer-skills --skill create-geo-charts -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/onvoyage-ai/gtm-engineer-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/create-geo-charts .github/skills/create-geo-charts && 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 "create-geo-charts" agent skill from https://github.com/onvoyage-ai/gtm-engineer-skills/tree/main/create-geo-charts into .github/skills/create-geo-charts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-geo-charts", 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 onvoyage-ai/gtm-engineer-skills --skill create-geo-charts -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install onvoyage-ai/gtm-engineer-skills create-geo-charts --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/onvoyage-ai/gtm-engineer-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/create-geo-charts .opencode/skills/create-geo-charts && 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 "create-geo-charts" agent skill from https://github.com/onvoyage-ai/gtm-engineer-skills/tree/main/create-geo-charts into .opencode/skills/create-geo-charts/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "create-geo-charts", 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.
create-geo-chartsCreates data visualizations (charts, graphs, tables) optimized for AI engine parsing and citation.
Create Geo Charts is an agent skill from onvoyage-ai/gtm-engineer-skills. Creates data visualizations (charts, graphs, tables) optimized for AI engine parsing and citation. Produces inline SVG/HTML with text summaries, data tables, and JSON-LD so AI engines can quote the data.
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files (for example `README.md`).
It sits in Marketing & SEO, covering Data visualization, AI search optimization and Schema markup. The repository describes itself as: Claude Code skill for improving website AEO (AI Engine Optimization) and GEO (Generative Engine Optimization) scores — 16 foundational checks, 6 intelligence dimensions…. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 3777930. 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 html and json).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
schema.orgcreativecommons.orgFrom 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.
Create Geo Charts loads about 4.3k tokens when it runs. Until then it costs about 55 tokens; SKILL.md has 1,912 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 onvoyage-ai/gtm-engineer-skills at commit 3777930, republished under its MIT licence (© onvoyage-ai). 1,912 words, ~4,321 tokens.
.claude/skills/create-geo-charts/SKILL.md (or your agent's skills folder). This skill also uses 17 other files; get the full folder from GitHub.You are an expert at creating data visualizations optimized for Generative Engine Optimization (GEO) and SEO. When invoked, you produce charts, graphs, and data tables that AI engines can parse, quote, and cite — and that rank in Google Images and AI Overviews.
Core insight: AI engines cite text, not pixels. Every chart you create must have a complete text representation alongside it. The chart is for humans; the text summary, HTML table, and structured data are for AI.
Ask the user for:
If the user provides raw data, use it directly. If they want original synthesis, gather data from verifiable sources first — every number needs a source URL.
Match chart type to data and GEO intent:
| Data Pattern | Chart Type | GEO Value |
|---|---|---|
| X vs Y vs Z performance | Comparison bar chart | Very High — answers "which is better" queries |
| Rankings or scores | Horizontal bar chart | Very High — AI extracts ranked lists |
| Changes over time | Line chart | High — answers "how has X changed" queries |
| Part-of-whole | Donut/pie chart (max 5 segments) | Medium — keep segments few and labeled |
| Multi-criteria evaluation | Radar/spider chart | Medium — pair with a comparison table |
| Process or decision | Flowchart / decision tree | High — answers "how does X work" queries |
| Feature comparison | Matrix/checklist table | Very High — direct extraction by AI |
Prefer comparison charts, benchmark tables, and step-by-step flow diagrams — these are the most-cited visual formats by AI engines.
Generate the visualization using one of these approaches:
<text> elements for all labels — never bake text into pathsrole="img" and aria-labelledby="titleID descID" to root <svg><title> and <desc> elements inside the SVG<img src>) so text remains crawlableFollow the design principles used by McKinsey, BCG, Deloitte Insights, and Pew Research Center. These firms set the gold standard for credible data visualization.
Core principle: Restrained elegance. Every element earns its place or gets removed.
Use one accent color for the key data point. Everything else is neutral gray. Color creates hierarchy, not decoration.
Primary accent: #2563EB (blue — key insight, #1 data point)
Secondary data: #64748B (slate gray — supporting data)
Tertiary data: #CBD5E1 (light gray — background/context data)
Negative/risk: #DC2626 (red — only for negative values or warnings)
Positive/growth: #059669 (green — only for positive change indicators)
Background: #FFFFFF (white — never use colored chart backgrounds)
Gridlines: #F1F5F9 (near-invisible — or remove entirely)Override this palette when the user has brand colors. The accent color should be the brand's primary color; all other bars/lines stay gray.
Font: system-ui, -apple-system, 'Segoe UI', sans-serif
(or the site's body font — never mix font families)
Action title: 18-20px, font-weight 700, color #0F172A
Subtitle/lead: 14-15px, font-weight 400, color #475569
Axis labels: 11-12px, font-weight 400, color #64748B
Data labels: 12-13px, font-weight 600, color #0F172A (on/near bars)
Source citation: 11px, font-weight 400, color #94A3B8The chart title is a complete sentence stating what the reader should take away. This is the #1 pattern from McKinsey and BCG.
BAD: "Revenue by Region"
BAD: "GEO Strategy Comparison"
GOOD: "Authoritative Quotations Lift AI Visibility by 41%"
GOOD: "Content Updated Within 3 Months Earns 54% More Citations"Small text below the chart, separated by a thin rule or whitespace:
Source: [Organization], [Year]. N=[sample size]. [1-line methodology].This is non-negotiable — it's what separates credible research charts from blog graphics.
Every chart MUST have these text companions — this is what AI actually cites:
Put the key finding in the heading. AI engines use headings for passage retrieval.
BAD: <h3>Chart 1: Performance Results</h3>
GOOD: <h3>AI Overviews Cite Top-10 Pages 78% of the Time</h3>Place immediately above the chart. This is the citable unit.
Key finding: [Subject] [verb] [object] by [specific number]. Based on [methodology]
of [sample size] [items] between [date range], [subject] outperformed [comparison]
across [N] of [M] tested criteria. [One sentence of practical implication].Rules:
Place directly below the chart in small text.
Source: [Organization Name], [Year]. [N] [items] analyzed from [date] to [date].
Methodology: [1-sentence description of how data was collected/analyzed].Place after the chart. AI models quote interpretations, not just data.
What this means: [Practical interpretation]. For [audience], this suggests [action].
[One comparison or context point with a named source].Every chart MUST have a companion HTML data table. AI engines parse tables directly.
<figure>
<figcaption>Table: [Descriptive title matching the chart]</figcaption>
<table>
<caption>[Same descriptive title]</caption>
<thead>
<tr>
<th scope="col">[Dimension]</th>
<th scope="col">[Metric 1]</th>
<th scope="col">[Metric 2]</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">[Row label]</th>
<td>[Value]</td>
<td>[Value]</td>
</tr>
</tbody>
</table>
</figure>Rules:
<thead>, <tbody>, <th scope>, <caption> — full semantic markup<a href="data.csv" download>Download data (CSV)</a>Add JSON-LD for the dataset:
{
"@context": "https://schema.org",
"@type": "Dataset",
"name": "[Chart title — the takeaway heading]",
"description": "[Key finding summary from Step 4B]",
"temporalCoverage": "[Start date]/[End date]",
"variableMeasured": [
{
"@type": "PropertyValue",
"name": "[Metric name]",
"unitText": "[Unit]"
}
],
"creator": {
"@type": "Organization",
"name": "[Brand/Author name]"
},
"datePublished": "[ISO date]",
"license": "https://creativecommons.org/licenses/by/4.0/",
"image": {
"@type": "ImageObject",
"contentUrl": "[Chart image URL or inline reference]",
"caption": "[Key finding summary]",
"encodingFormat": "image/svg+xml"
},
"distribution": {
"@type": "DataDownload",
"encodingFormat": "text/csv",
"contentUrl": "[CSV download URL]"
}
}Critical GEO principle: AI engines cite text, not pixels. The chart image is for human readers. The text summary, HTML data table, and JSON-LD are what AI actually extracts and cites. A chart without its text layer is invisible to LLMs.
Don't add visuals to hit a target count. Add a chart only when it carries data, explains a process, or proves a claim. Decorative graphics add zero GEO value.
For the chart image file itself:
ai-overview-citation-rate-by-rank-2025.svg"Bar chart showing data" or "Chart 1""GEO-optimized pages earn 41% more AI citations than unoptimized pages (KDD 2024, N=10K queries)"loading="lazy" to chart images below the fold. Never lazy-load the first visible chart.<figure> + <figcaption> to wrap every chart — <figcaption> text is crawlable and citableAfter generating any chart, you MUST open it in a browser and visually inspect it before delivering to the user. SVG coordinate math is error-prone — elements frequently overflow, overlap, or clip.
open command)| Issue | What to Look For |
|---|---|
| Text overflow | Labels or callout boxes extending past the SVG viewBox edge — especially right-side text, long annotations, and regional/legend callouts |
| Text clipping | Data labels cut off at top of chart (y too small) or bottom (below baseline) |
| Overlap | Bar labels overlapping each other, especially in horizontal bars with many rows |
| Misalignment | Data labels not centered over their bars/points |
| Axis mismatch | Data values that don't align with the axis scale visually |
| Readability | Text too small at rendered size, low contrast against background |
<tspan> lines or shorten itFix them immediately — adjust coordinates, shorten text, break lines, or expand the viewBox. Then re-open and verify the fix. Do NOT deliver a chart you haven't visually confirmed.
This skill is designed to work alongside the write-seo-geo-content and geo-content-research skills.
The blog writer may request charts for Part 3 (problem statistics) or Part 4 (solution comparison). When creating charts for a blog post:
<h3> for the chart's action title (not <h2>, which is reserved for article sections)The GEO skill may request charts for Phase 4 Data & Evidence Pages. When creating charts for these pages:
<h2> for the chart's action title — these are standalone data pagesFor every chart, deliver all of these:
1. TAKEAWAY HEADING
<h2>AI Overviews Cite Top-10 Pages 78% of the Time</h2>
2. KEY FINDING SUMMARY (40-60 words, above chart)
[Text block]
3. CHART
[SVG code / Mermaid code / Chart config]
4. SOURCE & METHODOLOGY (below chart)
Source: [Org], [Year]. N=[sample]. Methodology: [1 sentence].
5. "WHAT THIS MEANS" (2-3 sentences, after chart)
[Interpretation paragraph]
6. DATA TABLE (HTML)
[Full semantic <table>]
7. DOWNLOADABLE DATA
[CSV content or link]
8. STRUCTURED DATA (JSON-LD)
[Dataset schema]
9. IMAGE METADATA
- Filename: [descriptive-name.svg]
- Alt text: [conclusion-focused description]
- Figcaption: [visible caption text]Before delivering any chart, verify:
thead, th scope, caption)variableMeasured and temporalCoverage<figure> + <figcaption> wrapping<text> elements (not baked text), role="img", aria-labelledby© onvoyage-ai, 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 17 other files in create-geo-charts of onvoyage-ai/gtm-engineer-skills.
Open the folder on GitHubat commit 3777930
Create Geo Charts 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 |
|---|---|---|---|---|---|---|
| Create Geo Charts this skillonvoyage-ai/gtm-engineer-skills | 1.3k | — | ~4.3k | Automated safety check: Pass | MIT | |
| SEO Geoeunomia-bpf/eunomia.dev | 236 | — | ~2.1k | Automated safety check: Pass | MIT | |
| SEO ProfoundAgriciDaniel/claude-seo | 19k | 1 repos | ~441 | Automated safety check: Pass | MIT | |
| Geo Measureyaojingang/GEOHub | 165 | — | ~348 | Automated safety check: Pass | AGPL-3.0 | |
| AI Search Visibility Auditdavepoon/buildwithclaude | 3.6k | — | ~2.4k | Automated safety check: Pass | MIT | |
| SEO GeoReScienceLab/opc-skills | 1.8k | 4 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 |
eunomia-bpf/eunomia.dev
Technical-only page-level and site-level SEO/GEO checklist for eunomia.dev content.
AgriciDaniel/claude-seo
Profound LLM citation tracker (extension). An agent skill from AgriciDaniel/claude-seo.
yaojingang/GEOHub
Measure GEO visibility from an approved, file-backed engine observation bundle.
davepoon/buildwithclaude
Audit whether a website can be found, crawled, and cited by AI answer engines such as ChatGPT Search, Perplexity, Google AI Overviews, and Microsoft Copilot.
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.
onvoyage-ai/gtm-engineer-skills
Audits a live website for AI-engine discoverability (AEO/GEO).
onvoyage-ai/gtm-engineer-skills
Researches a company from its URL and produces a Brand DNA file covering positioning, audience, competitors, voice, and messaging.
onvoyage-ai/gtm-engineer-skills
Finds high-value SEO and GEO keywords using web search, AI analysis, and optionally paid tools like Ahrefs or Semrush.
onvoyage-ai/gtm-engineer-skills
Verifies truthfulness, accuracy, and link integrity of content before publishing.
onvoyage-ai/gtm-engineer-skills
Finds free backlink and brand mention opportunities across Hacker News, Quora, GitHub, directories, and niche communities.
onvoyage-ai/gtm-engineer-skills
Takes existing content markdown files and builds production-final resource center pages on client websites using their existing tech stack and design system.
Categories
Creates data visualizations (charts, graphs, tables) optimized for AI engine parsing and citation. Create Geo Charts is an agent skill from onvoyage-ai/gtm-engineer-skills. Creates data visualizations (charts, graphs, tables) optimized for AI engine parsing and citation.
Create Geo Charts fits situations like: tasks that involve Data visualization; tasks that involve AI search optimization; tasks that involve Schema markup.
Run `npx skills add onvoyage-ai/gtm-engineer-skills --skill create-geo-charts -a claude-code`. Or copy the skill folder (create-geo-charts in onvoyage-ai/gtm-engineer-skills) into .claude/skills/create-geo-charts in your project. Claude Code loads it when a task matches its description.
Run `npx skills add onvoyage-ai/gtm-engineer-skills --skill create-geo-charts -a codex`. Or copy the skill folder (create-geo-charts in onvoyage-ai/gtm-engineer-skills) into .agents/skills/create-geo-charts 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 onvoyage-ai/gtm-engineer-skills --skill create-geo-charts -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/create-geo-charts, .gemini/skills/create-geo-charts, .github/skills/create-geo-charts and .opencode/skills/create-geo-charts in your project.
SKILL.md names no scripts, command-line tools or credentials: Create Geo Charts is instructions for the agent only.
SKILL.md names 2 domains. In commands or code: schema.org and creativecommons.org; the agent is likely to contact these when it follows the instructions. 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.
Create Geo Charts is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k 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 Create Geo Charts: SEO Geo (eunomia-bpf/eunomia.dev, 236 stars), SEO Profound (AgriciDaniel/claude-seo, 19k stars), Geo Measure (yaojingang/GEOHub, 165 stars) and AI Search Visibility Audit (davepoon/buildwithclaude, 3.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
onvoyage-ai (a GitHub organization) maintains it in onvoyage-ai/gtm-engineer-skills, which has 1,320 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on June 7, 2026.
Source: onvoyage-ai/gtm-engineer-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.