geo-report-pdf

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

GEO PDF Report Generator

GEO PDF报告生成器

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.
本技能可从GEO审计数据生成专业、视觉精美的PDF报告。该PDF包含评分仪表盘、条形图、平台就绪度可视化、颜色编码表格以及优先级行动计划——可直接交付给客户。

Prerequisites

前置条件

  • ReportLab must be installed:
    pip install reportlab
  • The PDF generation script is located at:
    ~/.claude/skills/geo/scripts/generate_pdf_report.py
  • Run a full GEO audit first (using
    /geo-audit
    ) to have data to include in the report
  • 必须安装ReportLab
    pip install reportlab
  • PDF生成脚本位于:
    ~/.claude/skills/geo/scripts/generate_pdf_report.py
  • 需先运行完整的GEO审计(使用
    /geo-audit
    命令),以获取可纳入报告的数据

How to Generate a PDF Report

如何生成PDF报告

Step 1: Collect Audit Data

步骤1:收集审计数据

After running a full
/geo-audit
, collect all scores, findings, and recommendations into a JSON structure. The JSON data must follow this schema:
json
{
    "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"}
    }
}
运行完整的
/geo-audit
命令后,将所有评分、发现和建议整理为JSON结构。JSON数据必须遵循以下 schema:
json
{
    "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"}
    }
}

Step 2: Write JSON Data to a Temp File

步骤2:将JSON数据写入临时文件

Write the collected audit data to a temporary JSON file:
bash
undefined
将收集到的审计数据写入临时JSON文件:
bash
undefined

Write audit data to temp file

Write audit data to temp file

cat > /tmp/geo-audit-data.json << 'EOF' { ... audit JSON data ... } EOF
undefined
cat > /tmp/geo-audit-data.json << 'EOF' { ... audit JSON data ... } EOF
undefined

Step 3: Generate the PDF

步骤3:生成PDF

Run the PDF generation script:
bash
python3 ~/.claude/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:
  • Cover Page — Brand name, URL, date, overall GEO score with visual gauge
  • Executive Summary — Key findings and top recommendations
  • Score Breakdown — Table and bar chart of all 6 scoring categories
  • AI Platform Readiness — Visual horizontal bar chart per platform with scores
  • AI Crawler Access — Color-coded table (green=allowed, red=blocked)
  • Key Findings — Severity-coded findings list (critical/high/medium/low)
  • Prioritized Action Plan — Quick wins, medium-term, and strategic initiatives
  • Appendix — Methodology, data sources, and glossary
运行PDF生成脚本:
bash
python3 ~/.claude/skills/geo/scripts/generate_pdf_report.py /tmp/geo-audit-data.json GEO-REPORT-[brand].pdf
该脚本将生成一份专业PDF报告,包含以下内容:
  • 封面 — 品牌名称、URL、日期、整体GEO评分及可视化仪表盘
  • 执行摘要 — 关键发现和顶级建议
  • 评分细分 — 6个评分类别的表格和条形图
  • AI平台就绪度 — 各平台的可视化水平条形图及评分
  • AI爬虫访问权限 — 颜色编码表格(绿色=允许,红色=阻止)
  • 关键发现 — 按严重程度编码的发现列表(严重/高/中/低)
  • 优先级行动计划 — 快速见效项、中期项和战略举措
  • 附录 — 方法论、数据源和术语表

Step 4: Return the PDF Path

步骤4:返回PDF路径

After generation, tell the user where the PDF was saved and its file size.
生成完成后,告知用户PDF的保存位置和文件大小。

Complete Workflow Example

完整工作流示例

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:
    • GEO-CLIENT-REPORT.md
    • GEO-AUDIT-REPORT.md
    • Or any
      GEO-*.md
      files from a recent audit
  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:
    • Overall GEO score
    • Category scores (citability, brand authority, content/E-E-A-T, technical, schema, platform)
    • Platform readiness scores (Google AIO, ChatGPT, Perplexity, Gemini, Bing Copilot)
    • AI crawler access status
    • Key findings with severity levels
    • Quick wins, medium-term, and strategic action items
    • Executive summary
  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:
    bash
    python3 ~/.claude/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.
