create-geo-charts
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.
Install / Use
npx skills add onvoyage-ai/gtm-engineer-skills --skill create-geo-chartsInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
MarketingSupported Platforms
Our assessment of create-geo-charts
create-geo-charts scores 89/100 on our quality scale, 192nd of 466 Marketing skills we index (top 42%).
Its SKILL.md is 17 KB long, well organised into 34 sections with 11 code examples: a thorough specification that gives an agent plenty to work with.
With 1,310 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 98/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
create-geo-charts compared with similar skills
All 4 of these similar skills score higher than create-geo-charts; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| create-geo-charts (this skill)by onvoyage-ai | 89 | 1.3k | 4mo ago | SKILL.md |
| LocalAIby mudler | 100 | 49.3k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 8d ago | SKILL.md |
| pptxby anthropics | 100 | 177.9k | 8d ago | SKILL.md |
| designby nextlevelbuilder | 100 | 130.2k | 9d ago | SKILL.md |
Frequently asked questions
- How do I install create-geo-charts?
- Run
npx skills add onvoyage-ai/gtm-engineer-skills --skill create-geo-charts. The install tabs above show the steps for each supported agent. - Which AI agents does create-geo-charts work with?
- It is written for Zed, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is create-geo-charts safe to use?
- It is MIT-licensed and scores 98/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is create-geo-charts still maintained?
- The repository was last updated about 4 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
Skill content
View source on GitHubname: create-geo-charts description: 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.
Create GEO/SEO Charts & Data Visualizations
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.
Workflow
Step 1: Understand the Data
Ask the user for:
- Data source — raw data, research findings, or a synthesis request
- Chart purpose — what point should the chart make?
- Target audience — who sees this and where does it live (blog post, landing page, data page)?
- Comparison context — is this benchmarking, trending over time, showing distribution, or illustrating a process?
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.
Step 2: Choose the Right Chart Type
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.
Step 3: Create the Chart
Generate the visualization using one of these approaches:
- Inline SVG (preferred) — text stays crawlable, scales perfectly, accessible
- Mermaid diagram — for flowcharts and decision trees in Markdown-based sites
- Chart.js / D3 config — for interactive charts, provide the config code
- Static image — export as WebP (complex visuals) or SVG (diagrams), compressed
SVG Rules
- Use
<text>elements for all labels — never bake text into paths - Add
role="img"andaria-labelledby="titleID descID"to root<svg> - Include
<title>and<desc>elements inside the SVG - Inline the SVG in HTML (not via
<img src>) so text remains crawlable - Minimum 3:1 contrast ratio for chart elements, 4.5:1 for text
- Never use color alone to convey meaning — add patterns, labels, or icons
Design System — Consulting-Grade Visual Standards
Follow 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.
Color Palette — Maximum 3 Colors Per Chart
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.
Typography — One Family, Size Creates Hierarchy
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 #94A3B8
Layout — Open, Borderless, Generous Whitespace
- No borders or boxes around charts. White space separates elements, not lines.
- No chart background fill — charts sit directly on the page's white background.
- Padding: 40-60px top/bottom, 20-40px sides within the SVG viewBox.
- Width: Charts should be 640-800px wide max (optimal reading width).
Gridlines — Remove Unless Essential
- When data labels are placed directly on bars/points: remove gridlines AND the value axis entirely.
- When data labels would clutter (>10 data points): use faint horizontal gridlines (#F1F5F9, 1px) and keep the value axis.
- Never use vertical gridlines on bar charts.
- Axis lines: 1px #E2E8F0 for the baseline only.
Labels — Direct, Not Legend
- Place values directly on or beside each bar/point. Eliminate the need for readers to look back and forth between legend and data.
- Legends only when unavoidable (overlapping lines, many-category pie/donut). When used: bottom-aligned, horizontal, compact.
- Category labels directly on the axis — left-aligned for horizontal bars, centered below for vertical bars.
Action Titles — State the Insight, Not the Topic
The 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"
Annotations — Sparse, Pointed
- At most 1-2 callout annotations per chart, pointing to the key insight.
- Use a thin line (1px #94A3B8) + small text label, not boxes or bubbles.
- If a chart needs many annotations to make sense, simplify the chart instead.
Source Citation — Always Present, Never Prominent
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.
What NOT to Do
- No 3D effects, gradients, shadows, or rounded bar caps
- No decorative icons or illustrations inside the chart area
- No bright multi-color palettes (rainbow charts destroy credibility)
- No pie charts with >5 segments (use horizontal bar instead)
- No radar/spider charts without a companion comparison table
- No dark/colored backgrounds behind chart areas
- No "Chart 1" or "Figure A" labels — always action titles
Step 4: Write the Text Layer (Critical for GEO)
Every chart MUST have these text companions — this is what AI actually cites:
4A: Takeaway Heading (H2 or H3)
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>
4B: Key Finding Summary (40-60 words)
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:
- No pronouns — name the subject explicitly
- At least 1 specific number
- Stands alone without any surrounding context
- Under 60 words
4C: Source & Methodology Line
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].
4D: "What This Means" Paragraph (2-3 sentences)
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].
Step 5: Create the Data Table
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:
- Use
<thead>,<tbody>,<th scope>,<caption>— full semantic markup - Values in the table must exactly match the chart
- Include units in column headers, not in each cell
- Offer a downloadable CSV:
<a href="data.csv" download>Download data (CSV)</a> - Table should be in the DOM (not lazy-loaded via JS) so crawlers see it
Step 6: Add Structured Data
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]"
}
}
Step 7: Image Optimization
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:
- Filename: Descriptive, hyphenated. Example:
ai-overview-citation-rate-by-rank-2025.svg - Alt text: Describe the conclusion, not the visual form. AI models and screen readers both need the takeaway, not a description of bars and axes.
- BAD:
"Bar chart showing data"or"Chart 1" - GOOD:
"GEO-optimized pages earn 41% more AI citations than unoptimized pages (KDD 2024, N=10K queries)"
- BAD:
- Keep alt under 125 characters when possible; use the data table as the extended description
- Compression: SVG → run through SVGO. WebP → quality 80. PNG → use as fallback only.
- Lazy loading: Add
loading="lazy"to chart images below the fold. Never lazy-load the first visible chart. - Add to image sitemap for faster discovery
- Use
<figure>+<figcaption>to wrap every chart —<figcaption>text is crawlable and citable
Step 8: Internal Linking
- Link the chart page FROM related blog posts and guides ("See our [benchmark data →]")
- Link FROM the chart page TO deeper analysis pages
- Use descriptive anchor text cont
Truncated for display — read the full file on GitHub.
Related Skills
LocalAI
49.3kLocalAI is the open-source AI engine. Run any model - LLMs, vision, voice, image, video - on any hardware. No GPU required.
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
pptx
177.9kUse this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an em…
design
130.2kComprehensive design skill: brand identity, design tokens, UI styling, logo generation (55 styles, Gemini, Atlas Cloud, or MuAPI AI), corporate identity program (50 deliverables, CIP mockups), HTML presentations (Chart.js), banner design (22 styles, social/ads/web/print), icon design (15 styles, SVG…
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
