claude-office-skills/skills

PDF Form Filler

Fill out PDF forms programmatically and extract form data

All-time #3473
8-week activity · all time api

Installation

$ npx skills add claude-office-skills/skills --skill pdf-form-filler

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from claude-office-skills/skills · top by installs.

npx skills add claude-office-skills/skills

Browse all from claude-office-skills/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 454
License MIT License
Default branch main
Open issues 2
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0
LicenseMIT
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 8,897 B
  • docs SUMMARY.md 77 B

History

  1. First recorded snapshot · 4,000 installs

SKILL.md

PDF Form Filler

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

Overview

This skill 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

## 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

## Form Fill Template: [Form Name]

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

### Field Mappings

Personal Information

applicantname: "${firstName} ${lastName}" dateofbirth: "${birthDate}" ssnlast_four: "${ssnLast4}" phone: "${phone}" email: "${email}"

Address

streetaddress: "${address.street}" city: "${address.city}" state: "${address.state}" zipcode: "${address.zip}"

Employment

currentlyemployed: ${isEmployed} # checkbox employername: "${employer.name}" job_title: "${employer.title}"

Selections

paymentmethod: "${paymentMethod}" # dropdown agreeterms: true # checkbox


### Sample Data

{ "firstName": "John", "lastName": "Smith", "birthDate": "1990-05-15", "phone": "555-123-4567", "email": "[email protected]", "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

## 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

## Form Data Extraction

### Source: completed_form.pdf

### Extracted Values

{ "formtitle": "Employment Application", "submissiondate": "2026-01-29", "fields": { "applicantname": "Jane Doe", "dateofbirth": "1985-03-20", "email": "[email protected]", "phone": "555-987-6543", "address": "456 Oak Ave, Chicago, IL 60601", "positionapplied": "Senior Developer", "salaryexpectation": "$120,000", "availablestart": "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

## 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

## 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

## 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