Moving from ChatGPT to Claude


From Joe Lapin, via LinkedIn visit

How to Migrate from ChatGPT to Claude

Custom GPTs, Knowledge Bases & Conversation History

A practical, step-by-step guide for moving your AI workflow from OpenAI to Anthropic

February 2026



Why Migrate?

If you’ve built up months or years of context in ChatGPT — custom GPTs, conversation history, uploaded knowledge files — switching platforms can feel like starting from scratch. It doesn’t have to be.

This guide walks you through how to export everything from ChatGPT, extract what matters, and rebuild it inside Claude using Projects, memory, and user preferences. Whether you’re a power user with dozens of custom GPTs or someone who just wants to carry over your conversation context, this guide has you covered.


What You’ll Need

  • Your ChatGPT data export (Settings → Data Controls → Export Data in ChatGPT)

  • A Claude account (Pro recommended for Projects, but free works for basics)

  • Python 3 installed (only needed if your conversations.json is too large to open directly)

  • 30–60 minutes depending on how much you’re migrating


The Concept Map: ChatGPT → Claude

Before diving in, here’s how the major features translate between platforms:


ChatGPT Feature

Claude Equivalent

Key Differences

Custom GPTs

Claude Projects

Projects are personal workspaces (not shareable as public apps)

GPT System Prompt

Project Custom Instructions

Same concept, paste directly

GPT Knowledge Files

Project Knowledge

Upload files as project context

ChatGPT Memory

Claude Memory

Claude builds memory over time from conversations

Custom Instructions

User Preferences

Set in Settings; applies across all conversations

Conversation History

Project Knowledge (distilled)

Best migrated as summarized insights, not raw transcripts


Step 1: Export Your ChatGPT Data

OpenAI lets you request a full data export. Here’s how:

  1. Go to ChatGPT Settings → Data Controls → Export Data

  2. Click “Export” and confirm via the email you receive

  3. Download the ZIP file when it arrives (usually within an hour)

  4. Unzip it — you’ll find several files inside


What’s in Your Export

The export contains several files, but only a few matter for migration:


File

What It Is

Migration Value

conversations.json

All your chats

HIGH — Contains everything: messages, GPT configs, context

chat.html

Readable version

MEDIUM — Searchable in browser if file isn’t too large

*.json (named files)

Custom GPT configs

HIGH — May contain GPT system prompts and settings

Image files

Uploaded images

LOW — Only needed if specific images are referenced

Heads up: Your conversations.json file may be hundreds of megabytes. If it’s over ~50 MB, your browser probably won’t open it. Don’t worry — Step 2 covers how to handle that.


Step 2: Extract What Matters

You don’t need to migrate everything. Focus on the conversations and GPTs that you actually use and that contain real strategic value.


Option A: Your File Is Small Enough to Open

If your chat.html file opens in a browser, use Ctrl+F / Cmd+F to search for the names of your most important conversations and custom GPTs. Copy the relevant content and move to Step 3.


Option B: Your File Is Too Large (Most Common)

Use a simple Python script to extract conversation titles. Save this script in the same folder as your conversations.json file and run it:


python3 extract_titles.py


The script reads your conversations.json and creates a small CSV file listing every conversation with its title, date, message count, and whether it was a Custom GPT conversation. You can then review this list and decide which conversations are worth migrating.

A sample extraction script is included at the end of this guide in the Appendix. You can also ask Claude to write one tailored to your specific needs.


What to Prioritize

  • Custom GPT system prompts — these translate directly to Claude Project instructions

  • Knowledge files you uploaded to GPTs — re-upload them as Claude Project knowledge

  • High-value conversations — strategic work, research, recurring workflows

  • Personal preferences and context — how you like to work, your role, your style


Skip: one-off questions, casual chats, anything you wouldn’t go back and reference. Migrating everything creates noise, not value.

Step 3: Rebuild in Claude

Now that you’ve identified what matters, here’s how to set it up in Claude.


3A: Migrate Custom GPTs → Claude Projects

