agent-readiness-scan
Use when a client audit, GEO/AI-visibility snapshot, or remediation re-scan needs the Cloudflare agent-readiness score from…
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.
Claude Code
$ npx -y skills add techhorizonlabs/thl-open --skill geo-report-pdf --agent claude-code
Codex
$ npx skills add techhorizonlabs/thl-open --skill geo-report-pdf -a codex -y
Cursor
$ npx skills add techhorizonlabs/thl-open --skill geo-report-pdf -a cursor -y
Gemini CLI
$ npx skills add techhorizonlabs/thl-open --skill geo-report-pdf -a gemini-cli -y
GitHub Copilot
$ npx skills add techhorizonlabs/thl-open --skill geo-report-pdf -a github-copilot -y
OpenCode
$ npx skills add techhorizonlabs/thl-open --skill geo-report-pdf -a opencode -y
Windsurf
$ npx skills add techhorizonlabs/thl-open --skill geo-report-pdf -a windsurf -y
name: geo-report-pdf description: 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. version: 1.0.0 author: geo-seo-claude tags: [geo, pdf, report, client-deliverable, professional] allowed-tools: Read, Grep, Glob, Bash, WebFetch, Write
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`](../../tools/audit-report-kit) (react-pdf, THL brand tokens, provenance tags, `n/a` 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.
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"}
}
}Write the collected audit data to a temporary JSON file:
# Write audit data to temp file
cat > /tmp/geo-audit-data.json << 'EOF'
{ ... audit JSON data ... }
EOFRun the PDF generation script:
python3 skills/geo/scripts/generate_pdf_report.py /tmp/geo-audit-data.json GEO-REPORT-[brand].pdf
The script will produce a professional PDF report with:
After generation, tell the user where the PDF was saved and its file size.
When the user runs this skill, follow this exact sequence:
1. **Check for existing audit data.** Look for recent GEO audit reports in the current directory:
2. **If no audit data exists:** tell the user to run `/geo-audit <url>` first, then come back for the PDF.
3. **If audit data exists:** parse the markdown report to extract:
4. **Build the JSON.** Structure all data into the JSON schema shown above.
5. **Write JSON to temp file.** Save to `/tmp/geo-audit-data.json`
6. **Run the PDF generator**:
python3 skills/geo/scripts/generate_pdf_report.py /tmp/geo-audit-data.json "GEO-REPORT-[brand_name].pdf"
7. **Report success.** Tell the user the PDF was generated, its location, and file size.
If the user runs `/geo-report-pdf https://example.com` with a URL: 1. First run a full audit: invoke the `geo-audit` skill for that URL 2. Then collect all the audit data from the generated report files 3. Generate the PDF as described above
When extracting data from existing GEO markdown reports, look for these patterns:
Turn a client website into an AI-readiness audit, a ranked fix plan and a branded report. Open agent skills and reporting tools from Tech Horizon Labs. Start in Claude Code, or use a compatible agent that reads SKILL.md files.
Use when a client audit, GEO/AI-visibility snapshot, or remediation re-scan needs the Cloudflare agent-readiness score from…
Measure whether AI engines actually recommend a business when buyers ask. Runs the free live scan at areyoufoundbyai.com (no…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…
Brand mention and authority scanner for AI visibility. Analyzes brand presence across platforms that AI models rely on for entity…
AI citability scoring and optimization. Analyzes web page content to determine how likely AI systems (ChatGPT, Claude,…
Monthly delta tracking and progress reporting for GEO clients. Compares two GEO audits (baseline vs. current), calculates score…
When the user wants to plan, design, or implement an A/B test or experiment, or build a growth experimentation program. Also use…
Comprehensive SEO analysis for any website or business type. Full site audits, single-page analysis, technical SEO (crawlability,…
Turn the current project website into a short, polished, shareable launch video using Hyperframes. Use when someone says "/brag",…
Full website GEO+SEO audit with parallel subagent delegation. Orchestrates a comprehensive Generative Engine Optimization audit…