Skip to content
Back to skills

Scan Organizer

ASecurity

OCR, classify, and organize scanned PDFs into category subfolders using AI vision and language models. Processes medical, financial, insurance, tax, legal, personal, and household documents.

  • 71 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 29, 2026
toolsgobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 17 files and shows the line behind each finding

Scanned May 29, 2026

npx -y skills add FDU-INS/Insurance-Skills --skill scan-organizer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scan Organizer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Scan Organizer
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/fdu-ins-scan-organizer/badge)](https://www.skillsdirectory.com/skills/fdu-ins-scan-organizer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: scan-organizer
description: OCR, classify, and organize scanned PDFs into category subfolders using AI vision and language models. Processes medical, financial, insurance, tax, legal, personal, and household documents.
metadata: {"openclaw":{"emoji":"πŸ“„","requires":{"bins":["uv"]},"install":[{"id":"uv-sync","kind":"uv","label":"Install scan-organizer dependencies"}]}}
---

# Scan Organizer

Processes scanned PDFs β€” extracts text (Docling + vision OCR), classifies by category using an LLM, and organizes into subfolders with markdown and metadata sidecars. Works with any OpenAI-compatible API (Ollama, OpenAI, OpenRouter, etc.).

## Categories

`medical`, `financial`, `insurance`, `tax`, `legal`, `personal`, `household`, `other`

## Commands

Run from the scan-organizer project directory.

### Process new scans
```bash
uv run scan-organizer process
```

### Dry run (classify without moving)
```bash
uv run scan-organizer process --dry-run
```

### Process a single file
```bash
uv run scan-organizer process --file /path/to/scan.pdf
```

### Force re-process all (including already processed)
```bash
uv run scan-organizer process --force
```

### Check inbox status
```bash
uv run scan-organizer status
```

### Undo a processed file (move back to inbox)
```bash
uv run scan-organizer undo <filename>
```

### Reclassify a file
```bash
uv run scan-organizer reclass <filename>
```

## Output Format

All commands output JSON to stdout. Progress messages go to stderr.

### Process output
```json
{"processed": 3, "skipped": 7, "errors": 0, "results": [{"file": "...", "category": "medical", "title": "...", "destination": "..."}]}
```

### Status output
```json
{"inbox_count": 10, "unprocessed": 3, "already_processed": 7, "categories": {"medical": 2, "financial": 3}}
```

## Architecture

1. **Extract** β€” Docling parses PDF structure and native text
2. **OCR** β€” Pages with sparse text are rendered to PNG and sent to a vision model
3. **Classify** β€” Merged text sent to a language model for categorization
4. **Organize** β€” PDF moved to `<scans_dir>/<category>/`, `.md` + `.meta.json` sidecars written

## File Organization

```
<scans_dir>/
  medical/
    2025-12-20_lab-results_0003.pdf
    2025-12-20_lab-results_0003.md
    2025-12-20_lab-results_0003.meta.json
  financial/
    ...
  .manifest.json    <- tracks all moves for undo
```

## Tips

- Run `status` first to see how many unprocessed scans are in the inbox
- Use `--dry-run` to preview classifications before moving files
- The manifest tracks all moves for auditability
- If a classification is wrong, use `reclass` to undo and re-process

Files in this skill

  • .env.example893 B
  • .gitignore184 B
  • .python-version5 B
  • README.md4.4 KB
  • SKILL.md2.6 KB
  • pyproject.toml443 B
  • src/scan_organizer/__init__.py67 B
  • src/scan_organizer/classify/categories.py1.9 KB
  • src/scan_organizer/classify/classifier.py2.7 KB
  • src/scan_organizer/cli.py2.8 KB
  • src/scan_organizer/config.py1.3 KB
  • src/scan_organizer/extract/docling_extractor.py1.9 KB
  • src/scan_organizer/extract/glm_ocr.py1.8 KB
  • src/scan_organizer/extract/merger.py1018 B
  • src/scan_organizer/organize/manifest.py2.1 KB
  • src/scan_organizer/organize/organizer.py3.1 KB
  • src/scan_organizer/pipeline.py4.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.