Back to History
Major Release

v2.0.0

Released January 24, 2026

Summary

Version 2.0.0 introduces a comprehensive Admin Control Center with database-driven site settings, dedicated admin authentication, and a site-wide maintenance mode. This major release moves away from environment variables for configuration, enabling real-time control over platform features directly from the admin dashboard.

Admin Authentication System

  • Created dedicated admin login page at /admin/login with admin-specific red theme and Shield icon branding.
  • Implemented role verification - only users with role: admin can access the admin dashboard.
  • Added temporary signup toggle for creating admin accounts (can be disabled after setup).
  • Updated admin layout to skip auth check for login page, preventing infinite loading.

Database-Driven Site Settings

Replaced NEXT_PUBLIC_ACCEPT_PAYMENTS environment variable with database-driven settings.

  • Created site_settings table in Supabase with RLS policies (admin-only write access).
  • Built /api/settings REST endpoint for reading/updating settings.
  • Created useSettings() React hook for client-side access to settings.
  • Updated admin settings page with live fetch/save functionality.

Configurable Settings:

Payments Enabled
Allow Registration
Require Approval
Email Notifications
Maintenance Mode
Custom Message

Maintenance Mode

  • Created styled /maintenance page with dynamic message from database.
  • Added auto-refresh countdown (60s) and manual refresh button.
  • Implemented proxy middleware to redirect all non-admin users when maintenance is enabled.
  • Admin users can still access the full site during maintenance.
  • Page auto-redirects to home when maintenance mode is disabled.

Proxy and Routing Improvements

  • Fixed redirect loop for admin users accessing /admin routes.
  • API routes now bypass all redirects - prevents JSON parsing errors.
  • Added /maintenance to public paths list.
  • Proxy now fetches site settings from database for real-time configuration.

AI Tool Auto-Fill Enhancements

Enhanced AI tools across the platform to auto-fill fields with existing profile and organization data for improved UX.

  • Resume Optimizer - Auto-fills with applicant profile data (job title, skills, experience) on page load.
  • Job Description Generator - Auto-fills location from org data + includes org name/industry in AI prompt.
  • Outreach Email Generator - Auto-includes sender name, title, and company in generated emails.
  • Offer Letter Generator - Auto-fills sender name and title in signature block.
  • Candidate Pitch Generator - Auto-includes recruiter details in generated pitches.

New Application Flow with AI Cover Letters

Created a new dedicated application page at /app/applicant/jobs/[id]/apply.

  • Company card showing logo, name, and industry.
  • Job details sidebar with location, type, and requirements.
  • Cover letter textarea with AI generation button.
  • Strict AI formatting - No markdown (#, **, _), no special dashes, no placeholders.
  • Success confirmation with redirect to applications list.

AI-Powered Applicant Ranking System

Employers and Recruiters can now analyze applicants using AI and sort by match score.

  • New Applicants Dashboard for both Employer and Recruiter roles.
  • Analyze with AI button - scores candidates 0-100 based on resume vs job description.
  • AI generates 3 key match reasons per candidate.
  • Sorting options: AI Match Score (High-Low), Name (A-Z), Date (Newest).
  • Color-coded score badges: Purple (90+), Green (70+), Yellow (50+), Red (below 50).
  • Added link to Applicants List from Employer Job Kanban board.
  • Created Recruiter Job Details page with navigation to AI ranking.

Files Changed

+ app/admin/login/page.tsx
+ app/maintenance/page.tsx
+ app/api/settings/route.ts
+ hooks/use-site-settings.tsx
+ site-settings-migration.sql
+ app/app/applicant/jobs/[id]/apply/page.tsx
+ app/app/org/employer/[dashboard]/jobs/[id]/applicants/page.tsx
+ app/app/org/recruiter/[dashboard]/jobs/[id]/applicants/page.tsx
+ app/app/org/recruiter/[dashboard]/jobs/[id]/page.tsx
~ app/admin/layout.tsx
~ app/admin/settings/page.tsx
~ proxy.ts
~ components/Footer.tsx
~ app/features/page.tsx
~ app/app/org/employer/[dashboard]/settings/page.tsx
~ app/app/org/recruiter/[dashboard]/settings/page.tsx
~ app/app/org/employer/[dashboard]/jobs/[id]/page.tsx
~ app/app/applicant/[dashboard]/tools/resume-optimizer/page.tsx
~ app/app/org/employer/[dashboard]/tools/job-description/page.tsx
~ app/app/org/recruiter/[dashboard]/tools/outreach-email/page.tsx
~ app/app/org/employer/[dashboard]/tools/offer-letter/page.tsx
~ app/app/org/recruiter/[dashboard]/tools/candidate-pitch/page.tsx
~ lib/stripe.ts

Migration Notes

⚠️ Required Database Migration

Run site-settings-migration.sql in Supabase SQL Editor to create the site_settings table before using admin settings.