Skill1.9k repo starsupdated 3mo ago
market-report-pdf
This skill generates a professional PDF marketing report by collecting audit and analysis data from previous skill runs, structuring it into JSON format, and invoking a Python script to produce a branded PDF with score gauges, charts, and prioritized recommendations. Use it when preparing client-ready deliverables, presentations, or visual reports that require consistent formatting and printable output.
Install in Claude Code
Copygit clone --depth 1 https://github.com/zubair-trabzada/ai-marketing-claude /tmp/market-report-pdf && cp -r /tmp/market-report-pdf/skills/market-report-pdf ~/.claude/skills/market-report-pdfThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
# PDF Marketing Report Generator
## Skill Purpose
Generate a professional, visually polished PDF marketing report using the Python script `scripts/generate_pdf_report.py`. This skill collects all available audit and analysis data, structures it into the expected JSON format, invokes the script, and produces a branded PDF with score gauges, bar charts, comparison tables, findings, and a prioritized action plan.
## When to Use
- User wants a PDF version of the marketing report (not just Markdown)
- User is preparing a deliverable for a client presentation
- User asks for a "polished report", "client-ready report", or "PDF report"
- User wants a visual report with charts and scores
- Triggered by `/market report-pdf` or `/market report-pdf <domain>`
## When to Use PDF vs Markdown
| Format | Best For | Pros | Cons |
|---|---|---|---|
| **PDF** | Client presentations, email attachments, sales collateral | Professional appearance, consistent formatting, visual charts, printable | Harder to edit, requires Python script |
| **Markdown** | Internal use, quick reference, iterative editing, version control | Easy to edit, readable in any editor, git-friendly | Less visually polished, no charts |
**Rule of thumb:** If the report is going to a client or prospect, use PDF. If it is for internal use or further editing, use Markdown.
## How to Execute
### Step 1: Collect All Available Data
Gather data from all previous skill runs. Check for these files in the project directory:
**Primary data sources:**
- `MARKETING-AUDIT.md` -- Overall audit results
- `LANDING-CRO.md` -- Landing page conversion analysis
- `SEO-AUDIT.md` -- SEO findings
- `BRAND-VOICE.md` -- Brand voice analysis
- `COMPETITOR-ANALYSIS.md` -- Competitor comparison data
- `FUNNEL-ANALYSIS.md` -- Funnel analysis
- `SOCIAL-AUDIT.md` -- Social media audit
- `EMAIL-AUDIT.md` -- Email marketing audit
- `AD-AUDIT.md` -- Advertising audit
**If no previous data exists:**
1. Recommend the user run `/market audit <url>` first for the best results
2. If the user insists on generating a report without prior audits, analyze the provided URL directly and build the data structure from scratch
3. Use the analyze_page.py script to gather automated data: `python scripts/analyze_page.py <url>`
### Step 2: Build the JSON Data Structure
The `scripts/generate_pdf_report.py` script expects a JSON file as input with this exact structure:
```json
{
"url": "https://example.com",
"date": "March 1, 2026",
"brand_name": "Example Co",
"overall_score": 62,
"executive_summary": "A 2-4 sentence summary of the overall marketing health, key opportunities, and estimated revenue impact of implementing recommendations.",
"categories": {
"Content & Messaging": {
"score": 68,
"weight": "25%"
},
"Conversion Optimization": {
"score": 52,
"weight": "20%"
},
"SEO & Discoverability": {
"score": 74,
"weight": "20%"
},
"Competitive Positioning": {
"score": 48,
"weight": "15%"
},
"Brand & Trust": {
"score": 70,
"weight": "10%"
},
"Growth & Strategy": {
"score": 55,
"weight": "10%"
}
},
"findings": [
{
"severity": "Critical",
"finding": "Description of the most important finding"
},
{
"severity": "High",
"finding": "Description of a high-priority finding"
},
{
"severity": "Medium",
"finding": "Description of a medium-priority finding"
},
{
"severity": "Low",
"finding": "Description of a lower-priority finding"
}
],
"quick_wins": [
"First quick win action item",
"Second quick win action item",
"Third quick win action item"
],
"medium_term": [
"First medium-term action item",
"Second medium-term action item",
"Third medium-term action item"
],
"strategic": [
"First strategic action item",
"Second strategic action item",
"Third strategic action item"
],
"competitors": [
{
"name": "Competitor A",
"positioning": "Their market position",
"pricing": "Their pricing model",
"social_proof": "Their trust signals",
"content": "Their content approach"
},
{
"name": "Competitor B",
"positioning": "Their market position",
"pricing": "Their pricing model",
"social_proof": "Their trust signals",
"content": "Their content approach"
}
]
}
```
### Step 3: Field-by-Field Data Assembly Guide
#### `url` (string, required)
The target website URL. Use the full URL including protocol.
#### `date` (string, required)
The report generation date. Format: "Month DD, YYYY" (e.g., "March 1, 2026").
#### `brand_name` (string, required)
The company or brand name. Used in competitor comparison table headers.
#### `overall_score` (integer, 0-100, required)
The weighted average of all category scores. Calculate as:
```
overall_score = (content * 0.25) + (conversion * 0.20) + (seo * 0.20) + (competitive * 0.15) + (brand * 0.10) + (growth * 0.10)
```
#### `executive_summary` (string, required)
A 2-4 sentence summary covering:
- Current marketing health assessment
- Top 1-2 most impactful findings
- Estimated revenue impact of implementing recommendations
- Recommended first step
Keep it concise and impactful. This appears on the cover page right below the score gauge.
#### `categories` (object, required)
Exactly 6 categories with their scores. The categories map to these evaluation areas:
| Category | What It Measures | Scoring Guidance |
|---|---|---|
| Content & Messaging | Copy quality, value proposition, headline clarity, CTA text, brand voice consistency | 80+: Clear, benefit-driven, specific. 60-79: Adequate but generic. <60: Vague, feature-focused, unclear |
| Conversion Optimization | Social proof, form design, CTA placement, objection handling, urgency | 80+: Multiple proof types, optimized forms, clear CTAs. 60-79: Some elements present. <60: Missing critica