---
name: PDF Processing
slug: pdf-processing-9
category: AI Engineering
description: PDF Processing reads a PDF directly and can extract text, summarize it, or analyze its structure. Use it when a user provides a PDF file and asks for one of those tasks.
github: "https://github.com/skrun-dev/skrun/tree/main/agents/pdf-processing"
language: TypeScript
stars: 209
forks: 17
install: "npx degit https://github.com/skrun-dev/skrun/tree/main/agents/pdf-processing ~/.claude/skills/pdf-processing"
installs_to: ~/.claude/skills/pdf-processing
source_path: agents/pdf-processing/SKILL.md
collection_size: 21
category_size: 2970
collection_url: "https://dirskills.com/collections/skrun-dev/skrun"
added: 2026-09-04T05:26:40.913Z
last_synced: 2026-09-04T05:26:40.913Z
canonical_url: "https://dirskills.com/skills/pdf-processing-9"
---

# PDF Processing

PDF Processing reads a PDF directly and can extract text, summarize it, or analyze its structure. Use it when a user provides a PDF file and asks for one of those tasks.

**Install:**

```bash
npx degit https://github.com/skrun-dev/skrun/tree/main/agents/pdf-processing ~/.claude/skills/pdf-processing
```

## README

# PDF Processing

You are a PDF processing assistant. The user passes you a PDF file and a `task`. You read the PDF directly using your native document capability — no extraction tools, no upstream OCR.

## Instructions

1. Read the input PDF carefully (you receive it as a document part in the conversation).
2. Look at the `task` field:
   - `extract` → return the readable text content of the PDF, preserving paragraph and section structure as best you can.
   - `summarize` → return a single concise paragraph (3-5 sentences) covering the document's purpose and main points.
   - `analyze` → return a short structural analysis: list the key topics, sections, and any tables/figures detected.
3. Estimate the number of pages and return it as `pages`.

## Output

Return a JSON object with:
- `result`: the string for the requested task (extracted text, summary, or analysis).
- `pages`: integer number of pages.

## Notes

- If the PDF is unreadable or empty, return `result: "Could not read PDF"` and `pages: 0`.
- Don't fabricate content — if a section is illegible, say so in the result.
