jmagly/aiwg/pdf-extractor

Claude Code and agent skill by jmagly/aiwg

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Extract text, tables, and images from PDF files. Use when converting PDF documentation, manuals, or reports to searchable text.

Install

npx vskill@latest install jmagly/aiwg/pdf-extractor

SKILL.md

PDF Extractor Skill

Purpose

Single responsibility: Extract structured content (text, tables, images) from PDF files into organized, searchable formats. (BP-4)

Grounding Checkpoint (Archetype 1 Mitigation)

Before executing, VERIFY:

  • [ ] PDF file exists and is readable (file <path> confirms PDF format)
  • [ ] PDF is not corrupted (pdfinfo <path> returns metadata)
  • [ ] Password known if encrypted
  • [ ] Output directory is writable
  • [ ] Required tools available (pdfplumber, pytesseract for OCR)

DO NOT proceed without verification. Inspect PDF metadata first.

Uncertainty Escalation (Archetype 2 Mitigation)

ASK USER instead of guessing when:

  • PDF appears to be scanned (needs OCR) but OCR tools unavailable
  • Multiple table formats detected - unclear which parser to use
  • Password-protected but no password provided
  • Image extraction quality unclear (resolution, format preferences)
  • Language detection needed for OCR

NEVER assume PDF structure without inspection.

Context Scope (Archetype 3 Mitigation)

Context TypeIncludedExcluded
RELEVANTTarget PDF, extraction options, output pathOther PDF files
PERIPHERALSimilar PDF structure examplesUnrelated documents
DISTRACTORPrevious extraction attemptsOther file formats

Workflow Steps

Step 1: Inspect PDF (Grounding)
bash
# Check file type
file document.pdf
# Get PDF metadata
pdfinfo document.pdf
# Check page count
pdfinfo document.pdf | grep Pages
# Check if encrypted
pdfinfo document.pdf | grep Encrypted
Step 2: Determine Extraction Strategy
PDF TypeDetectionStrategy
Text-basedpdftotext produces readable textDirect extraction
Scanned/Imagepdftotext produces empty/garbledOCR required
MixedSome pages text, some imagesHybrid approach
TablesVisual grid patternsTable extraction mode
FormsInteractive fieldsForm field extraction
Step 3: Execute Extraction

Option A: With skill-seekers (if installed)

bash
# Basic extraction
skill-seekers pdf --pdf document.pdf --name myskill
# With table extraction
skill-seekers pdf --pdf document.pdf --name myskill --extract-tables
# With OCR for scanned docs
skill-seekers pdf --pdf document.pdf --name myskill --ocr
# With parallel processing (large PDFs)
skill-seekers pdf --pdf document.pdf --name myskill --parallel --workers 8
# Password-protected
skill-seekers pdf --pdf document.pdf --name myskill --password "secret"

Option B: Manual extraction guidance

bash
# Basic text extraction
pdftotext -layout document.pdf output.txt
# Extract with page markers
pdftotext -layout -eol unix document.pdf output.txt
# Extract images
pdfimages -all document.pdf images/
# OCR scanned PDF (requires tesseract)
pdftoppm document.pdf page -png
tesseract page-*.png output -l eng
Step 4: Validate Output
bash
# Check extraction quality
head -100 output/<skill-name>/references/content.md
# Verify table extraction
grep -A 10 "| " output/<skill-name>/references/*.md
# Check image extraction
ls -la output/<skill-name>/assets/images/

Recovery Protocol (Archetype 4 Mitigation)

On error:

  1. PAUSE - Stop extraction, preserve partial output
  2. DIAGNOSE - Check error type:
  • File not found → Verify path
  • Password required → Ask user for password
  • Corrupt PDF → Try repair with qpdf --check
  • OCR failed → Check tesseract installation, language packs
  • Memory error → Process in chunks, reduce workers
  1. ADAPT - Switch strategy based on diagnosis
  2. RETRY - Resume with adapted approach (max 3 attempts)
  3. ESCALATE - Ask user for guidance

Checkpoint Support

State saved to: .aiwg/working/checkpoints/pdf-extractor/

For large PDFs, extraction saves progress per chunk:

checkpoints/pdf-extractor/
├── document_metadata.json
├── pages_1-50.json
├── pages_51-100.json
└── current_position.json

Output Structure

output/<skill-name>/
├── SKILL.md # Skill description with PDF summary
├── references/
│ ├── index.md # Table of contents
│ ├── chapter_1.md # Content by section
│ ├── chapter_2.md
│ └── tables.md # Extracted tables
└── assets/
└── images/ # Extracted images (if enabled)
├── page_1_fig_1.png
└── page_5_chart_1.png

Configuration Options

json
{
"name": "mymanual",
"description": "Product manual documentation",
"pdf_path": "docs/manual.pdf",
"extract_options": {
"chunk_size": 10,
"min_quality": 6.0,
"extract_images": true,
"min_image_size": 150,
"ocr_enabled": false,
"ocr_language": "eng",
"table_extraction": true
},
"categories": {
"getting_started": ["introduction", "setup", "installation"],
"usage": ["using", "operation", "guide"],
"reference": ["appendix", "specifications", "api"]
}
}

Extraction Quality Metrics

MetricGoodAcceptablePoor
Text extraction rate>95%80-95%<80%
Table accuracy>90%70-90%<70%
Image quality>300 DPI150-300 DPI<150 DPI
OCR confidence>90%70-90%<70%

Troubleshooting

IssueDiagnosisSolution
Garbled textScanned PDFEnable OCR mode
Missing tablesComplex layoutUse --extract-tables with pdfplumber
Poor OCRLow resolutionIncrease DPI, check language pack
Memory errorLarge PDFUse chunked extraction, reduce workers
Corrupt PDFFile damagedTry qpdf --check or mutool clean

Dependencies

Required:

  • Python 3.10+
  • pdfplumber or pypdf

Optional (for advanced features):

  • pytesseract + tesseract-ocr (for OCR)
  • Pillow (for image processing)
  • camelot-py (for complex tables)

References

  • Skill Seekers PDF Support: https://github.com/jmagly/Skill_Seekers/blob/main/docs/PDF_MCP_TOOL.md
  • REF-001: Production-Grade Agentic Workflows (BP-1, BP-4)
  • REF-002: LLM Failure Modes (Archetype 1-4 mitigations)

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
102
Repository forks
15
Repository npm downloads, 7 days
2,424
7-day trend score
42

Stars and forks are for the whole GitHub repository, not this skill alone. Downloads are for the repository's npm package. Refreshed 21 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/jmagly/aiwg/pdf-extractor/badge)](https://verified-skill.com/skills/jmagly/aiwg/pdf-extractor)

Something wrong with this skill or its page? Tell us.