Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/techhorizonlabs/thl-opennpx agentmods add skills/techhorizonlabs/thl-open/geo-report-pdfWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/techhorizonlabs/thl-open/geo-report-pdf)<a href="https://agentmods.dev/skills/techhorizonlabs/thl-open/geo-report-pdf"><img src="https://agentmods.dev/badge/skills/techhorizonlabs/thl-open/geo-report-pdf/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/techhorizonlabs/thl-open/geo-report-pdf"><img src="https://agentmods.dev/badge/skills/techhorizonlabs/thl-open/geo-report-pdf.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00046 | $0.01721 |
| Opus 5 | $0.00023 | $0.00860 |
| Sonnet 5 | $0.00009 | $0.00344 |
| Haiku 4.5 | $0.00005 | $0.00172 |
Grade A, and why
geo-report-pdf scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
84% identical to geo-report-pdf — 18 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 167 lines — stays where its author put it; the contents beside it link to each section on GitHub.
GEO PDF Report Generator
Purpose
This skill generates a professional, visually polished PDF report from GEO audit data. The PDF includes score gauges, bar charts, platform readiness visualizations, color-coded tables, and a prioritized action plan — ready to deliver directly to clients.
Two PDF paths — pick one. For a branded, client-ready deliverable, prefer the TypeScript
tools/audit-report-kit(react-pdf, THL brand tokens, provenance tags,—for null scores, compile-checked JSON-LD alongside). The ReportLab script below is the lightweight Python path when you don't want a Node toolchain. They render the same audit JSON; don't run both.
Prerequisites
- ReportLab must be installed:
pip install reportlab - The Python PDF generation script lives at
../geo/scripts/generate_pdf_report.py(shared with thegeoumbrella skill). Run it from the repo root:python3 skills/geo/scripts/generate_pdf_report.py <data.json> <out.pdf>. - Run a full GEO audit first (using
geo-audit) to have data to include in the report
How to Generate a PDF Report
Step 1: Collect Audit Data
After running a full /geo-audit, collect all scores, findings, and recommendations into a JSON structure. The JSON data must follow this schema:
{
"url": "https://example.com",
"brand_name": "Example Company",
"date": "2026-02-18",
"geo_score": 65,
"scores": {
"ai_citability": 62,
"brand_authority": 78,
"content_eeat": 74,
"technical": 72,
"schema": 45,
"platform_optimization": 59
},
"platforms": {
"Google AI Overviews": 68,
"ChatGPT": 62,
"Perplexity": 55,
"Gemini": 60,
"Bing Copilot": 50
},
"executive_summary": "A 4-6 sentence summary of the audit findings...",
"findings": [
{
"severity": "critical",
"title": "Finding Title",
"description": "Description of the finding and its impact."
}
],
"quick_wins": [
"Action item 1",
"Action item 2"
],
"medium_term": [
"Action item 1",
"Action item 2"
],
"strategic": [
"Action item 1",
"Action item 2"
],
"crawler_access": {
"GPTBot": {"platform": "ChatGPT", "status": "Allowed", "recommendation": "Keep allowed"},
"ClaudeBot": {"platform": "Claude", "status": "Blocked", "recommendation": "Unblock for visibility"}
}
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 167 lines · 46 tokens per session scan A 399514da103e
geo-report-pdf is a skill published in the GitHub repository techhorizonlabs/thl-open (15 stars, last pushed 2d ago), licensed MIT. It adds 46 tokens to every session and 1,721 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 84% identical to geo-report-pdf, differing in 18 lines, and is treated as a copy.
Other skills, from other repositories
geo-report-pdf
Generate a professional PDF report from a GEO audit using pandoc + Chrome headless. Converts GEO-AUDIT-REPORT.md into a styled, client-ready PDF with a cover page, color-coded score tables, severity-tagged findings, and a 90-day roadmap.
geo-report-pdf
Generate a professional PDF report from a GEO audit using pandoc + Chrome headless. Converts GEO-AUDIT-REPORT.md into a styled, client-ready PDF with a cover page, color-coded score tables, severity-tagged findings, and a 90-day roadmap.
geo-report-pdf
Generate a professional PDF report from GEO audit data using ReportLab. Creates a polished, client-ready PDF with score gauges, bar charts, platform readiness visualizations, color-coded tables, and prioritized action plans.
geo-report
Generate a professional, client-facing GEO report combining all audit results into a single deliverable with scores, findings, and prioritized actions.
geo-proposal
Auto-generate a professional, client-ready GEO service proposal from audit data. Creates a full proposal in markdown and PDF including executive summary, findings, recommended service packages (Basic/Standard/Premium), pricing, timeline, and terms. Use when user says "proposal", "proposta", "offerta", "preventivo"…
geo-report-pdf
Generate a professional PDF report from GEO audit data using ReportLab. Creates a polished, client-ready PDF with score gauges, bar charts, platform readiness visualizations, color-coded tables, and prioritized action plans.