Home
cd ../playbooks
File OrganizationAdvanced

PDF Form Auto-Filler

Fill out PDF forms programmatically and extract form data

10 minutes
By communitySource
#pdf#form#fill#data-entry

You have 50 identical PDF forms to fill with different data and you're typing each one by hand. Government forms, insurance paperwork, vendor onboarding — the same tedious fields over and over. One typo means printing and starting over.

Who it's for: HR departments filling onboarding paperwork for multiple new hires, legal assistants completing court filing forms in batch, insurance professionals processing claim forms, administrative staff handling government or compliance PDF forms, accountants filling tax forms with client data

Example

"Fill these 30 vendor W-9 forms from our contractor spreadsheet" → All 30 PDFs filled programmatically from your CSV data, field validation catching 3 missing EINs, completed forms saved individually and as a merged batch, plus extracted form data as a verification spreadsheet

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

# PDF Form Filler

Fill out PDF forms automatically and extract data from completed forms.

## Overview

This workflow helps you:
- Fill PDF forms with provided data
- Extract data from filled forms
- Batch fill multiple forms
- Validate form data
- Create form-filling templates

## How to Use

### Fill a Form
```
"Fill this PDF form with the following data:
- Name: John Smith
- Date: 2026-01-29
- Amount: $1,500"
```

### Extract Form Data
```
"Extract all form field values from this PDF"
"What data is filled in this form?"
```

### Batch Fill
```
"Fill 50 copies of this form using data from the spreadsheet"
"Generate forms for each row in this CSV"
```

## Form Field Types

### Supported Fields
| Field Type | Description | Fill Method |
|------------|-------------|-------------|
| **Text Field** | Single/multi-line text | Direct text entry |
| **Checkbox** | Yes/No selection | Check/uncheck |
| **Radio Button** | One of many options | Select option |
| **Dropdown** | List selection | Choose value |
| **Date Field** | Date picker | Date value |
| **Signature** | Digital signature | Signature image/certificate |
| **Combo Box** | Dropdown with text entry | Select or type |

### Field Identification
```markdown
## Form Fields: [Form Name]

### Field Map
| Field Name | Type | Required | Page | Notes |
|------------|------|----------|------|-------|
| applicant_name | Text | Yes | 1 | Max 50 chars |
| birth_date | Date | Yes | 1 | MM/DD/YYYY |
| gender | Radio | Yes | 1 | M/F/Other |
| employed | Checkbox | No | 1 | Check if yes |
| state | Dropdown | Yes | 2 | US states |
| signature | Signature | Yes | 3 | Digital sig |
```

## Fill Templates

### Data Mapping Template
```markdown
## Form Fill Template: [Form Name]

### Form Info
- **File**: application_form.pdf
- **Total Fields**: 25
- **Required Fields**: 15

### Field Mappings
```yaml
# Personal Information
applicant_name: "${firstName} ${lastName}"
date_of_birth: "${birthDate}"
ssn_last_four: "${ssnLast4}"
phone: "${phone}"
email: "${email}"

# Address
street_address: "${address.street}"
city: "${address.city}"
state: "${address.state}"
zip_code: "${address.zip}"

# Employment
currently_employed: ${isEmployed}  # checkbox
employer_name: "${employer.name}"
job_title: "${employer.title}"

# Selections
payment_method: "${paymentMethod}"  # dropdown
agree_terms: true  # checkbox
```

### Sample Data
```json
{
  "firstName": "John",
  "lastName": "Smith",
  "birthDate": "1990-05-15",
  "phone": "555-123-4567",
  "email": "john.smith@email.com",
  "address": {
    "street": "123 Main St",
    "city": "New York",
    "state": "NY",
    "zip": "10001"
  },
  "isEmployed": true,
  "employer": {
    "name": "Acme Corp",
    "title": "Manager"
  },
  "paymentMethod": "Direct Deposit"
}
```
```

## Output Formats

