This pulls the text out of a PDF and marks it up as Markdown, inferring structure from the way the document looks: text noticeably larger than the body becomes a heading, bullet glyphs become list items, and paragraph breaks are preserved. The result is a plain text file you can paste into notes, a documentation repository, an issue tracker or a chat assistant. That last use is increasingly the common one — pasting a document's text into an LLM rather than handing over the file itself, which keeps the document on your machine and costs far fewer tokens than an image of every page. Everything runs in your browser through PDF.js. The limitation to know before you start is that this reads the text layer, so a scanned PDF with no text layer yields nothing until it has been through OCR.
How the structure is inferred
A PDF does not record that something is a heading. It records glyphs with positions and font sizes, and the heading-ness is something a human infers visually. The conversion does the same inference: text set noticeably larger than the surrounding body is promoted to a heading, with the largest becoming a top-level one.
That works well on documents with a consistent typographic hierarchy — reports, papers, manuals — and less well on marketing material where size is used for emphasis rather than structure. Expect to fix a few headings by hand on a design-led document; expect very little work on a plain one.
What does not survive
Tables are the big one. A PDF table is lines and positioned text with no notion of rows and columns, so it comes out as a sequence of cell contents rather than a Markdown table. Complex tables need rebuilding by hand or a purpose-built extraction tool.
Multi-column layouts can interleave, because reading order in the file does not always match visual order. Images are not carried into a text format at all. Footnotes usually land at the end of the page's text rather than beside their reference.
Markdown or plain text
Choose Markdown when the destination understands it: documentation, a wiki, an issue tracker, a note-taking app, or an assistant that benefits from seeing the document's hierarchy.
Choose plain text when you want the words and nothing else — for search, for quoting, or for pasting somewhere that would render the hash symbols literally. The extraction is identical; only the formatting applied to the output differs.