Uploading a PDF straight into ChatGPT works — until the document is long, the conversation matters, or the content is sensitive. Converting to clean Markdown first fixes all three, and takes one drag on your Mac.
Why raw PDF upload lets you down
It eats the context window. Attached files are re-read on every turn, and PDF is the most expensive format to carry — page layout, image passes, extraction noise. Long chats degrade, then hit the wall.
The model reads your PDF worse than you think. Page headers, footers, and column breaks land mid-sentence in the extraction. You can't see it; the model can.
Your document goes to the cloud as-is. Sometimes fine. For a contract, a patient letter, or an unpublished draft — maybe not. Markdown lets you review and trim before anything is sent.
The two-minute workflow
Drop the PDF into Milldown.Conversion runs entirely on your Mac — scanned PDFs are OCR'd on-device automatically.
Run the one-click Clean Up.Repeated page headers, footers and stranded page numbers disappear — the junk that quietly degrades ChatGPT's answers.
Paste the Markdown into ChatGPT.Or drag it in as a real .md file. Ask your question; the whole context window is now available for the conversation.
Measured: across our public benchmark corpus, Markdown cuts PDF token cost by 68–90% versus native PDF upload. On a 21-page research paper that's 14,816 tokens instead of an estimated 46,316–77,816 — the difference between a document that dominates the conversation and one that leaves room for it.
When the PDF is too big even as Markdown
Split it by headings instead of page counts: Milldown's chunk export cuts at section boundaries, so each piece you paste is a self-contained thought. For recurring use, build a Context Pack — one merged, table-of-contents'd file per project. The full playbook is in how to fix "context window exceeded".
Works the same for Claude, Gemini, and your own pipeline