Skip to main content
skill CX Codex

business-document-generator — Claude Code skill: PDFs from templates

Turns your data into a PDF proposal, business plan or annual budget by filling a ready template with a Python script.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add ailabs-393/ai-labs-claude-skills --skill business-document-generator -a claude-code
Open on GitHub

What business-document-generator does

The skill kicks in when you ask for a business document built from a template. Three PDF templates ship in assets/templates: Professional Proposal Template, Comprehensive Business Plan Template and Annual Budget Plan Template. The script scripts/generate_document.py reads a template, overlays your data and writes a new PDF.

You supply the data as a JSON file — project title, client, your company, dates and so on. Field schemas live in references/document_schemas.md, and working examples sit in assets/examples/. A run looks like this: python3 scripts/generate_document.py proposal my_proposal_data.json --templates-dir assets/templates --output-dir ./generated_docs. The first argument is proposal, business_plan or budget.

Install the dependencies first: pip install pypdf reportlab. One catch worth knowing before you start: the script fills the cover page only — titles, names, dates. The body stays a framework you finish by hand or in another PDF editor. If you expected every section to fill itself, read the script before promising that to anyone.

What it helps with

  • build a client-ready PDF proposal from a template
  • produce a business plan with a filled cover page for investors
  • generate an annual budget PDF with tables and projections
  • inject company details into a PDF without manual layout work
  • keep several business documents in one consistent format from JSON

Example prompts for the agent

  • create a project proposal for Acme Corporation using the proposal template
  • generate a business plan from my plan_data.json file
  • build the annual budget PDF from budget_data.json

How to install business-document-generator

1Skills CLI (Vercel)

npx skills add ailabs-393/ai-labs-claude-skills --skill business-document-generator -a claude-code

2Manually: put the files in place

~/.claude/skills/business-document-generator/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/business-document-generator/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about business-document-generator

How do I install business-document-generator in Claude?

Run npx skills add ailabs-393/ai-labs-claude-skills --skill business-document-generator -a claude-code. The skill then lands at ~/.claude/skills/business-document-generator/SKILL.md.

What does business-document-generator do?

It generates three kinds of PDF — proposal, business plan and budget — from bundled templates, filling them with data from your JSON file.

What do I need before running it?

The Python packages pypdf and reportlab, installed with pip install pypdf reportlab. You also need a JSON data file matching the schema in references/document_schemas.md.

Source text

SKILL.md · MIT
---
name: business-document-generator
description: This skill should be used when the user requests to create professional business documents (proposals, business plans, or budgets) from templates. It provides PDF templates and a Python script for generating filled documents from user data.
---

# Business Document Generator

## Overview

Generate professional business documents (Project Proposals, Business Plans, Annual Budgets) from high-quality PDF templates. Use the bundled Python script to fill templates with user-provided data and output polished PDF documents ready for distribution.

## When to Use This Skill

Activate this skill when the user asks to:
- Create a business proposal or project proposal
- Generate a business plan document
- Develop an annual budget plan
- Create any professional business document based on the available templates
- Fill in business templates with specific data

## Available Document Types

This skill supports three types of professional business documents:

1. **Project Proposal** - Professional proposals for client projects
   - Template: `assets/templates/Professional Proposal Template.pdf`
   - Use case: Pitching projects to clients, stakeholders

2. **Business Plan** - Comprehensive business planning documents
   - Template: `assets/templates/Comprehensive Business Plan Template.pdf`
   - Use case: Startup planning, investor presentations, strategic planning

3. **Annual Budget** - Detailed budget planning documents
   - Template: `assets/templates/Annual Budget Plan Template.pdf`
   - Use case: Financial planning, budget proposals, fiscal year planning

## Quick Start Workflow

### Step 1: Understand User Requirements

Gather information from the user about:
- Document type needed (proposal, business plan, or budget)
- Key data to include (company name, client info, dates, etc.)
- Any specific customization needs

### Step 2: Prepare the Data

Create a JSON file with the document data. Reference the data schemas in `references/document_schemas.md` for field requirements.

**Example for Proposal:**
```json
{
  "title": "Digital Transformation Initiative",
  "subtitle": "A Comprehensive Plan for Acme Corporation",
  "client_org": "Acme Corporation",
  "client_contact": "Jane Smith, CTO",
  "company_name": "TechSolutions Inc.",
  "contact_info": "[email protected]",
  "date": "November 3, 2025"
}
```

**Note:** Check `assets/examples/` for complete example JSON files:
- `proposal_example.json`
- `business_plan_example.json`
- `budget_example.json`

### Step 3: Install Dependencies (First Time Only)

The generation script requires Python packages. Install them:

```bash
pip install pypdf reportlab
```

