# 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.

- **Type:** Skill
- **Install:** `agentstack add skill-techhorizonlabs-thl-open-geo-report-pdf`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [techhorizonlabs](https://agentstack.voostack.com/s/techhorizonlabs)
- **Installs:** 0
- **Category:** [AI & ML](https://agentstack.voostack.com/c/ai-and-ml)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [techhorizonlabs](https://github.com/techhorizonlabs)
- **Source:** https://github.com/techhorizonlabs/thl-open/tree/main/skills/geo-report-pdf
- **Website:** https://techhorizonlabs.com

## Install

```sh
agentstack add skill-techhorizonlabs-thl-open-geo-report-pdf
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 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`](../../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`](../geo/scripts/generate_pdf_report.py) (shared with the `geo` umbrella skill). Run it from the repo root: `python3 skills/geo/scripts/generate_pdf_report.py  `.
- 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:

```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

Write the collected audit data to a temporary JSON file:

```bash
# Write audit data to temp file
cat > /tmp/geo-audit-data.json ` 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 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 Provides a 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

## Parsing Markdown Audit Data

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"

## 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)

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [techhorizonlabs](https://github.com/techhorizonlabs)
- **Source:** [techhorizonlabs/thl-open](https://github.com/techhorizonlabs/thl-open)
- **License:** MIT
- **Homepage:** https://techhorizonlabs.com

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-techhorizonlabs-thl-open-geo-report-pdf
- Seller: https://agentstack.voostack.com/s/techhorizonlabs
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