当用户运行本技能时,请严格遵循以下步骤:
  1. 检查现有审计数据 — 在当前目录中查找近期的GEO审计报告:
    • GEO-CLIENT-REPORT.md
    • GEO-AUDIT-REPORT.md
    • 任何近期审计生成的
      GEO-*.md
      文件
  2. 若无审计数据 — 告知用户需先运行
    /geo-audit <url>
    命令,之后再返回生成PDF。
  3. 若有审计数据 — 解析markdown报告以提取以下内容:
    • 整体GEO评分
    • 类别评分(可引用性、品牌权威性、内容E-E-A-T、技术、Schema、平台)
    • 平台就绪度评分(Google AI Overviews、ChatGPT、Perplexity、Gemini、Bing Copilot)
    • AI爬虫访问状态
    • 带严重级别的关键发现
    • 快速见效项、中期项和战略行动项
    • 执行摘要
  4. 构建JSON — 将所有数据整理为上述所示的JSON schema结构。
  5. 将JSON写入临时文件 — 保存至
    /tmp/geo-audit-data.json
  6. 运行PDF生成器
    bash
    python3 ~/.claude/skills/geo/scripts/generate_pdf_report.py /tmp/geo-audit-data.json "GEO-REPORT-[brand_name].pdf"
  7. 报告成功 — 告知用户PDF已生成,以及其保存位置和文件大小。

If the User Provides a URL

若用户提供URL

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
当用户运行
/geo-report-pdf https://example.com
并附带URL时:
  1. 首先运行完整审计:调用
    geo-audit
    技能处理该URL
  2. 然后从生成的报告文件中收集所有审计数据
  3. 按照上述步骤生成PDF

Parsing Markdown Audit Data

解析Markdown审计数据

When extracting data from existing GEO markdown reports, look for these patterns:
  • GEO Score: Look for "GEO Score: XX/100" or "Overall: XX/100" or "GEO Readiness Score: XX"
  • Category Scores: Look for score tables with columns like "Component | Score | Weight"
  • Platform Scores: Look for tables with "Google AI Overviews", "ChatGPT", "Perplexity", etc.
  • Crawler Status: Look for tables with "Allowed" or "Blocked" status for crawlers like GPTBot, ClaudeBot
  • Findings: Look for sections titled "Key Findings", "Critical Issues", "Recommendations"
  • Action Items: Look for sections titled "Quick Wins", "Action Plan", "Recommendations"
从现有GEO markdown报告提取数据时,请查找以下模式:
  • GEO评分:查找包含"GEO Score: XX/100"、"Overall: XX/100"或"GEO Readiness Score: XX"的内容
  • 类别评分:查找包含“Component | Score | Weight”等列的评分表格
  • 平台评分:查找包含“Google AI Overviews”、“ChatGPT”、“Perplexity”等项的表格
  • 爬虫状态:查找包含GPTBot、ClaudeBot等爬虫的“Allowed”或“Blocked”状态的表格
  • 发现:查找标题为“Key Findings”、“Critical Issues”、“Recommendations”的章节
  • 行动项:查找标题为“Quick Wins”、“Action Plan”、“Recommendations”的章节

Notes

注意事项

  • If ReportLab is not installed, run:
    pip install reportlab
  • The PDF is designed for US Letter size (8.5" x 11")
  • Color palette: Navy primary (#1a1a2e), Blue accent (#0f3460), Coral highlight (#e94560), Green success (#00b894)
  • Each page has a header line, page numbers, "Confidential" watermark, and generation date
  • Score gauges use traffic-light colors: green (80+), blue (60-79), yellow (40-59), red (below 40)
  • 若未安装ReportLab,请运行:
    pip install reportlab
  • PDF采用美国信纸尺寸(8.5" x 11")
  • 调色板:海军蓝主色(#1a1a2e)、蓝色强调色(#0f3460)、珊瑚色高亮(#e94560)、绿色成功色(#00b894)
  • 每页都有页眉线、页码、“Confidential”(保密)水印和生成日期
  • 评分仪表盘使用交通灯颜色:绿色(80分及以上)、蓝色(60-79分)、黄色(40-59分)、红色(40分以下)