(start-to-finish)
1) Open the GPT builder
- Go to chatgpt.com/gpts/editor (or ChatGPT → Explore GPTs → + Create). You’ll see two tabs: Create (chatty) and Configure (form).
- The Create tab can scaffold a bot by conversation; the Configure tab is where you lock in settings.
2) Fill out “Configure”
- Name & description: what your GPT is for.
- Instructions: how it should think/act; include style rules and what to use tools for (Browse, Knowledge, Actions). OpenAI recommends explicit, step-wise directions.
- Conversation starters: 2–4 prompts to guide new users.
- Capabilities: toggle Browse, Code Interpreter, Image generation as needed. (You can add the others later.)
3) Add Knowledge (optional but powerful)
- Upload up to 20 files, each up to 512 MB, ~2,000,000 tokens per file. Text is indexed; images are ignored for search. Use PDFs, Markdown, CSVs, etc.
- Tip: keep each file scoped (one topic per file) to improve retrieval quality.
4) Add Actions (call your APIs)
Actions let your GPT hit external services (e.g., start a crawl, fetch a dataset). You define them with an OpenAPI schema inside the builder.
Quick recipe
- In Configure → Actions → Add Action, paste a minimal OpenAPI schema like this (edit URL/params):
openapi: 3.1.0
info: { title: Demo API, version: "1.0.0" }
servers: [{ url: https://api.example.com }]
paths:
/runs:
post:
operationId: startRun
description: Start a new job with a list of URLs and a phrase.
security: [{ ApiKeyAuth: [] }]
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
urls: { type: array, items: { type: string } }
phrase: { type: string }
responses:
"200":
description: Started
content: { application/json: { schema: { type: object, properties: { runId: { type: string } } } } }
/runs/{runId}:
get:
operationId: getRun
parameters: [{ in: path, name: runId, required: true, schema: { type: string } }]
responses: { "200": { description: Status } }
components:
securitySchemes:
ApiKeyAuth: { type: apiKey, in: header, name: Authorization }
- Auth: choose API key or OAuth and enter instructions/headers per your API.
- Test each operation in the builder’s tester. Follow OpenAI’s production notes (timeouts, rate limits, errors).
If you’re using Apify as your backend, create actions for “start actor run”, “check status”, “get dataset”, using their HTTPS endpoints; the flow is identical.
5) Share & permissions
- Save the GPT, then choose visibility: Only me, Anyone with link, or organizational sharing (varies by plan). (Visibility options live in the builder header.)
6) Operating tips
- Put tool-use rules in Instructions (e.g., “When the user says ‘scan’, call
startRun; pollgetRununtilSUCCEEDED; then summarize the dataset”). - Keep Knowledge current—replace files rather than endlessly appending massive tomes; the index is recreated on upload.
- Treat Actions like production code: validate inputs, return clean JSON, handle 4xx/5xx gracefully.
One-page checklist (copy/paste)
- Open chatgpt.com/gpts/editor → Name, Description.
- Write Instructions with explicit tool rules.
- Knowledge: upload scoped files (≤20 files, ≤512 MB each).
- Actions: paste OpenAPI, set auth, test endpoints.
- Toggle Browse/Code/Images as needed.
- Set sharing, Save, done.