---
name: reaudit-visibility-audit
description: Create premium, sales-grade AI search visibility audit reports as polished PDFs from Reaudit MCP data. Use this skill whenever the user wants to build an AI visibility audit, GEO audit, brand-visibility report, or competitor-visibility PDF for a client or prospect, especially when Reaudit is the data source. Trigger it whenever the user mentions running an audit for a company, turning Reaudit data into a PDF or deck, making a visibility report, or producing collateral to pitch or close a prospect on AI search visibility, even if they do not explicitly say the words skill or report. Covers the whole pipeline of pulling data via the Reaudit MCP, researching the client brand identity from their website, structuring the 13-section narrative, applying the brand-adaptive design system, and rendering the PDF with WeasyPrint plus a page-fit QA loop.
---

# Reaudit AI Visibility Audit reports

This skill produces a specific deliverable: a ~13-page, A4, sales-grade PDF that
shows a company how it appears (and disappears) in AI search engines, benchmarks
it against competitors, exposes the ChatGPT sponsored-ad threat, and closes with
a Reaudit engagement offer. It is built to win deals, not just to inform.

The output looks like a top-tier strategy-consultancy deck: dark full-bleed
cover and closing, conclusion-first headlines, KPI cards, bar charts, a topic x
engine matrix, verbatim AI quotes, a source-graph analysis, and a numbered
playbook. The persuasive arc is the product — follow it.

## Workflow

Work through these phases in order. The references hold the detail; read each
one at the phase where it's named.

### 1. Gather the data (Reaudit MCP + web)
Read `references/reaudit-mcp-playbook.md` and run the sequence it specifies:
find and select the project, then pull visibility score, competitor comparison,
prompt topics, performance matrix, brand mentions, sentiment, citation sources,
page citations, and the three ChatGPT sponsored-ad tools. Capture every number
you'll cite. The playbook also lists which numbers must reconcile across pages.

Then `web_fetch` the client's homepage and `/about` page and extract their
positioning, scale, products, ICP, marquee clients, voice, and the competitors
they nominate — in their own words. This feeds the brand-identity page.

If the project was created today (all data points share one date), frame it as a
real-time, same-day audit, not a 30-day history. The playbook explains this.

### 2. Plan the narrative
Read `references/report-structure.md`. It defines the 13 sections and what each
one must accomplish. Map your gathered data onto the arc. Find the story: which
engine is strongest, who dominates share of voice, what the "wedge" prompt is
(the one the client already wins across engines), which round-up sources are the
gatekeepers, and which untracked competitors are buying ads. Decide the three
"things that matter" for the executive summary (typically: the gap, the win,
the threat).

### 3. Build the HTML
Start from `assets/template.html` — it's a fully-worked example (client:
Escalent) with all components and the proven CSS. Copy it to your working
directory, then adapt:
- Replace every data point, brand name, quote, and source with the real ones.
  Search/replace the example client name.
- Sample the client's real brand colors from their site and remap the accent
  tokens, keeping the color-to-meaning mapping (positive / threat / opportunity
  / structure). See `references/design-system.md`.
- Keep the structure, the components, and the two baked-in fixes (no em dashes,
  no `background-clip:text`).

`references/design-system.md` documents the color tokens, typography, page
mechanics, the reusable component class names, and the WeasyPrint traps.

### 4. Render and QA (do not skip)
Render with WeasyPrint via the script — never wkhtmltopdf (it mis-scales mm
units and leaves a white band on every page):
```bash
pip install weasyprint pdf2image pypdf --break-system-packages   # once
python scripts/render.py working/audit.html working/audit.pdf
```
This writes the PDF and rasterizes every page to `page_XX.png`. **View every
PNG.** Run the page-fit QA loop in `references/design-system.md`: look for any
trailing near-blank page (content overflowed — tighten that page and re-render),
gradient-text boxes, leftover em dashes, or stray comma placeholders in tables.
Re-render until the page count is right (13) and every page is clean.

### 5. Deliver
Copy the final PDF to `/mnt/user-data/outputs/{Client}_AI_Visibility_Audit.pdf`
and present it with `present_files`. Keep any closing note short — the prospect
opens the document; they don't need a wall of explanation.

## Non-negotiables
- **No em dashes anywhere.** Periods split clauses, commas mark asides, colons
  introduce, middle dots (·) separate tags. Confirm zero em-dash characters in
  the HTML before the final render.
- **WeasyPrint, not wkhtmltopdf.**
- **Conclusion-first headlines** on every page, and the client's own brand
  language reflected back at them.
- **Honest framing.** Reframe bad numbers as addressable; never spin. The
  honesty is what earns the meeting.
- **Brief quotes only** (copyright): short, one per source, prefer paraphrase,
  never reproduce long passages of AI output or website copy.
- **Color maps to meaning**, not decoration. Two or three accents, max.

## Files
- `assets/template.html` — the proven, fully-worked HTML/CSS scaffold. Start here.
- `scripts/render.py` — WeasyPrint render + per-page PNG rasterization for QA.
- `references/reaudit-mcp-playbook.md` — exact MCP call sequence + brand research.
- `references/report-structure.md` — the 13-section narrative arc, page by page.
- `references/design-system.md` — colors, type, page mechanics, WeasyPrint traps.
