Cindy Zhu.
Free guides
Make money Claude

Stop wasting Claude tokens on PDFs (MarkItDown)

Hey, it's Cindy ๐ŸŒฑ If you've ever dropped a chunky PDF into Claude and watched it eat through your usage, this is the fix.
btw the waitlist for AI System Club is now open! If you're keen on using AI to automate your content, video editing, job search, business or build AI agents, feel free to sign up (only if you want to hehe). Ps. the waitlist gets first dibs:)
๐Ÿ’ก The one move. Convert the file to Markdown once, then feed Claude the Markdown. You strip out the per-page image overhead and keep the headings, lists and tables that actually carry the meaning.

the problem

Why PDFs quietly burn your tokens

When you upload a PDF, Claude doesn't get a tidy text file. It gets extracted text plus a picture of every page, so it can also see charts, scans and layout. Those page images are far heavier than plain words, and that is where your tokens go.

It's read as images Each page is rendered as a picture so the model can see figures and scans, and image tokens dwarf the cost of the same content as text.
The layout tax Columns, tables and headers force the model to work out structure from pixels, piling tokens on top of the words themselves.
Every upload re-sends it Re-attach the same PDF in a fresh chat and you pay the full token cost again, from zero, every single time.
Long chats re-read it As the conversation grows, that heavy document keeps riding along in context and quietly inflates every reply.
๐ŸŽฏ The savings are real, not magic. People who convert first often cut what a document costs by a big chunk, some report up to 70%, because the image overhead disappears and only structured text is left. How much you save depends on the file.

the tool

Meet MarkItDown, free from Microsoft

MarkItDown is a lightweight open-source utility built by Microsoft's AutoGen team. It converts almost any file into clean Markdown made specifically for LLMs, keeping headings, lists and tables intact so the structure survives the trip. It is free and open source under the MIT license, so there is nothing to buy.

Documents PDF, Word (.docx) and PowerPoint (.pptx) all come out as clean, readable Markdown.
Spreadsheets Excel (.xlsx) and CSV convert to Markdown tables Claude can actually reason over.
Web and data HTML, JSON and XML flatten into structured text instead of raw markup.
Images OCR pulls the text out of a picture, and EXIF metadata comes along with it.
Audio Speech gets transcribed to text, so a recording becomes something you can search.
YouTube and links Pass a YouTube URL and it pulls the transcript, so you skip the video entirely.

the setup

Set it up in your terminal

  1. ๐Ÿ Check you have Python 3.10 or newer. MarkItDown runs on Python. Check your version, and if you don't have it, grab it free from python.org.
    python3 --version
  2. ๐Ÿ“ฆ Install MarkItDown with every format. The [all] part pulls in support for PDF, Office files, audio and the rest in one go.
    pip install 'markitdown[all]'
  3. โœ… Convert your first file. Point it at any file and save the Markdown. Open the result, or paste it straight into Claude instead of the original.
    markitdown report.pdf -o report.md
๐Ÿ’ก One command, any file type. The same markitdown command works for Word, Excel and slides too. Just swap the file name.
markitdown deck.pptx -o deck.md
markitdown budget.xlsx -o budget.md
markitdown contract.docx -o contract.md

hands-free

Connect it to Claude so files convert themselves

The same project ships a second piece, markitdown-mcp, an MCP server that hands Claude a single tool called convert_to_markdown. Once it's connected, you point Claude at a file or a link and it runs the conversion itself, so only the lean Markdown lands in the chat instead of the raw document. No API keys, no config.

  1. ๐Ÿ–ฅ๏ธ Add it to Claude Code. One line in your terminal. This uses uvx from Astral's uv, or you can run pip install markitdown-mcp first.
    claude mcp add markitdown -- uvx markitdown-mcp
  2. ๐Ÿงฉ Or add it to Claude Desktop. Drop this into your MCP config, then fully quit and reopen the app so it loads.
    {
      "mcpServers": {
        "markitdown": {
          "command": "uvx",
          "args": ["markitdown-mcp"]
        }
      }
    }
  3. ๐ŸŽฏ Point Claude at the file. Give it a path or a link and let it convert before it reads. What enters the chat is clean Markdown, not a heavy PDF.
paste into Claude
Convert the file at [path or URL] to clean Markdown using MarkItDown, then read only the Markdown version. Give me a 5-point summary and pull any numbers into a table. Don't load the original PDF into context.

the honest bit

Where it wins and where it doesn't

๐Ÿšซ Text wins, visuals get flattened. Markdown keeps words, headings and tables, but a chart or a photo becomes a caption or a rough description at best. If the meaning of a page lives in a graph, keep the original PDF for that page and convert the rest. Scanned or photographed PDFs have no text layer either, so MarkItDown falls back to OCR, which is slower and less exact. Skim the output before you trust it.
๐Ÿ’ก What it costs: nothing. MarkItDown and its MCP server are both free and open source under the MIT license. The only spend is your normal Claude usage, which is the exact thing you are cutting down here.

the links

Grab it

  • MarkItDown on GitHub, the library, the markitdown command line tool, and the markitdown-mcp server all live in this one repo. Free, MIT licensed.
Want to build little AI systems like this with me? Inside AI System Club I teach people to set up AI that actually saves them time and money, step by step, from scratch. Doors open soon and founding pricing dies at close. ๐ŸŒฑ Join the waitlist (link in my bio too).
the waitlist is now open

AI System Club is launching soon

Build AI systems with me through recorded lessons you can follow at your own pace. Join the waitlist for first access and the founding price.

btw this list gets first dibs
the moment doors open :)