========================================
[Sun Feb  8 23:46:26 AEDT 2026] CC VPS triggered by Rivet
========================================

Task:
Fix bug: OpenAI client silent empty key in all 4 api/ai/*/route.ts files. Currently defaults to apiKey: '' if env var missing, fails silently. Add validation at init to throw error if OPENAI_API_KEY is missing or empty.
----------------------------------------

## Done

Fixed the silent OpenAI API key bug in all 4 AI route files. 

**What changed:**
- Added validation check `if (!process.env.OPENAI_API_KEY)` before creating the OpenAI client
- Throws error at module init if key is missing or empty
- Removed the unsafe `|| ""` fallback that caused silent failures
- Applied to: transcribe-voice, generate-job, parse-profile-voice, generate-profile

**Why:** Previously, missing API keys would fail silently at request time with cryptic errors. Now the app fails fast at startup with a clear error message, making config issues immediately obvious.

Built, committed, and pushed to main.

----------------------------------------
[Sun Feb  8 23:47:39 AEDT 2026] Task finished (exit code: 0)