Each Custom GPT becomes a Claude Project. The mapping is straightforward:


  1. Create a new Project in Claude (click “+ New Project” in the sidebar)

  2. Paste the system prompt from your GPT into the Project’s custom instructions field

  3. Upload knowledge files to the Project’s knowledge section

  4. Start a conversation in the Project to test that it behaves as expected


Pro tip: If you have many knowledge files and hit upload limits, consolidate related files into a single document. You can ask Claude to help merge and organize them — it’s very good at this.


3B: Migrate Conversation Knowledge

Raw conversation exports are messy — full of filler, back-and-forth, and tangents. The real value is the distilled insights, decisions, and frameworks that emerged.


Best approach: Upload your important conversations to Claude and ask it to extract the key insights, decisions, and strategic outputs into a clean summary document. Then upload that summary as Project knowledge.


This is dramatically more useful than uploading raw transcripts. A 2 MB conversation might distill down to a 20 KB knowledge document that Claude can actually reference effectively.


3C: Set Up Your Preferences

ChatGPT’s “Custom Instructions” map to two places in Claude:


  • User Preferences (Settings → User Preferences): Set your role, communication style, and how you like Claude to respond. This applies across all conversations.

  • Claude’s Memory: Claude builds memory over time as you interact with it. You can also explicitly tell Claude things to remember (e.g., “Remember that I work in higher ed marketing”) and it will retain that context.


3D: Let Memory Build Naturally

You don’t have to migrate every detail upfront. Claude’s memory system learns your preferences, context, and patterns over time. After a few weeks of regular use, Claude will have rebuilt much of the contextual awareness you had in ChatGPT — often in ways that are more useful because it’s based on how you actually work, not stale history.


Step 4: Organize for the Long Term

Once you’ve migrated the essentials, set yourself up for ongoing success:


  • One Project per workflow or client — keep contexts separate and focused

  • Keep knowledge files updated — replace outdated docs as your work evolves

  • Use conversations within Projects — every conversation in a Project inherits that Project’s knowledge and instructions

  • Periodically distill insights — when a Project conversation generates something valuable, add it to the Project’s knowledge base


Common Pitfalls to Avoid


  • Don’t upload raw conversation dumps as knowledge. Distill first. Claude works best with clean, structured context — not 400 MB of raw chat logs.

  • Don’t try to replicate ChatGPT exactly. Claude has different strengths. Lean into Projects and memory rather than fighting the platform.

  • Don’t migrate everything at once. Start with your top 3–5 most-used GPTs and build from there.

  • Don’t skip the consolidation step. Eight 500 KB files merged into one 160 KB knowledge doc is more useful than the originals.


Quick-Start Checklist

  1. Export your data from ChatGPT (Settings → Data Controls → Export)

  2. Unzip and locate conversations.json + any named .json files

  3. Run the title extraction script to see what you have

  4. Identify your top Custom GPTs and high-value conversations

  5. Extract GPT system prompts and paste into Claude Project instructions

  6. Distill important conversations into clean knowledge docs

  7. Upload knowledge docs and files to your Claude Projects

  8. Set your User Preferences and start building memory

Appendix: Title Extraction Script

Save this Python script in the same folder as your conversations.json and run it with python3. No extra libraries needed.


import json, csv, os

from datetime import datetime


with open("conversations.json", "r") as f:

    convos = json.load(f)


rows = []

for c in convos:

    title = c.get("title", "(untitled)")

    t = c.get("create_time", 0)

    date = datetime.fromtimestamp(t).strftime("%Y-%m-%d") if t else ""

    gpt = "Yes" if c.get("conversation_template_id","").startswith("g-") else ""

    msgs = sum(1 for n in c.get("mapping",{}).values()

              if n.get("message") and n["message"].get("content",{}).get("parts"))

    rows.append([title, date, msgs, gpt])


rows.sort(key=lambda x: x[1], reverse=True)

with open("titles.csv", "w", newline="") as f:

    w = csv.writer(f)

    w.writerow(["Title","Date","Messages","Custom GPT"])

    w.writerows(rows)


print(f"Exported {len(rows)} conversations to titles.csv")


This script requires only Python 3 with no additional packages. It will generate a small CSV file you can open in any spreadsheet app or upload to Claude for analysis.

Previous
Previous

Perfume Houses