PDF Conversion Router
Route every PDF conversion through a short analysis step before choosing tools or CLI flags.
The goal is not "extract the most text". The goal is:
- preserve structure
- preserve attachment between labels and values
- choose the most faithful output shape
- avoid noisy defaults when a better route exists
When to Use
- The user wants a PDF converted into another format.
- The requested output is
.md, .html, .txt, .json, .docx, or structured notes.
- The PDF may be scanned, OCR-heavy, table-heavy, slide-based, medical, academic, or multi-column.
Core Rule
Never start with one fixed default pipeline.
Always:
- classify the PDF
- classify the target output
- choose the strongest route for that combination
- validate the result on representative sections
- if needed, retry with better settings before delivering
Heuristics are starting points, not guarantees.
Do not promote one flag combination into a universal default just because it worked well on one PDF.
Prefer document-specific evidence over habit.
Primary Engine Rule
Use opendataloader-pdf as the primary conversion engine for every PDF conversion task by default.
This skill should assume:
opendataloader-pdf is always the first conversion attempt
- other tools are used to classify, validate, OCR, inspect, or support cleanup
- other extractors are not the default replacement for the main conversion route
Use other tools only for one of these reasons:
- quick classification of the PDF
- OCR preprocessing before conversion
- validation against layout-preserving text
- manual repair when the generated output is still noisy
- fallback only if
opendataloader-pdf cannot produce a usable result
Step 1: Classify the Source PDF
Identify the document class as quickly as possible:
- Native digital PDF with selectable text
- OCR PDF with noisy text
- Image-only/scanned PDF
- Slide deck / presentation export
- Medical or lab report
- Table-heavy business/finance document
- Narrative report / letter / article
- Mixed layout document with diagrams, tables, and prose
Useful fast checks:
pdfinfo input.pdf
pdftotext -layout input.pdf -
If text is missing or very poor, treat OCR as required.
Document-Type Heuristics
Use these as default starting points:
medical / lab report
markdown-with-html + --table-method cluster + --image-output off
slide deck / PowerPoint export
markdown-with-html + --image-output off
add --table-method cluster only if the default route under-structures important tabular content
if tables are visually obvious but missing or badly fused, treat this as a detection problem, not a Markdown formatting problem
if the selected route already reconstructs a real table but clips leading characters at column boundaries, treat that as a boundary-splitting defect, not a missing-table failure
narrative / article / letter
start with markdown or text
use markdown-with-html only if structure clearly matters
table-heavy business / finance PDF
start with markdown-with-html
add --table-method cluster when rows or columns flatten
scanned / image-heavy PDF
OCR first, then convert with opendataloader-pdf
mixed-layout PDF
prefer markdown-with-html
validate one easy section and one hard section before accepting output
Step 2: Choose the Output Shape
Pick the output that best matches the document and the user's goal.
markdown-with-html
Use by default when the user wants Markdown and fidelity matters.
Prefer this for tables, medical reports, slides, mixed-layout PDFs, and anything likely to break in pure Markdown.
markdown
Use only when clean plain Markdown matters more than layout fidelity.
html
Use when visual structure matters more than LLM readability.
text
Use for quick linear extraction, narrative documents, or when structure is unimportant.
json
Use when downstream machine processing matters more than human readability.
docx
Use when the user wants editable office output and layout reconstruction matters.
Step 3: Choose the Extraction Route
For OpenDataLoader CLI
Use OpenDataLoader as the default route.
Preferred defaults:
For Markdown output with fidelity priority:
-f markdown-with-html
For medical PDFs:
add --table-method cluster
For table-heavy PDFs:
add --table-method cluster
For slide decks:
start without --table-method cluster
add it only after a structure check shows meaningful improvement
if a pseudo-table is already collapsed inside one detected row, changing only the Markdown flavor usually will not fix it
if the active engine build recovers the pseudo-table structure, prefer fixing residual boundary artifacts before escalating to hybrid/full mode
For conversions where images are not requested:
add --image-output off
For slide decks, medical reports, and structure-sensitive PDFs:
prefer validating both the
1---2name: pdf-conversion-router3description: Use when converting a PDF into another format such as Markdown, HTML, text, JSON, DOCX, or structured notes and the agent must choose the best extraction route, settings, and cleanup strategy for maxi4---567# PDF Conversion Router89Route every PDF conversion through a short analysis step before choosing tools or CLI flags.1011The goal is not "extract the most text". The goal is:12- preserve structure13- preserve attachment between labels and values14- choose the most faithful output shape15- avoid noisy defaults when a better route exists1617## When to Use1819- The user wants a PDF converted into another format.20- The requested output is `.md`, `.html`, `.txt`, `.json`, `.docx`, or structured notes.21- The PDF may be scanned, OCR-heavy, table-heavy, slide-based, medical, academic, or multi-column.2223## Core Rule2425Never start with one fixed default pipeline.2627Always:281. classify the PDF292. classify the target output303. choose the strongest route for that combination314. validate the result on representative sections325. if needed, retry with better settings before delivering3334Heuristics are starting points, not guarantees.3536Do not promote one flag combination into a universal default just because it worked well on one PDF.37Prefer document-specific evidence over habit.3839## Primary Engine Rule4041Use `opendataloader-pdf` as the primary conversion engine for every PDF conversion task by default.4243This skill should assume:44- `opendataloader-pdf` is always the first conversion attempt45- other tools are used to classify, validate, OCR, inspect, or support cleanup46- other extractors are not the default replacement for the main conversion route4748Use other tools only for one of these reasons:49- quick classification of the PDF50- OCR preprocessing before conversion51- validation against layout-preserving text52- manual repair when the generated output is still noisy53- fallback only if `opendataloader-pdf` cannot produce a usable result5455## Step 1: Classify the Source PDF5657Identify the document class as quickly as possible:5859- Native digital PDF with selectable text60- OCR PDF with noisy text61- Image-only/scanned PDF62- Slide deck / presentation export63- Medical or lab report64- Table-heavy business/finance document65- Narrative report / letter / article66- Mixed layout document with diagrams, tables, and prose6768Useful fast checks:6970```bash71pdfinfo input.pdf72pdftotext -layout input.pdf -73```7475If text is missing or very poor, treat OCR as required.7677## Document-Type Heuristics7879Use these as default starting points:8081- medical / lab report82 `markdown-with-html + --table-method cluster + --image-output off`8384- slide deck / PowerPoint export85 `markdown-with-html + --image-output off`86 add `--table-method cluster` only if the default route under-structures important tabular content87 if tables are visually obvious but missing or badly fused, treat this as a detection problem, not a Markdown formatting problem88 if the selected route already reconstructs a real table but clips leading characters at column boundaries, treat that as a boundary-splitting defect, not a missing-table failure8990- narrative / article / letter91 start with `markdown` or `text`92 use `markdown-with-html` only if structure clearly matters9394- table-heavy business / finance PDF95 start with `markdown-with-html`96 add `--table-method cluster` when rows or columns flatten9798- scanned / image-heavy PDF99 OCR first, then convert with `opendataloader-pdf`100101- mixed-layout PDF102 prefer `markdown-with-html`103 validate one easy section and one hard section before accepting output104105## Step 2: Choose the Output Shape106107Pick the output that best matches the document and the user's goal.108109- `markdown-with-html`110 Use by default when the user wants Markdown and fidelity matters.111 Prefer this for tables, medical reports, slides, mixed-layout PDFs, and anything likely to break in pure Markdown.112113- `markdown`114 Use only when clean plain Markdown matters more than layout fidelity.115116- `html`117 Use when visual structure matters more than LLM readability.118119- `text`120 Use for quick linear extraction, narrative documents, or when structure is unimportant.121122- `json`123 Use when downstream machine processing matters more than human readability.124125- `docx`126 Use when the user wants editable office output and layout reconstruction matters.127128## Step 3: Choose the Extraction Route129130### For OpenDataLoader CLI131132Use OpenDataLoader as the default route.133134Preferred defaults:135136- For Markdown output with fidelity priority:137 `-f markdown-with-html`138139- For medical PDFs:140 add `--table-method cluster`141142- For table-heavy PDFs:143 add `--table-method cluster`144145- For slide decks:146 start without `--table-method cluster`147 add it only after a structure check shows meaningful improvement148 if a pseudo-table is already collapsed inside one detected row, changing only the Markdown flavor usually will not fix it149 if the active engine build recovers the pseudo-table structure, prefer fixing residual boundary artifacts before escalating to hybrid/full mode150151- For conversions where images are not requested:152 add `--image-output off`153154- For slide decks, medical reports, and structure-sensitive PDFs:155 prefer validating both the