### Fill Result Report
```markdown
## Form Fill Result

### Summary
| Status | Value |
|--------|-------|
| **Form** | application_form.pdf |
| **Fields Filled** | 23/25 |
| **Errors** | 2 |
| **Output** | filled_application.pdf |

### Filled Fields
| Field | Value | Status |
|-------|-------|--------|
| applicant_name | John Smith | ✅ |
| date_of_birth | 05/15/1990 | ✅ |
| phone | 555-123-4567 | ✅ |
| state | NY | ✅ |
| payment_method | Direct Deposit | ✅ |

### Errors/Warnings
| Field | Issue | Suggestion |
|-------|-------|------------|
| ssn | Field not found | Check field name |
| signature | Requires certificate | Add signature manually |

### Validation
- ✅ All required fields filled
- ✅ Date formats correct
- ⚠️ Signature field needs manual completion
```

### Extracted Data Report
```markdown
## Form Data Extraction

### Source: completed_form.pdf

### Extracted Values
```json
{
  "form_title": "Employment Application",
  "submission_date": "2026-01-29",
  "fields": {
    "applicant_name": "Jane Doe",
    "date_of_birth": "1985-03-20",
    "email": "jane.doe@email.com",
    "phone": "555-987-6543",
    "address": "456 Oak Ave, Chicago, IL 60601",
    "position_applied": "Senior Developer",
    "salary_expectation": "$120,000",
    "available_start": "2026-03-01",
    "references_provided": true
  }
}
```

### Field Statistics
| Metric | Value |
|--------|-------|
| Total fields | 30 |
| Filled fields | 28 |
| Empty fields | 2 |
| Extraction confidence | 98% |
```

## Batch Processing

### Batch Fill Job
```markdown
## Batch Form Fill

### Configuration
- **Template Form**: w9_form.pdf
- **Data Source**: vendors.csv
- **Records**: 150
- **Output Folder**: /filled_w9s/

### Data Preview
| Row | Name | TIN | Address |
|-----|------|-----|---------|
| 1 | Acme Corp | XX-XXX1234 | 123 Main St |
| 2 | Beta LLC | XX-XXX5678 | 456 Oak Ave |
| ... | ... | ... | ... |

### Progress
| Status | Count | % |
|--------|-------|---|
| ✅ Completed | 145 | 97% |
| ⚠️ Warnings | 3 | 2% |
| ❌ Errors | 2 | 1% |

### Errors
| Row | Issue |
|-----|-------|
| 47 | Invalid TIN format |
| 89 | Missing required: Address |

### Output Files
- w9_acme_corp.pdf
- w9_beta_llc.pdf
- ...
```

## Form Validation

### Validation Rules
```markdown
## Form Validation Rules

### Field Validations
| Field | Rule | Error Message |
|-------|------|---------------|
| email | Valid email format | "Invalid email address" |
| phone | 10 digits | "Phone must be 10 digits" |
| ssn | XXX-XX-XXXX format | "Invalid SSN format" |
| date | MM/DD/YYYY | "Use MM/DD/YYYY format" |
| zip | 5 or 9 digits | "Invalid ZIP code" |
| amount | Numeric, > 0 | "Enter positive number" |

### Cross-Field Validations
| Rule | Fields | Condition |
|------|--------|-----------|
| Conditional required | employer_name | Required if employed = true |
| Date range | end_date | Must be after start_date |
| Sum check | item_totals | Must equal grand_total |
```

### Validation Report
```markdown
## Pre-Fill Validation

### Data Validation Results
| Field | Value | Valid | Issue |
|-------|-------|-------|-------|
| email | john@email | ❌ | Missing domain |
| phone | 555-1234 | ❌ | Only 7 digits |
| date | 2026-01-29 | ✅ | - |
| zip | 10001 | ✅ | - |

### Summary
- ✅ Valid: 18 fields
- ❌ Invalid: 2 fields
- ⚠️ Warnings: 3 fields

### Recommendations
1. Fix email format: add domain (e.g., @company.com)
2. Complete phone number with area code
```

