Inspiration

Hiring is broken. Recruiters drown in CVs, early-stage screening eats hours of human time, and great candidates get lost in the noise. We wanted to find out: what if the first interview could happen the moment a candidate applies — fairly, consistently, and at any hour? That question became OmniHR, an AI-native hiring platform that screens, interviews, and scores candidates end-to-end.

What it does

OmniHR serves two audiences from a single platform:

  • For companies: Post jobs with custom AI interview instructions and weighted scoring criteria, then watch candidates get screened and ranked automatically. A dashboard surfaces applications, interview results, and performance analytics.
  • For candidates: Sign up, browse open roles, apply with a CV, and complete an AI-conducted voice/video interview right in the browser.

The pipeline runs end-to-end:

  1. Company posts a job with tailored AI instructions
  2. Candidate applies with their CV
  3. AI screens the CV for relevance to the role
  4. The candidate completes an in-browser recorded interview
  5. AI evaluates and scores fluency, knowledge, relevance, and job fit
  6. Results, feedback, and rankings appear instantly in the dashboard

How we built it

  • Frontend: Next.js 16 (App Router) with React 19, Tailwind CSS v4, and shadcn/ui for the component system, plus Framer Motion for animation.
  • Auth: Firebase Authentication with separate company and candidate account flows, backed by Firebase Admin on the server.
  • Database: Amazon Aurora PostgreSQL accessed through pg with IAM-based RDS signing, modeling jobs, applications, custom fields, scoring criteria, interview sessions, and results.
  • AI: Google Gemini powers CV screening and interview scoring, returning structured, weighted evaluations with written reasoning.
  • Media capture: The browser MediaRecorder API records candidate audio (and optional video) and streams it to a Next.js route handler for analysis.
  • Validation & state: Zod for input validation and SWR for client-side data fetching and caching.

Challenges we ran into

  • Capturing reliable audio/video across

Built With

  • amazon-aurora-postgresql
  • aws-iam
  • firebase
  • firebase-admin
  • framer-motion
  • generative-ai
  • google-gemini
  • mediarecorder-api
  • next.js
  • pg
  • react
  • shadcn-ui
  • swr
  • tailwindcss
  • typescript
  • vercel
  • zod
Share this project:

Updates