Choose a way
CareerBot runs anywhere Docker runs, or on Cloudflare Workers; pick where it runs and where its database lives.
CareerBot is open source. You can run your own copy: for yourself, or for a few people you add. A copy has two parts:
- The web app: the screens you use. In Docker it's a Node server; on Cloudflare it's a Worker.
- Convex: the database, which also runs the background work (AI steps, syncing, reminders) and sign-in. It runs in Convex's cloud or on your own machine.
A copy you run yourself is a self-hosted copy: / is the app, people sign in with a username and password, and the
first account (made with a setup code) owns the copy and adds everyone else. Google and GitHub sign-in are optional.
Where the web app runs
Docker on a server
A server with Coolify or Dokploy, which run the repository's
compose.yaml, give it a domain and handle HTTPS. Or plain Docker Compose behind your own
proxy.
The usual way for a copy others can reach
A VPS with Coolify ready to install
Hetzner and other providers offer a server with Coolify ready to install. Then follow the Coolify page. See A VPS with Coolify.
The shortest way to a server
Your own computer
Docker Desktop or OrbStack on a Mac, or Docker on Linux or Windows. CareerBot opens at http://localhost:3000. See
Your own computer.
Just for you, nothing to pay for hosting
There's also a fourth way: Cloudflare Workers, the way careerbot.dev itself runs, with Convex's cloud as the database. It takes more steps and parts of it are untested for anyone but the maintainer.
Where Convex runs
Convex’s cloud
Convex's free plan, with nothing extra to run. Create a project at dashboard.convex.dev and copy its URL and a
production deploy key into .env.
The easy choice for a copy just for you
Self-hosted Convex
Runs in the same compose file, on the same machine (COMPOSE_PROFILES=self-hosted). Your data stays in a Docker volume
called convex-data.
What .env.example is set up for
More on both, the dashboard and upgrades: Convex.
What you need
| What | Why | Roughly what it costs |
|---|---|---|
| Docker with Compose v2.20 or later | Runs the app (and self-hosted Convex) | Free |
| Git | Gets the code | Free |
| A server, or your own computer | Somewhere to run it | Your computer: nothing. A small VPS: a few euros or dollars a month |
| A domain (on a server) | Three or four hostnames, one per part | A domain you already have works |
| Convex | The database | The free cloud plan, or nothing extra when self-hosted |
| An OpenRouter key | Pays for every AI task | Pay as you go at OpenRouter; you set CareerBot's monthly AI budget |
| An Apollo key (optional) | Finds companies, their details and job postings | Apollo's own plans and credits |
| A Brave Search key (optional) | Finds a company's job board when its website doesn't link one | Brave's own plans |
| A Google OAuth client (optional) | Google sign-in and Google Drive | Free |
| A GitHub OAuth app (optional) | GitHub sign-in | Free |
CareerBot's images come ready-made from each release, for amd64 and arm64 machines: the server downloads them and builds nothing. On a VPS, pick one with at least 4 GB of memory.
Keys and where each one goes: Keys and accounts.
The code
git clone https://github.com/careerbotdev/careerbot.git