* feat(settings): add rxresume mode and v5 api key settings * feat(server): add mode-aware rxresume adapter with auto v5-first selection * refactor(server): route settings profile and pdf generation through rxresume adapter * feat(api): support rxresume v4/v5 in onboarding and settings routes with ok/meta responses * feat(client): add rxresume mode selector and v5 api key setup flow * docs: document rxresume auto mode with v5-first self-hosted setup * test: verify dual-mode rxresume support and ci parity checks * comments * services folder * correct types for v5 * tests and docs fix * Fix RxResume auto fallback and route API consistency * warning for both being set * simpler response * onboarding component improvements, v5 check still not working * fix list resume endpoint... * fix api endpoints to latest v5 docs * don't show the entire project field on v5 * remove auto entirely * formatting * ci green * v5 has a different resume schema * remove redundant check * remove requirement that only one must be specified * consolidate sections * base resume can be v4 or v5 * saving now works * status indicator * actually render some pills * reason for failure * fix apikey verification * dedupe isValidatingMode * reefactoor * simplification? * refactor? * ci passing * remove auto from docs * tailoring is schema dependent * skills object tighter * remove redundant text * fix lint * mode
3.2 KiB
id, title, description, sidebar_position
| id | title | description | sidebar_position |
|---|---|---|---|
| self-hosting | Self-Hosting (Docker Compose) | Deploy JobOps with Docker Compose and configure onboarding integrations. | 1 |
The easiest way to run JobOps is via Docker Compose. The app is self-configuring and guides you through setup on first launch.
Prerequisites
- Docker Desktop or Docker Engine + Compose v2
1) Start the stack
No environment variables are required to boot:
docker compose up -d
This pulls the pre-built image from GHCR and starts the API, UI, and scrapers in one container.
To build locally instead:
docker compose up -d --build
2) Access the app and onboard
Open:
- Dashboard:
http://localhost:3005
The onboarding wizard helps you validate and save:
- LLM Provider: OpenRouter by default (or OpenAI/Gemini/local URL).
- PDF Export: RxResume credentials for PDF generation.
- Template Resume: Choose a base resume from your RxResume account.
Settings are saved to the local database.
Gmail OAuth (Tracking Inbox)
If you want Gmail integration, configure OAuth credentials.
1) Create Google OAuth credentials
In Google Cloud:
- Configure OAuth consent screen.
- Enable Gmail API.
- Create OAuth client ID (
Web application). - Add redirect URI:
http://localhost:3005/oauth/gmail/callback- Or your production URL, for example
https://your-domain.com/oauth/gmail/callback
2) Configure environment variables
GMAIL_OAUTH_CLIENT_ID(required)GMAIL_OAUTH_CLIENT_SECRET(required)GMAIL_OAUTH_REDIRECT_URI(optional, recommended in production)
3) Restart and connect
- Restart container
- Open Tracking Inbox and click Connect Gmail
For a full step-by-step setup, exact scope requirements, and troubleshooting, see:
Email-to-job matching overview
flowchart TD
A[Recruitment email arrives in Gmail] --> B[Smart Router AI analyzes content]
B --> C{How confident is the match?}
C -->|95-100%| D[Auto-linked to job]
D --> E[Timeline updated automatically]
C -->|50-94%| F[Goes to Inbox for review with suggested job match]
C -->|<50%| G{Is it relevant?}
G -->|Yes| H[Goes to Inbox as orphan]
G -->|No| I[Ignored]
F --> J{User review}
H --> J
J -->|Approve| K[Linked to job + timeline update]
J -->|Ignore| L[Marked not relevant]
Persistent data
./data bind-mount stores:
- SQLite DB:
data/jobs.db - Generated PDFs:
data/pdfs/
Public demo mode
Set DEMO_MODE=true for sandbox deployments.
Behavior in demo mode:
- Works locally: browsing/filtering/status/timeline edits
- Simulated: pipeline run/summarize/process/rescore/pdf/apply
- Blocked: settings writes, DB clear, backups
- Auto-reset: every 6 hours
Updating
git pull
docker compose pull
docker compose up -d
Self-hosted Reactive Resume
If you self-host Reactive Resume, set:
RXRESUME_URL=http://rxresume.local.netRXRESUME_MODE=auto(recommended) orv5/v4to force a specific API versionRXRESUME_API_KEY=...(or configurerxresumeApiKeyin JobOps Settings)
auto mode is the default and prefers v5 when an API key is configured, then falls back to v4 credentials.