LLM API Keys
JobFoundry's core value is fit scoring and resume tailoring. Both require an LLM. Once your server is running, add your API key in the dashboard under Settings → LLM Provider (or in the .env file for manual installs) and you're done.
Free tier options are available from several providers without requiring a credit card. Because terms and quotas can change over time, check each provider's current terms. JobFoundry works with any OpenAI-compatible endpoint — just set the base URL and key in Settings.
Recommended Free Providers
Curated picks from mnfst/awesome-free-llm-apis (CC0 1.0 — public domain). Each is OpenAI SDK-compatible unless noted. Check each provider's Terms of Service — some free tiers restrict commercial use.
| Provider | Free Tier | Card Required | Base URL for JobFoundry | Get Key |
|---|---|---|---|---|
| Google Gemini | 1,500 req/day (Gemini Flash) | No | https://generativelanguage.googleapis.com/v1beta/openai | aistudio.google.com → |
| Mistral AI | Free mode (may train on prompts — opt out available) | No | https://api.mistral.ai/v1 | console.mistral.ai → |
| Cohere | 1,000 calls/month (non-commercial) | No | https://api.cohere.com/compatibility/v1 | dashboard.cohere.com → |
| Cloudflare Workers AI | 10,000 neurons/day (60+ models) | No | https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/v1 | dash.cloudflare.com → |
| OpenRouter Recommended | Free models available (Llama, Gemma, Mistral, and more) | No | https://openrouter.ai/api/v1 | openrouter.ai → |
Free tier data sourced from mnfst/awesome-free-llm-apis (CC0 1.0 Universal — public domain). See the full list for all providers and detailed rate limits. OpenRouter not in the source list but included as the recommended multi-provider gateway.
Why OpenRouter?
OpenRouter routes requests to dozens of models (Llama 4, Gemma, Mistral, Command R, and more) through a single API key and base URL. Free models are clearly labelled. It's the easiest way to try multiple models without managing separate keys. JobFoundry's scorer and tailor both work out of the box with it.
How to configure in JobFoundry
Container / Desktop installs (Settings UI)
Open the dashboard at http://localhost:8080, go to Settings → LLM Provider, and enter:
- Base URL — the provider's OpenAI-compatible endpoint (see table above)
- API Key — the key you obtained from the provider's dashboard
- Model — e.g.
mistral-small-latest,gemini-2.0-flash, or any model ID the provider supports
Provider-specific examples: Cohere uses command-a-03-2025, Gemini uses gemini-2.0-flash, and Cloudflare Workers AI uses @cf/meta/llama-3.1-8b-instruct. Cloudflare also requires an account ID in the base URL and an API token with Workers AI permissions.
Manual / developer installs (.env file)
Edit your .env file in the repository root:
# For OpenRouter (recommended default in .env.example):
OPENROUTER_API_BASE=https://openrouter.ai/api/v1
OPENROUTER_API_KEY=sk-or-...
# Or for direct OpenAI-compatible providers (e.g. Mistral):
# Note: Comment out or clear OPENROUTER_API_* keys so direct provider variables take effect!
OPENROUTER_API_BASE=
OPENROUTER_API_KEY=
SCORER_API_BASE=https://api.mistral.ai/v1
SCORER_API_KEY=your-mistral-api-key
SCORER_MODEL=mistral-small-latest
OPENAI_BASE_URL=https://api.mistral.ai/v1
OPENAI_API_KEY=your-mistral-api-key
TAILOR_MODEL=mistral-small-latestRecreate the services after editing: docker compose up -d --force-recreate (or podman compose up -d --force-recreate).
If you prefer fully local inference (no API key, no data leaving your machine), JobFoundry also works with Ollama.
- Endpoint URL: For desktop or bare-metal installs, use
http://localhost:11434/v1. For container installs (Docker), usehttp://host.docker.internal:11434/v1(orhttp://host.containers.internal:11434/v1with Podman) so the container can reach the host. - SSRF Guard in Containers: Because JobFoundry blocks requests to private and internal IPs by default, container setups routing to the host must exempt the origin via
ALLOWED_LLM_BASESin.env:ALLOWED_LLM_BASES=http://host.docker.internal:11434(orhttp://host.containers.internal:11434for Podman). - In Settings UI: Set Base URL to your Ollama endpoint, API Key to
ollama(any non-empty value), and Model to your local model name (e.g.llama3.3ormistral). - In .env: Clear
OPENROUTER_API_BASEandOPENROUTER_API_KEY, set bothSCORER_API_BASEandOPENAI_BASE_URLto the Ollama endpoint, and configureSCORER_MODELandTAILOR_MODEL.