AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Doc Reader

skill-jansenanalytics-claudex-doc-reader · by JansenAnalytics

PDF/DOCX/XLSX/image document intelligence — text extraction, table parsing, OCR, financial statement analysis, contract clause detection, document classification, and format conversion. Use when reading, analyzing, extracting data from, or converting documents.

No reviews yet
0 installs
32 views
0.0% view→install

Install

$ agentstack add skill-jansenanalytics-claudex-doc-reader

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-jansenanalytics-claudex-doc-reader)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Doc Reader? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Doc Reader — Document Intelligence

Extract text, tables, and insights from any document format. Handles native text PDFs, scanned documents (OCR), Word files, spreadsheets, images, and HTML.

Quick Reference

SCRIPTS=${CLAUDE_SKILLS_DIR:-$HOME/.claude-agent/.claude/skills}/doc-reader/scripts

# Extract text from any document
python3 $SCRIPTS/extract.py document.pdf

# Extract tables only
python3 $SCRIPTS/extract.py document.pdf --mode tables

# Full analysis (text + tables + metadata)
python3 $SCRIPTS/extract.py document.pdf --mode summary

# OCR scanned document
python3 $SCRIPTS/extract.py scanned.pdf --mode ocr --ocr-lang eng+nor

# Analyze document (classify, extract figures, structure)
python3 $SCRIPTS/analyze.py document.pdf --extract-figures

# Convert between formats
python3 $SCRIPTS/convert.py report.pdf report.md
python3 $SCRIPTS/convert.py data.xlsx data.csv

Scripts

1. extract.py — Universal Text & Table Extraction

The core extraction engine. Supports PDF, DOCX, XLSX, CSV, images, HTML, and plain text.

Extraction Modes

| Mode | Description | |------|-------------| | text | Full text extraction (default). Auto-falls back to OCR for scanned pages | | tables | Table extraction only (as markdown, CSV, or JSON) | | meta | Document metadata (author, dates, page count, file size) | | summary | Text + tables + metadata combined | | ocr | Force OCR on all pages (for fully scanned documents) | | layout | Layout-preserving text extraction via pdftotext (columns, spacing) | | images | Extract embedded images from PDF |

Usage
# Basic text extraction
python3 extract.py report.pdf
python3 extract.py contract.docx
python3 extract.py financials.xlsx

# Specific pages
python3 extract.py annual-report.pdf --pages 1-5,8,12-15

# Table extraction as JSON
python3 extract.py financials.pdf --mode tables --table-format json

# OCR with Norwegian + English
python3 extract.py scan.pdf --mode ocr --ocr-lang eng+nor

# Full summary to file
python3 extract.py report.pdf --mode summary --output /tmp/report-summary.txt

# JSON output (for programmatic use)
python3 extract.py report.pdf --mode summary --json --output /tmp/report.json

# Excel: specific sheet
python3 extract.py data.xlsx --sheet "Revenue" --mode tables

# Layout mode (preserves columns in multi-column PDFs)
python3 extract.py newspaper.pdf --mode layout

# Limit page count
python3 extract.py huge-doc.pdf --max-pages 20
Supported Formats

| Format | Extensions | Text | Tables | OCR | Metadata | |--------|-----------|------|--------|-----|----------| | PDF | .pdf | ✅ PyMuPDF + pdftotext | ✅ pdfplumber + tabula | ✅ Tesseract | ✅ | | Word | .docx, .doc | ✅ python-docx | ✅ | ❌ | ✅ | | Excel | .xlsx, .xls | ✅ openpyxl | ✅ | ❌ | ✅ | | CSV | .csv | ✅ | ✅ | ❌ | ⚠️ | | Images | .png, .jpg, .tiff, .bmp | ✅ OCR | ❌ | ✅ | ✅ Pillow | | HTML | .html, .htm | ✅ BeautifulSoup | ❌ | ❌ | ⚠️ | | Text | .txt, .md, .json, .xml | ✅ | ❌ | ❌ | ⚠️ |

PDF Extraction Strategy

The extractor uses a multi-strategy approach:

  1. PyMuPDF (primary) — fastest, best for native text PDFs
  2. pdftotext (layout mode) — preserves column layouts, spacing
  3. Tesseract OCR (fallback) — auto-triggered when a page has

e.g., tesseract-ocr-deu (German), tesseract-ocr-fra (French)


---

## Agent Workflow

### When to use which script:

1. **"Read this PDF"** → `extract.py ` (default text mode)
2. **"Get the tables from this document"** → `extract.py  --mode tables`
3. **"What kind of document is this?"** → `analyze.py `
4. **"Extract all dollar amounts"** → `analyze.py  --extract-figures`
5. **"Is this contract safe to sign?"** → `analyze.py  --type contract`
6. **"Parse this financial statement"** → `analyze.py  --type financial`
7. **"Convert this PDF to markdown"** → `convert.py .pdf .md`
8. **"OCR this scanned document"** → `extract.py  --mode ocr`
9. **"What's on pages 5-10?"** → `extract.py  --pages 5-10`

### For large documents:
- Use `--pages` to extract specific sections
- Use `--max-pages 20` to limit processing
- Use `--mode meta` first to check page count before full extraction
- Use `--json` output for programmatic post-processing

### For scanned/image-heavy PDFs:
- Try `--mode text` first (auto-OCR fallback)
- If quality is poor, use `--mode ocr` to force full OCR
- Add `--ocr-lang eng+nor` for multi-language documents
- Use `--mode layout` for column-heavy layouts

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [JansenAnalytics](https://github.com/JansenAnalytics)
- **Source:** [JansenAnalytics/claudex](https://github.com/JansenAnalytics/claudex)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.