Back to History
Minor Release

v2.1.0

Released May 3, 2026

Summary

Production hardening pass: real contact delivery, canonical blog content, Groq-backed AI APIs, recruiter job editing, navigation that matches every live route, and billing flows that map cleanly to Stripe plan keys instead of placeholder UI states.

Features & fixes

  • Recruiter job edit: Added /app/org/recruiter/[dashboard]/jobs/[id]/edit so draft jobs open the same API-backed form employers already used.
  • AI stack: Chat and generate routes use Groq Chat Completions (NEXT_PUBLIC_GROQ_API_KEY). Removed Gemini dependency.
  • Contact form: Submits to POST /api/contact with Nodemailer; falls back to mailto: when SMTP is not configured.
  • Blog: Single source in lib/blog-posts.ts — no orphan slugs or fake engagement counters; share and copy-link only.
  • Navigation: Sidebar links for Messages (applicant, employer, recruiter) and Sourcing + Messages for employers; dashboard quick links aligned.
  • Billing UX: Org onboarding maps UI tiers to Stripe keys (pro → growth, team → scale). Applicant paid cards start Career+ checkout when acceptPayments is on.

Developer hub

Internal release notes live under /dev and /dev/version.

Files touched (high level)

lib/blog-posts.ts, lib/whatsapp.ts, lib/groq.ts
app/api/contact/route.ts, app/api/chat/route.ts, app/api/ai/generate/route.ts
app/contact/page.tsx, app/blog/*, components/dashboard/Sidebar.tsx
app/app/org/page.tsx, app/app/applicant/setup/page.tsx
app/app/org/recruiter/.../jobs/[id]/edit/page.tsx
app/dev/version/page.tsx, app/dev/page.tsx