ai markdownmarkdown converterchatgpt contextweb2mdllm tools

AI Markdown: How I Turned Any Web Page Into Clean Context for ChatGPT and Claude

Zephyr Whimsy2026-11-077 min read

If you work with AI tools every day, you have run into this: you find a page worth discussing, you copy it, you paste it into ChatGPT or Claude, and the model gets half of it wrong. Not because the model is bad. Because what you pasted was not the page. It was navigation menus, cookie banners, three "Related Posts" blocks, and a sidebar ad, with the actual article buried somewhere in the middle.

"AI markdown" is the shorthand for fixing that: converting a web page into clean Markdown that a language model can actually read. Markdown is the right target because it is what models were trained on. Headings stay headings. Lists stay lists. Code stays code. No HTML noise, no CSS, no invisible tracking divs eating your context window.

I have been testing the available options for a few months while building Web2MD. Here is the honest state of things.

What good AI markdown actually looks like

Start with the output, because that is what matters. Here is a chunk of a typical documentation page after conversion:

## Installing the SDK

Install via npm:

```bash
npm install @example/sdk

The SDK requires Node 18 or later. If you are on an older version, use the legacy tag instead.

| Option | Type | Default | | --- | --- | --- | | timeout | number | 5000 | | retries | number | 3 |

Note: The retries option counts total attempts, not additional attempts after the first.


Notice what survived: the heading hierarchy, the fenced code block with its language tag, the table, the blockquote callout, and the inline code formatting. Those are not cosmetic. When you ask a model "what is the default timeout," it finds the answer in a table row instead of guessing from a wall of prose.

Now compare that to a bad conversion of the same page:

```markdown
Home About Docs Pricing Blog Contact

Skip to main content

Installing the SDK Install via npm: npm install @example/sdk The SDK
requires Node 18 or later. If you are on an older version, use the legacy
tag instead. Option Type Default timeout number 5000 retries number 3
Note: The retries option counts total attempts, not additional attempts
after the first.

Was this page helpful? Yes No

(c) 2026 Example Inc. Privacy Policy Terms of Service

Same page. Table flattened into a word salad. Code block indistinguishable from prose. Nav and footer included. Feed that to a model and ask about defaults, and you will get a confident wrong answer, because timeout number 5000 retries number 3 is genuinely ambiguous.

That is the whole game. Structure preserved, chrome stripped.

The tools, honestly

Jina Reader is the one most people reach for first, and for good reason. Prefix any URL with r.jina.ai/ and you get markdown back. No install, works from curl, works in a script, free tier is generous. For public pages it is excellent, and I still use it inside automation. Its limit is structural: it fetches the page from Jina's servers. That server has no idea who you are. Any page behind a login, a paywall, a company SSO, or a soft bot wall is simply unreachable. You get a login screen converted to very clean markdown.

Firecrawl is the serious option if you are building a pipeline. Crawl a whole site, handle JavaScript rendering, structured extraction, decent API. If your job is "ingest 5,000 pages into a vector store," use Firecrawl. It is also an API product with API pricing and an API key to manage, which is more ceremony than most people want for "I just need this one article in my chat."

MarkDownload is the long-running browser extension in this space, open source, and it solves the auth problem the same way Web2MD does: it runs in your browser, so it sees what you see. Its default workflow is download-a-file, which is fine if you are building a notes vault, less fine if your next move is pasting into a chat window.

So: all three are real tools with real strengths. The gaps I kept hitting were specific.

Where Web2MD fits

Web2MD is a Chrome extension. It converts the page you are currently looking at into markdown, in the page, with no server round trip. That design choice drives everything else:

Logged-in and paywalled pages work. This is the main one. Internal Confluence or Notion pages, a subscription publication you pay for, Gmail threads, admin dashboards, docs behind a corporate SSO. The extension reads the DOM that your browser already rendered with your session. There is no second fetch that has to re-authenticate. I tested this on a Notion workspace and an internal wiki, and both converted cleanly where a server-side fetch returned a login redirect.

Nothing leaves your machine. Conversion happens in the browser with a local DOM-to-markdown pass. For anything work-related this matters more than feature lists do, and it is hard to claim for a tool that proxies your URLs through someone else's infrastructure.

There is a token counter. This turned out to be the feature I did not expect to care about and now use constantly. It shows the token count of the output before you send it. A long documentation page is often 20k-40k tokens, and knowing that upfront is the difference between a clean conversation and a context window you blew on one paste. If it is too big, you trim the sections you do not need first.

No API key. Install, click, done. For a quick one-off that friction difference is the whole decision.

The limits, stated plainly

I would rather you know these before installing than after:

  • Chrome only. Chromium browsers work (Edge, Brave, Arc). Firefox and Safari do not, and there is no timeline I can promise. If you are a Firefox user, MarkDownload is your answer and I would genuinely point you there.
  • Free tier is 3 conversions per day. That is enough to evaluate it honestly and enough for occasional use. It is not enough for daily heavy work. Pro is $9/month for unlimited.
  • No bulk crawling. One page at a time, the page you are on. If you need to convert a thousand URLs, this is the wrong tool and Firecrawl is the right one.
  • Heavy JavaScript apps are hit or miss. If content renders inside a canvas element or a deeply virtualized list, extraction quality drops. Most sites are fine. Some are not.

A practical workflow

What I actually do: open the page, convert, check the token count, then either copy the markdown or use send-to-AI to push it straight into ChatGPT or Claude. For research sessions I convert three or four sources into one scratch file, then paste the whole thing with a question at the top. Models handle that far better than four separate pastes, because they can cross-reference.

If you are curious about the mechanics of what gets stripped and why, I wrote more about that in the HTML to Markdown walkthrough, and the convert web page to markdown for ChatGPT post covers the send-to-AI side in detail.

Pick the right one

  • Public pages, scriptable, free: Jina Reader.
  • Bulk ingestion into a pipeline: Firecrawl.
  • Firefox, or you want a file in a notes vault: MarkDownload.
  • Logged-in pages, privacy, and you want token counts before you paste: Web2MD.

Those are not competing claims so much as different jobs. Most people I talk to end up using two of them.

If the logged-in-page problem is the one you keep hitting, Web2MD is free for 3 conversions a day, which is enough to find out on your own pages whether the output is good. That is the only test that counts.

Related Articles

Most Read

last 30 days
  1. #1Can Claude Read Reddit? Why It Can't — And How to Fix It (2026)
  2. #2HTML vs Markdown for LLMs: I Wasted 67% of My Tokens for a Year
  3. #3Reducing Token Waste in ChatGPT and Claude: 7 Techniques That Cut Costs 72%
  4. #4Obsidian Web Clipper Official Plugin 2026: Complete Guide + When You Need More
  5. #5Reddit JSON API vs Scraping: The Honest 2026 Comparison for Developers

Latest Articles