# AI Conversation Organizer — ChatGPT + Claude + Gemini (`mxjarvis.builds2/conversation-organizer-mcp`) Actor

You have hundreds of AI conversations scattered across ChatGPT, Claude, and Gemini. You can't find anything. This analyzes your exports and shows you abandoned projects, repeated questions, contradicting decisions, and ideas you forgot. You already did the thinking — you just lost it.

- **URL**: https://apify.com/mxjarvis.builds2/conversation-organizer-mcp.md
- **Developed by:** [Zayith Pinto](https://apify.com/mxjarvis.builds2) (community)
- **Categories:** AI, Agents, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$1.00 / execution plan

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## AI Conversation Organizer — ChatGPT + Claude + Gemini

**You’ve already done the thinking. This finds it.**

**Analyze your AI history without exposing the parts you want to keep private.**

You have hundreds of AI conversations. You cannot find anything. You have already solved problems you are still struggling with. This shows you what you forgot.

**Runs as an Apify actor. Your AI conversation exports are processed in Apify's secure cloud environment and are not sent to our servers or any third party. Output reports are returned to your Apify account. Temporary files are cleaned up after each run. Revive research is a separate opt-in step and uses public web search because it checks current market viability.**

### Privacy-first flow
Before any report is generated, the server:
1. reads your local exports
2. scans every conversation for sensitivity
3. shows you flagged conversations first
4. waits for your privacy choice

Modes:
- **Safe mode** (default): auto-excludes flagged sensitive conversations
- **Review mode**: shows flagged conversations and lets you pick include/exclude
- **Full mode**: includes everything

You can also add personal boundary filters like:
- `health`
- `relationships`
- `finances`

And filter by:
- category
- keyword
- date range
- platform
- sensitivity score

### What it finds in the free call
- every project you started and abandoned
- decisions you made but never followed through on
- questions you re-asked across platforms and over time
- problems you already solved and then forgot
- your activity patterns and drop-off windows
- source conversation references for projects, decisions, and dormant ideas when available

### What the paid $1 call gives you
- a clean markdown knowledge base
- projects grouped into one place
- action items pulled out
- contradictions flagged
- continue-this prompts for abandoned work
- source conversation links/references where supported
- an opt-in revive workflow for abandoned projects

### Quick start
```bash
cd conversation-organizer-mcp
npm install
npm run build
npm start
````

Paste `CLAUDE_DESKTOP_CONFIG.json` into Claude Desktop, point it at a folder or zip of your exports, run the privacy scan first, then choose Safe, Review, or Full mode before generating the report.

# Actor input Schema

## `action` (type: `string`):

Which workflow to run inside the actor.

## `plan` (type: `string`):

Plan tier used for gated outputs.

## `mode` (type: `string`):

How aggressively the actor should exclude sensitive conversations.

## `boundaryKeywords` (type: `array`):

Always exclude conversations containing these names or topics.

## `includeConversationIds` (type: `array`):

Optional review-mode allowlist of flagged conversation IDs.

## `excludeConversationIds` (type: `array`):

Optional blocklist of conversation IDs to exclude.

## `categories` (type: `array`):

Optional sensitivity-category filter.

## `keywords` (type: `array`):

Optional keyword filter.

## `dateStart` (type: `string`):

Optional ISO date filter start, for example 2026-01-01.

## `dateEnd` (type: `string`):

Optional ISO date filter end, for example 2026-12-31.

## `platforms` (type: `array`):

Restrict analysis to selected platforms.

## `minSensitivityScore` (type: `number`):

Optional lower bound for the sensitivity score filter.

## `projectName` (type: `string`):

Required for revive\_project. The abandoned idea or project to research.

## `contextTitles` (type: `array`):

Optional original conversation titles to use as restart context when reviving a project.

## `inputZipBase64` (type: `string`):

Optional base64-encoded export zip passed directly to the actor.

## `chatgptExportJson` (type: `string`):

Raw JSON string for the ChatGPT export conversations array.

## `claudeExportJson` (type: `string`):

Raw JSON string for the Claude conversations array.

## `geminiExportJson` (type: `string`):

Raw JSON string for the Gemini conversations array.

## Actor input object example

```json
{
  "action": "free_report",
  "plan": "free",
  "mode": "safe",
  "boundaryKeywords": [],
  "includeConversationIds": [],
  "excludeConversationIds": [],
  "categories": [],
  "keywords": [],
  "platforms": [],
  "contextTitles": []
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("mxjarvis.builds2/conversation-organizer-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("mxjarvis.builds2/conversation-organizer-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call mxjarvis.builds2/conversation-organizer-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=mxjarvis.builds2/conversation-organizer-mcp",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "AI Conversation Organizer — ChatGPT + Claude + Gemini",
        "description": "You have hundreds of AI conversations scattered across ChatGPT, Claude, and Gemini. You can't find anything. This analyzes your exports and shows you abandoned projects, repeated questions, contradicting decisions, and ideas you forgot. You already did the thinking — you just lost it.",
        "version": "0.1",
        "x-build-id": "IP3zwAnf07tZFzLYw"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/mxjarvis.builds2~conversation-organizer-mcp/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-mxjarvis.builds2-conversation-organizer-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/mxjarvis.builds2~conversation-organizer-mcp/runs": {
            "post": {
                "operationId": "runs-sync-mxjarvis.builds2-conversation-organizer-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/mxjarvis.builds2~conversation-organizer-mcp/run-sync": {
            "post": {
                "operationId": "run-sync-mxjarvis.builds2-conversation-organizer-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "action": {
                        "title": "Action",
                        "enum": [
                            "launch_docs",
                            "privacy_scan",
                            "free_report",
                            "paid_knowledge_base",
                            "revive_project",
                            "return_to_safe_mode"
                        ],
                        "type": "string",
                        "description": "Which workflow to run inside the actor.",
                        "default": "free_report"
                    },
                    "plan": {
                        "title": "Plan",
                        "enum": [
                            "free",
                            "paid"
                        ],
                        "type": "string",
                        "description": "Plan tier used for gated outputs.",
                        "default": "free"
                    },
                    "mode": {
                        "title": "Privacy mode",
                        "enum": [
                            "safe",
                            "review",
                            "full"
                        ],
                        "type": "string",
                        "description": "How aggressively the actor should exclude sensitive conversations.",
                        "default": "safe"
                    },
                    "boundaryKeywords": {
                        "title": "Boundary keywords",
                        "type": "array",
                        "description": "Always exclude conversations containing these names or topics.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "includeConversationIds": {
                        "title": "Include conversation IDs",
                        "type": "array",
                        "description": "Optional review-mode allowlist of flagged conversation IDs.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "excludeConversationIds": {
                        "title": "Exclude conversation IDs",
                        "type": "array",
                        "description": "Optional blocklist of conversation IDs to exclude.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "categories": {
                        "title": "Sensitivity categories",
                        "type": "array",
                        "description": "Optional sensitivity-category filter.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Optional keyword filter.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "dateStart": {
                        "title": "Date start",
                        "type": "string",
                        "description": "Optional ISO date filter start, for example 2026-01-01."
                    },
                    "dateEnd": {
                        "title": "Date end",
                        "type": "string",
                        "description": "Optional ISO date filter end, for example 2026-12-31."
                    },
                    "platforms": {
                        "title": "Platforms",
                        "type": "array",
                        "description": "Restrict analysis to selected platforms.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "minSensitivityScore": {
                        "title": "Minimum sensitivity score",
                        "minimum": 0,
                        "maximum": 1,
                        "type": "number",
                        "description": "Optional lower bound for the sensitivity score filter."
                    },
                    "projectName": {
                        "title": "Project name",
                        "type": "string",
                        "description": "Required for revive_project. The abandoned idea or project to research."
                    },
                    "contextTitles": {
                        "title": "Context titles",
                        "type": "array",
                        "description": "Optional original conversation titles to use as restart context when reviving a project.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "inputZipBase64": {
                        "title": "Export zip as base64",
                        "type": "string",
                        "description": "Optional base64-encoded export zip passed directly to the actor."
                    },
                    "chatgptExportJson": {
                        "title": "ChatGPT export JSON",
                        "type": "string",
                        "description": "Raw JSON string for the ChatGPT export conversations array."
                    },
                    "claudeExportJson": {
                        "title": "Claude export JSON",
                        "type": "string",
                        "description": "Raw JSON string for the Claude conversations array."
                    },
                    "geminiExportJson": {
                        "title": "Gemini export JSON",
                        "type": "string",
                        "description": "Raw JSON string for the Gemini conversations array."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
