# career-ops — Environment Variables # Copy this file to .env and fill in your values. # # cp .env.example .env # ── Gemini Integration ──────────────────────────────────────────────────────── # Required for: node gemini-eval.mjs "JD text here" # Free API key: https://aistudio.google.com/apikey # Free tier: 15 RPM / 1M tokens/day with gemini-2.5-flash (no billing needed) GEMINI_API_KEY=your_gemini_api_key_here # ── Optional: Override default Gemini model ─────────────────────────────────── # Default: gemini-2.5-flash (free-tier, fast) # Alternatives: gemini-1.5-flash, gemini-1.5-pro, gemini-2.5-flash-thinking-exp # GEMINI_MODEL=gemini-2.5-flash # ── OpenRouter Integration (openrouter-runner.mjs — no-CLI, $0 free tier) ───── # Required for: node openrouter-runner.mjs # Free API key: https://openrouter.ai → Sign Up → Keys # Free tier: hundreds of models at $0 cost OPENROUTER_API_KEY=sk-or-v1-paste-your-key-here # Optional: pin a specific model instead of using auto-rotation. # When set, the runner uses this model directly and skips blacklist/rotation. # Model names are fetched live from the OpenRouter API at runtime — no hardcoding. # CAREER_OPS_MODEL=google/gemini-2.5-pro:free # ── OpenAI-compatible eval (openai-eval.mjs) ───────────────────────────────── # Evaluate offers with ANY OpenAI-compatible endpoint (OpenAI, OpenRouter, # Together, Groq, DeepSeek, Zhipu GLM, LM Studio, llama.cpp, vLLM, Ollama /v1). # Required for: node openai-eval.mjs "JD text here" # OPENAI_API_KEY=your_provider_key_here # OPENAI_BASE_URL=https://api.openai.com/v1 # e.g. https://openrouter.ai/api/v1 # OPENAI_MODEL=gpt-4o-mini # e.g. deepseek/deepseek-chat # ── Other integrations (add your own below) ────────────────────────────────── # ANTHROPIC_API_KEY=your_anthropic_key_here # For Claude-based workflows # ══════════════════════════════════════════════════════════════════════════════ # Plugins (opt-in) — keys for bundled plugins. Enable each in config/plugins.yml. # Plugins are OFF by default; the core needs none of these. See plugins/README.md. # ══════════════════════════════════════════════════════════════════════════════ # ── apify plugin (provider) ── keyed job source via an Apify actor # Token: https://console.apify.com/account/integrations # APIFY_TOKEN=apify_api_paste-your-token-here # ── notion plugin (export + search) ── mirror your tracker to a Notion DB # Integration token: https://www.notion.so/my-integrations # NOTION_ACCESS_TOKEN=ntn_paste-your-internal-integration-secret # NOTION_PARENT_PAGE_ID=your-notion-parent-page-id # ── gmail plugin (ingest) ── pull job leads from a Gmail label # OAuth client (Desktop) + a refresh token from the consent flow: # https://console.cloud.google.com/apis/credentials # GMAIL_CLIENT_ID=your-client-id.apps.googleusercontent.com # GMAIL_CLIENT_SECRET=your-client-secret # GMAIL_REFRESH_TOKEN=your-refresh-token