Migrate Your ChatGPT History to Claude: A Bulk Export Workflow That Actually Works
Migrate Your ChatGPT History to Claude: A Bulk Export Workflow That Actually Works
You've spent six months talking to ChatGPT. Hundreds of conversations. Bug fixes, brainstorming sessions, half-finished essays, the prompt that finally cracked your tone of voice. Then Claude releases a model that's noticeably better for your work, and you want to move.
The problem: there's no migration button. ChatGPT lets you "Export Data" — you get a 60 MB ZIP of opaque JSON. Claude lets you import a project knowledge base — but it wants Markdown, not JSON. Manual copy-paste of every conversation is a non-starter when you have 300 of them.
This post walks through the workflow that actually works in 2026: bulk-export your AI history to a single Markdown file, then drop it into Claude as project knowledge.
Why bulk export beats "export data"
ChatGPT's official Export Data feature ships you a 60 MB ZIP with conversations.json, where every chat is a tree of messages with internal IDs, model versions, and platform metadata. It's designed for GDPR compliance, not for moving to another AI tool.
Claude doesn't read JSON files for project knowledge. It expects Markdown — clean, headed, paragraph-shaped, the way it processes anything else. So even after you unzip the ChatGPT export, you have to write a parser that pulls out the user/assistant messages and renders them back into Markdown.
A bulk export to Markdown skips both steps. You get a single chatgpt-history.md file shaped like:
# Conversation: Cleaning up the prompt for the launch email
## User
Help me rewrite this email — it's too long and the second paragraph buries the lede.
## Assistant
Here's a tightened version. The biggest change is moving the offer to paragraph one...
---
# Conversation: TypeScript generics for the new API
## User
I'm trying to write a generic that...
This format drops directly into a Claude project as context. No parser, no glue code.
The workflow (v1.1.2 of Web2MD)
Web2MD's v1.1.2 release in May 2026 added a manual queue workflow that handles every major AI platform identically. Here's the flow:
Step 1. Open ChatGPT in any tab. Click the conversation you want to migrate.
Step 2. Click the Web2MD icon. The popup shows two modes when you're on an AI platform:
- Send page → AI — push web content INTO the AI (the original Web2MD use case)
- Export ChatGPT chats — pull conversations OUT to Markdown (the new mode in v1.1.2)
Click Export ChatGPT chats.
Step 3. Click "Add to queue & convert next page". The current chat gets converted and queued. The popup primes you to switch tabs.
Step 4. Switch to the next conversation in your sidebar. The popup auto-detects the new conversation. Click again.
Step 5. Repeat for every conversation you want to migrate. The queue persists when you close the popup or switch tabs (chrome.storage.local-backed in v1.1.2 — earlier versions lost the queue when the popup closed).
Step 6. When done, click "Download .md". You get a single file with all conversations concatenated, separated by ---.
Step 7. In Claude, create a new Project. Drop the .md file into the project knowledge sidebar.
That's it. Claude now has the full context of every conversation you migrated.
Why this works on every AI platform
The same workflow works on:
- ChatGPT (chatgpt.com) — extracts every user/assistant turn from the active conversation
- Claude (claude.ai) — same; useful when moving away from Claude or archiving for compliance
- Gemini (gemini.google.com) — handles the multi-turn dialog format
- DeepSeek (deepseek.com) — Chinese AI platform; works because the extension reads from inside your real browser session
- Perplexity (perplexity.ai) — extracts the question + final answer + sources
Each platform has its own URL pattern, its own DOM, its own quirks. v1.1.0 shipped per-platform extractors that all return the same Markdown shape (## User / ## Assistant headings). v1.1.2 makes them all queue into the same export bundle.
The "title fallback" problem
Earlier versions of Web2MD had a recurring complaint: every queued conversation showed up as "Untitled" in the queue list. The reason was structural — AI chat extractors put the conversation title as the first H1 inside the Markdown body, not in the metadata. v1.1.2 added a five-tier title fallback chain: H1 → first plain line → URL slug → "Untitled #N". Now the queue list shows what each conversation is actually about, which matters when you're queuing 50 of them and need to spot-check before downloading.
Practical tips
Filter before you queue. ChatGPT's sidebar lets you search your history. If you only want to migrate work conversations, filter by keyword first, then queue. You'll have a cleaner Claude project.
Mind the file size. Claude Projects accept up to ~200 KB of knowledge per file. If your export is 5 MB, split it: one file per topic, or one file per month. The queue downloads as one file but you can split it on --- boundaries afterward.
Don't migrate everything. AI conversations have a long tail of garbage. The throwaway debugging session from three months ago, the conversation where you tried six bad prompts before getting to a working one — none of that helps Claude. Migrate the conversations where the output was actually good.
Use it for archival, not just migration. Even if you're not switching platforms, exporting your AI history to Markdown means you have it in a portable, plain-text format. Search it with grep. Embed it for RAG. Drop excerpts into Obsidian. The format outlives the platform.
Pricing
Single-conversation export from any AI chat page is free in Web2MD — open the conversation, hit Export, download. Bulk export of multiple queued conversations is gated behind Pro ($9/month or $49.99/year, or $149 lifetime) because it requires the queue + concat infrastructure that v1.1.2 ships.
If you're migrating once, the 7-day Pro trial covers it. If you want ongoing exports for compliance, archival, or cross-platform research, the monthly tier pays for itself the first time you avoid the 4-hour copy-paste afternoon.
Try it
Install Web2MD from the Chrome Web Store. Open ChatGPT or Claude. Hit the icon. Pick Export mode. Queue what you want. Hit Download. Move on with your life.
Sometimes the right tool for migration is just a thin extension that reads what's already on your screen and writes it to a file you control.