AgentStack
SKILL verified MIT Self-run

Geo Report Pdf

skill-bytefer-geo-seo-codex-geo-report-pdf · by bytefer

Generate a professional PDF report from a GEO audit using pandoc plus a Chrome/Chromium-compatible headless browser. 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.

No reviews yet
0 installs
23 views
0.0% view→install

Install

$ agentstack add skill-bytefer-geo-seo-codex-geo-report-pdf

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Geo Report Pdf? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

GEO PDF Report Generator (pandoc pipeline)

Prerequisites

  • pandoc — install through Homebrew, Chocolatey, Scoop, apt, or your platform package manager
  • Chrome/Chromium-compatible browser — Google Chrome, Microsoft Edge, Chromium, or Brave

No Python dependencies. No ReportLab. No JSON data wrangling.

How It Works

  1. Read GEO-AUDIT-REPORT.md in the current directory (created by $geo-audit)
  2. Extract cover metadata from the report (brand name, domain, GEO score, date, locations)
  3. Run pandoc with the bundled CSS + HTML template to produce a self-contained GEO-REPORT.html
  4. Run a Chrome/Chromium-compatible browser in headless mode to print the HTML to GEO-REPORT.pdf

Resolve GEO_ROOT from CODEX_GEO_ROOT, the loaded plugin/repository root, or the classic installer path ${CODEX_HOME:-$HOME/.codex}/skills/geo. The pandoc template ($GEO_ROOT/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 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") | | date | **Audit Date:** line | | business_type | **Business Type:** line | | locations | **Locations:** line | | platform | **CMS:** line |

Step 3: Run pandoc

GEO_ROOT="${CODEX_GEO_ROOT:-}"
if [ -z "$GEO_ROOT" ]; then
  for candidate in "$PWD" "$PWD/.." "$PWD/../.." "${CODEX_SKILLS_DIR:-${CODEX_HOME:-$HOME/.codex}/skills}/geo"; do
    if [ -f "$candidate/templates/geo-report-template.html" ]; then
      GEO_ROOT="$candidate"
      break
    fi
  done
fi
if [ -z "$GEO_ROOT" ]; then
  echo "GEO runtime root not found. Set CODEX_GEO_ROOT to the geo-seo-codex plugin/repo root."
  exit 1
fi

pandoc GEO-AUDIT-REPORT.md \
  --to html5 \
  --standalone \
  --embed-resources \
  --template "$GEO_ROOT/templates/geo-report-template.html" \
  --css "$GEO_ROOT/templates/geo-report-style.css" \
  --metadata title="GEO Audit Report — " \
  --metadata brand_name="" \
  --metadata domain="" \
  --metadata geo_score="" \
  --metadata score_label="" \
  --metadata date="" \
  --metadata business_type="" \
  --metadata locations="" \
  --metadata platform="" \
  -o GEO-REPORT.html

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

Step 4: Run Chrome/Chromium headless

GEO_CHROME="${GEO_CHROME:-}"
if [ -z "$GEO_CHROME" ]; then
  for candidate in \
    "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
    "/Applications/Microsoft Edge.app/Contents/MacOS/Microsoft Edge" \
    "/Applications/Chromium.app/Contents/MacOS/Chromium" \
    "/c/Program Files/Google/Chrome/Application/chrome.exe" \
    "/c/Program Files (x86)/Microsoft/Edge/Application/msedge.exe" \
    google-chrome chromium chromium-browser chrome msedge; do
    if command -v "$candidate" >/dev/null 2>&1 || [ -x "$candidate" ]; then
      GEO_CHROME="$candidate"
      break
    fi
  done
fi

if [ -z "$GEO_CHROME" ]; then
  echo "Chrome/Chromium executable not found. Set GEO_CHROME to Chrome, Edge, Chromium, or Brave."
  exit 1
fi

"$GEO_CHROME" \
  --headless=new \
  --disable-gpu \
  --no-sandbox \
  --print-to-pdf="$(pwd)/GEO-REPORT.pdf" \
  --print-to-pdf-no-header \
  --no-pdf-header-footer \
  --virtual-time-budget=5000 \
  "file://$(pwd)/GEO-REPORT.html"

Step 5: Report completion

Tell the user:

  • GEO-REPORT.pdf was generated in the current directory
  • File size
  • Optionally: open GEO-REPORT.pdf to preview it

What the PDF Contains

  • Cover page — Dark navy gradient, brand name, domain, GEO score badge (colored by score), audit date, business type, locations, CMS platform
  • Score tables — Cells containing XX/100 are color-coded: ≥80 green, ≥65 blue, ≥50 amber, ≥35 orange, ` block
  • Which sections get page breaks — Edit the breakBefore array in the template's `` block

Troubleshooting

| Problem | Fix | |---|---| | pandoc: command not found | Install pandoc with the package manager for your platform | | Chrome not found | Set GEO_CHROME to a Chrome, Edge, Chromium, or Brave executable | | PDF is blank / empty | Increase --virtual-time-budget to 8000 | | Cover metadata missing | Check GEO-AUDIT-REPORT.md has the standard header format | | Fonts not loading | PDF is rendered offline; system fonts are used as fallback — this is expected |

Source & license

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

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

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.