## Common Form Types

### Government Forms
| Form | Purpose | Key Fields |
|------|---------|------------|
| W-9 | Tax identification | TIN, name, address |
| I-9 | Employment eligibility | ID info, citizenship |
| W-4 | Withholding | Allowances, status |
| 1099 | Contractor income | Income, payer info |

### Business Forms
| Form | Purpose | Key Fields |
|------|---------|------------|
| NDA | Confidentiality | Parties, terms, dates |
| Invoice | Billing | Items, amounts, terms |
| PO | Purchase order | Items, quantities, vendor |
| Application | Various | Personal info, history |

## Tool Recommendations

### Desktop Software
- **Adobe Acrobat Pro**: Full form features
- **Foxit PDF Editor**: Good form support
- **PDFescape**: Free online option
- **JotForm**: Form creation and filling

### Programming Libraries
- **pdf-lib** (JavaScript): Fill and create forms
- **PyPDF2** (Python): Basic form filling
- **iText** (Java/.NET): Enterprise forms
- **PDFBox** (Java): Apache project

### Automation Tools
- **Adobe Acrobat Actions**: Batch processing
- **Power Automate**: Microsoft integration
- **Zapier + PDF.co**: Cloud automation

## Limitations

- Cannot execute actual form filling (provides guidance)
- Digital signatures require proper certificates
- Some secured PDFs prevent form filling
- Complex calculations may not auto-update
- Flattened forms cannot be edited
- Field names must match exactly
README.md

What This Does

Fill out PDF forms automatically and extract data from completed forms.


Quick Start

Step 1: Create a Project Folder

mkdir -p ~/Documents/PdfFormFiller

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ~/Documents/PdfFormFiller/

Step 3: Start Working

cd ~/Documents/PdfFormFiller
claude

How to Use

Fill a Form

Extract Form Data

Batch Fill

Output Format

Fill Result Report

Limitations

  • Cannot execute actual form filling (provides guidance)
  • Digital signatures require proper certificates
  • Some secured PDFs prevent form filling
  • Complex calculations may not auto-update
  • Flattened forms cannot be edited
  • Field names must match exactly

$Related Playbooks

File Organization

PDF Merge & Split Tool

Combine multiple PDFs or split into separate files

10 minutes
Intermediate
File Organization

PDF OCR Scanner

Extract text from scanned PDFs using optical character recognition

10 minutes
Beginner
File Organization

PDF to Word Converter

Convert PDF files to editable Word documents using pdf2docx

10 minutes
Intermediate
File Organization

PDF Watermark Tool

Add watermarks, page numbers, headers, and footers to PDFs

10 minutes
Intermediate
File Organization

Photo Organizer by Event

Organize photos by reading EXIF metadata and analyzing content to create Year > Month > Event folder structures automatically.

5 minutes
Beginner
File Organization

Project Inventory & Documentation

Analyze project folders to understand what each does, identify tech stacks, and create documented inventories.

10 minutes
Intermediate
File Organization

Smart OCR Document Scanner

Extract text from images, scanned documents, and handwritten notes in 100+ languages using PaddleOCR.

10 minutes
Intermediate
File Organization

View & Recover Claude Code Session History

Claude Code saves full session history in ~/.claude/ — learn how to search terminal logs, recover lost code, and find past solutions with this free guide.

5 minutes
Beginner
File Organization

Screenshot Organizer

Organize thousands of screenshots by analyzing their visual content. Claude reads text in images to create meaningful names and categories.

5 minutes
Beginner
File Organization

Smart Downloads Organizer

Intelligently organize your Downloads folder by analyzing file content, not just extensions. Claude reads files to categorize them meaningfully.

5 minutes
Beginner
File Organization

Old File Cleanup Assistant

Identify safely deletable old files with intelligent recommendations based on age, type, and usage patterns.

5 minutes
Beginner
File Organization

Batch File Converter

Batch convert documents between multiple formats using a unified pipeline

10 minutes
Advanced

Browse all File Organization playbooks →