Environment variables

.env reference #

Copy from .env.example on raven setup. Secrets stay local — never commit .env.

Sender identity #

SENDER_NAME=Your Name
SENDER_EMAIL=you@example.com

Used by raven send and draft disclaimers.

Gmail OAuth #

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
GMAIL_REFRESH_TOKEN=     # populated by raven auth-gmail

Create OAuth credentials in Google Cloud Console with Gmail send scope.

Outlook OAuth #

MS_CLIENT_ID=
MS_CLIENT_SECRET=
MS_REFRESH_TOKEN=        # populated by raven auth-outlook

Register an app in Azure Portal with Mail.Send permission.

Optional API keys #

VariablePurpose
GEMINI_API_KEYAI email polish (raven draft --gemini)
HF_TOKENHuggingFace read token for openjobdata sync (fixes HTTP 401)
APIFY_TOKENApify fallback for hiring.cafe scraper
HIRING_CAFE_ENABLED=1Opt into hiring.cafe tier in discover

Path overrides #

VariableDefaultPurpose
RAVEN_PORTALSconfig/portals.ymlPortals config path
RAVEN_JOBS_DBdata/jobs.dbSQLite index path
HIRING_CAFE_APIFY_ACTORmanojachari/hiring-cafe-scraperApify actor ID

Loading order #

  1. .env at repo root (loaded by bash scripts and Node jobs)
  2. Shell environment variables override .env
  3. CLI flags override config files