Jobber/.env.example
ilia b72612fd06 Add Basic Auth gate, job owner context, and multi-tenant job isolation.
- Server: auth routes, owner profile on requests/jobs/pipeline, migrations
- Client: BasicAuthAppGate, SSE/API session handling, profile quick switch
- Tests: tracer-links, ghostwriter request-context mock, pipeline coverage
- Env examples for cron and optional basic auth credentials

Made-with: Cursor
2026-04-20 21:34:42 -04:00

100 lines
4.8 KiB
Plaintext

# =============================================================================
# Job Ops - Environment Variables
# Copy this file to .env and fill in your values
# =============================================================================
MODEL=google/gemini-3-flash-preview
# Self-hosted Ollama (e.g. 16GB GPU): use a 22B-class model for scoring/tailoring; pull the tag on the server first.
# MODEL=mistral-small:22b
# LLM_PROVIDER=ollama
# LLM_BASE_URL=http://127.0.0.1:11434
# Heavier option (~may offload layers to CPU on 16GB): qwen2.5:32b
# DEPRECATED (auto-copied to LLM_API_KEY for compatibility)
# OPENROUTER_API_KEY=your_openrouter_api_key_here
# Self-hosted RxResume base URL, e.g., http://rxresume.local.net
# Defaults to https://v4.rxresu.me
# RXRESUME_URL=
# Optional: load resume JSON from disk instead of the RxResume API (scoring, tailoring, cover letters).
# Path is absolute or relative to the orchestrator process cwd (often `orchestrator/` when using `npm run dev` there).
# Takes precedence over Settings → local path. PDF export still uses RxResume when enabled.
# Example (monorepo): hand-authored v5 JSON may live under `data/resumes/` (that folder is gitignored by default).
# If you use seeded search profiles with `resumeLocalPath` + login auto-activate, leave this unset so Settings → local path wins.
# JOBOPS_LOCAL_RESUME_PATH=../data/resumes/ilia-dobkin.json
# RXResume credentials for PDF generation
# Create an account at: https://v4.rxresu.me
RXRESUME_EMAIL=your_email@example.com
RXRESUME_PASSWORD=your_password_here
# Optional: Basic Auth for write access
# the app is fully unauthenticated if this isn't set, which is the default
# When set, all write actions (POST/PATCH/DELETE) require Basic Auth.
# Optional second user (e.g. paired with a second search profile / `basicAuthUser` in profile JSON):
# BASIC_AUTH_USER_2=
# BASIC_AUTH_PASSWORD_2=
# Example local pairing with DB-seeded profiles (change passwords before exposing the UI):
# BASIC_AUTH_USER=ilia
# BASIC_AUTH_PASSWORD=changeme-ilia
# BASIC_AUTH_USER_2=cherepaha
# BASIC_AUTH_PASSWORD_2=changeme-cherepaha
BASIC_AUTH_USER=
BASIC_AUTH_PASSWORD=
# Optional: client build only — skip RxResume steps in the onboarding wizard (search without PDF export).
# Prefer setting `JOBOPS_LOCAL_RESUME_PATH` above: the API tells the UI to skip RxResume onboarding automatically.
# Otherwise: copy `orchestrator/.env.example` → `orchestrator/.env` and set VITE_SKIP_RXRESUME_ONBOARDING=true
# (Vite only reads `orchestrator/.env`, not this root file.)
# Docker: Vite vars need IMAGE BUILD time (Dockerfile ARG / docker-compose build args), not runtime .env.
# VITE_SKIP_RXRESUME_ONBOARDING=true
# Public base URL used to generate tracer links when PDFs are created by
# background/pipeline runs (where request host cannot be inferred).
# Example: JOBOPS_PUBLIC_BASE_URL=https://jobops.example.com
JOBOPS_PUBLIC_BASE_URL=
# =============================================================================
# Gmail OAuth (Tracking Inbox) - optional
# =============================================================================
# Required to connect Gmail from the UI.
GMAIL_OAUTH_CLIENT_ID=
GMAIL_OAUTH_CLIENT_SECRET=
# Optional override for OAuth callback URL.
# If unset, defaults to <request-origin>/oauth/gmail/callback
# GMAIL_OAUTH_REDIRECT_URI=http://localhost:3005/oauth/gmail/callback
# =============================================================================
# UKVisaJobs (UK visa sponsorship jobs) - optional
# =============================================================================
# Provide email/password for automatic login and token refresh.
# See extractors/ukvisajobs/README.md for detailed instructions.
UKVISAJOBS_EMAIL=
UKVISAJOBS_PASSWORD=
UKVISAJOBS_HEADLESS=true
# =============================================================================
# Adzuna (multi-country API source) - optional
# =============================================================================
# Register at https://developer.adzuna.com/admin/access_details
ADZUNA_APP_ID=
ADZUNA_APP_KEY=
# Default cap per search term (orchestrator run budget / settings can override).
# ADZUNA_MAX_JOBS_PER_TERM=50
# API page size (Adzuna max 50).
# ADZUNA_RESULTS_PER_PAGE=50
# Optional global `where` text for Adzuna. Pipeline runs usually use Settings → search cities
# instead; leave unset unless you want a fixed location for standalone extractor use.
# ADZUNA_LOCATION_QUERY=
# Only for running the extractor CLI alone; the pipeline sets country from your run (us / ca / gb / …).
# ADZUNA_COUNTRY=gb
# =============================================================================
# JobSpy - Job search configuration
# =============================================================================
# Filter for remote-only jobs (default: 0 = disabled)
# JOBSPY_IS_REMOTE=0