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.
Start a fresh conversation. Replace the highlighted placeholders.
Use geo-report-pdf to convert [GEO-AUDIT-REPORT.md] into a styled, client-ready PDF with its extracted audit metadata and 90-day roadmap. This requires pandoc and Google Chrome at the documented path.
Required inputs
[GEO-AUDIT-REPORT.md]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: geo-report-pdfdescription: 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.version: 2.0.0author: geo-seo-claudetags: [geo, pdf, report, client-deliverable, professional]allowed-tools: Read, Grep, Glob, Bash, Write
GEO PDF Report Generator (pandoc pipeline)
Prerequisites
pandoc — brew install pandoc
Google Chrome — must be installed at /Applications/Google Chrome.app/
No Python dependencies. No ReportLab. No JSON data wrangling.
How It Works
Read GEO-AUDIT-REPORT.md in the current directory (created by /geo audit)
Extract cover metadata from the report (brand name, domain, GEO score, date, locations)
Run pandoc with the bundled CSS + HTML template to produce a self-contained GEO-REPORT.html
Run Chrome headless to print the HTML to GEO-REPORT.pdf
The pandoc template (~/.claude/skills/geo/templates/geo-report-template.html) injects:
A full-bleed dark navy cover section with the GEO score badge
Per-section cover metadata (date, business type, locations, platform)
JavaScript that runs inside Chrome before printing to color-code score cells and severity-tag finding sections
Workflow
Step 1: Check for audit report
Look for GEO-AUDIT-REPORT.md in the current directory. If absent, tell the user to run /geo audit <url> first.
Step 2: Extract cover metadata from the report
Read the top of GEO-AUDIT-REPORT.md and extract:
Field
Where to find it
brand_name
First H1 title (after "GEO Audit Report:")
domain
Second bold line (e.g. **Domain:** alexamediasolutions.com)
geo_score
Line matching ## Overall GEO Score: XX / 100
score_label
Word after the score on that same line (e.g. "Poor", "Fair", "Good")
Replace <field> placeholders with values extracted in Step 2. If a field is not found in the report, omit that --metadata flag — the template has sensible defaults.