Commit graph

11 commits

Author SHA1 Message Date
JobsBoard Deployer
50b8524775 feat(email): route outbound mail through Proton Mail Bridge SMTP; feat(apply): route one-click apply to employer site
Email:
- Add nodemailer; rewrite lib/email.ts to send via configured SMTP (Proton
  Mail Bridge) first, Resend fallback, then dev simulation.
- Forward SMTP_* env to web and add protonmail-bridge service in compose.
- Document Proton Bridge SMTP vars in .env.example files; add test-smtp.mjs.

Apply:
- OneClickApplyModal now opens the job's real posting URL (company/ATS site)
  in a new tab as the primary action when jobUrl is present, and records the
  external application so the card shows 'Applied'.
- Internal one-click snapshot flow retained for jobs without an external URL.
- POST /api/applications accepts external:true (skips profile completeness)
  and records an external application.
2026-09-07 14:46:57 -04:00
JobsBoard Deployer
bb4c93b11c fix(db): derive DATABASE_URL from POSTGRES_PASSWORD and harden credential sync
Stop web/scraper containers from using a stray literal DATABASE_URL in the
root .env (which desynced the postgres role password and caused persistent
'password authentication failed' errors). DATABASE_URL is now always computed
from POSTGRES_USER/POSTGRES_PASSWORD.

Also harden postgres-entrypoint.sh: log to stderr, retry on failure, and run
ALTER ROLE unconditionally so the stored password always matches the env.
2026-09-07 13:06:42 -04:00
JobsBoard Deployer
c7259411ae fix(db): add postgres auto-sync entrypoint wrapper to ensure role login and credentials persist across rebuilds 2026-09-06 13:54:36 -04:00
JobsBoard Deployer
c7031643ce Allow configurable PostgreSQL credentials and synchronize DATABASE_URL across containers 2026-09-05 15:42:09 -04:00
JobsBoard Deployer
9e5742307b Switch default model to google/gemini-2.5-flash, add max_tokens: 3500, and safeguard JSON truncation on parse 2026-09-05 14:12:42 -04:00
JobsBoard Deployer
9205b88458 Eliminate all synthetic resume hallucinations, integrate OpenRouter small-model support, and strip all emojis site-wide 2026-09-05 13:39:53 -04:00
JobsBoard Deployer
de5fe3315a Add mediaserver_default external network to docker-compose 2026-09-05 13:13:43 -04:00
JobsBoard Deployer
8ecd99ea9f feat(scraper): integrate PrivadoVPN rotating SOCKS5 proxy pool across US and EU endpoints 2026-09-05 12:42:22 -04:00
JobsBoard Deployer
2d2aab2999 fix(scraper): add greenhouse/lever board fetching to crawler, proxy support for datacenter IPs, and ziprecruiter fallback 2026-09-05 12:33:57 -04:00
JobsBoard Deployer
00775c48ed fix(docker): make host ports configurable via WEB_PORT and DB_PORT 2026-09-05 11:34:36 -04:00
JobsBoard Deployer
9b8184d345 feat: complete production-ready JobsBoard stack with multi-source acquisition and ATS optimizer 2026-09-05 10:41:18 -04:00