### Step 4: Generate the Document

Run the generation script:

```bash
python3 scripts/generate_document.py <document_type> <data_file> \
  --templates-dir assets/templates \
  --output-dir <output_directory>
```

**Parameters:**
- `<document_type>`: One of `proposal`, `business_plan`, or `budget`
- `<data_file>`: Path to JSON file with document data
- `--templates-dir`: Directory containing PDF templates (default: `assets/templates`)
- `--output-dir`: Where to save generated PDFs (default: `output`)
- `--output-filename`: Optional custom filename

**Example:**
```bash
python3 scripts/generate_document.py proposal my_proposal_data.json \
  --templates-dir assets/templates \
  --output-dir ./generated_docs
```

### Step 5: Deliver the Document

The script outputs a PDF file in the specified output directory. Verify the document was generated successfully and inform the user of the file location.

## Detailed Usage Instructions

### Creating a Project Proposal

1. Collect proposal information:
   - Project title and subtitle
   - Client organization and contact
   - Your company name and contact info
   - Project details (problem, solution, timeline, budget)

2. Create a JSON data file with proposal fields (see `references/document_schemas.md`)

3. Run the script:
   ```bash
   python3 scripts/generate_document.py proposal proposal_data.json \
     --templates-dir assets/templates
   ```

4. Output: Professional PDF proposal with cover page and content sections

### Creating a Business Plan

1. Collect business plan information:
   - Company name and legal structure
   - Mission and vision statements
   - Target market details
   - Financial projections

2. Create a JSON data file with business plan fields

3. Run the script:
   ```bash
   python3 scripts/generate_document.py business_plan plan_data.json \
     --templates-dir assets/templates
   ```

4. Output: Comprehensive business plan PDF template

### Creating an Annual Budget

1. Collect budget information:
   - Fiscal year
   - Company name
   - Budget assumptions (inflation, growth targets)
   - Revenue and expense forecasts

2. Create a JSON data file with budget fields

3. Run the script:
   ```bash
   python3 scripts/generate_document.py budget budget_data.json \
     --templates-dir assets/templates
   ```

4. Output: Annual budget plan PDF with tables and projections

## Important Notes

### Script Functionality

The `scripts/generate_document.py` script:
- Reads PDF templates from the assets directory
- Overlays user data on template pages (primarily cover pages)
- Generates a new PDF with filled information
- Preserves the original template structure and formatting

### Current Limitations

The script currently fills in cover page information (titles, names, dates). The template body content serves as a professional framework that users can follow when creating their documents manually or through other PDF editing tools.

### Extending the Script

To fill additional fields beyond the cover page, the script can be enhanced to:
- Parse form fields in PDFs
- Add text overlays on specific coordinates for each page
- Replace placeholder text programmatically

Modify `scripts/generate_document.py` to add more sophisticated PDF manipulation as needed.

## Data Schema Reference

For detailed information about required and optional fields for each document type, consult:
- `references/document_schemas.md` - Complete data structure documentation

## Example Files

Find complete working examples in `assets/examples/`:
- `proposal_example.json` - Sample project proposal data
- `business_plan_example.json` - Sample business plan data
- `budget_example.json` - Sample budget plan data

Use these as starting templates when creating new documents.

## Troubleshooting

**Import errors when running the script:**
- Install required packages: `pip install pypdf reportlab`

**Template not found:**
- Verify `--templates-dir` points to `assets/templates`
- Check that PDF template files exist in the templates directory

**Generated PDF is blank or missing data:**
- Verify JSON data file is properly formatted
- Check that required fields are present (see `references/document_schemas.md`)

**Need to customize templates:**
- Original templates are in `assets/templates/`
- Modify templates using PDF editing software
- Keep original filenames or update `TEMPLATE_MAP` in the script

## Resources

### scripts/

Contains the Python script for document generation:
- `generate_document.py` - Main document generation script with CLI interface

This script can be executed directly without loading into context for token efficiency. It may be read if modifications or debugging are needed.

### references/

Documentation to reference while working:
- `document_schemas.md` - Complete JSON data structure for all document types

### assets/

Files used in the document generation output:
- `templates/` - Professional PDF templates for each document type
  - `Professional Proposal Template.pdf`
  - `Comprehensive Business Plan Template.pdf`
  - `Annual Budget Plan Template.pdf`
- `examples/` - Sample JSON data files demonstrating proper structure
  - `proposal_example.json`
  - `business_plan_example.json`
  - `budget_example.json`

These templates and examples are not loaded into context but referenced during generation.

© ailabs-393 · MIT · ailabs-393/ai-labs-claude-skills

Similar skills

Everything for Office documents →

From the same set20

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor