Skip to content

Repository files navigation

OneGate

AI-run interview platform — Phase 1 foundation: company job setup, candidate applications, and pause/resume text interview rounds.

Stack

  • Next.js 14 (App Router) + TypeScript
  • PostgreSQL + Prisma
  • Tailwind CSS
  • Simple email/password session cookies (company and candidate portals)

Prerequisites

  • Node.js 20+
  • Docker Desktop (for local Postgres)

Setup

# 1. Install dependencies
npm install

# 2. Start Postgres
docker compose up -d

# 3. Copy env (already present as .env for local demo)
cp .env.example .env

# 4. Push schema + seed demo data
npm run db:setup

# 5. Run the app
npm run dev

Open http://localhost:3000.

Demo accounts (from seed)

Portal Email Password
Company hiring@acmelabs.demo company123
Candidate alex@candidate.demo candidate123

Seed creates an open job posting: Full-Stack Engineer with HR (3 questions) and Technical (3 questions).

Useful scripts

  • npm run dev — Next.js dev server
  • npm run db:push — sync Prisma schema to the database
  • npm run db:seed — re-seed demo data (wipes interview/application data)
  • npm run db:setup — push + seed

Phase 1 behavior notes

  • New job postings default to draft (hidden from candidates). Set status to open to publish.
  • closed jobs reject new applications; existing applicants can still finish rounds.
  • Interview sessions are created lazily when a candidate clicks Start (status in_progress). No session row means the round has not been started.
  • Rounds must be completed in orderIndex order. Pause sets status to paused and preserves currentQuestionIndex + saved answers; resume appends a timestamp to resumedAt and continues where left off.
  • After each base answer, Claude may ask at most one grounded follow-up (logged in FollowupDecision). Set ANTHROPIC_API_KEY in .env to enable follow-ups and round scoring.
  • When a round is submitted, each base question is scored 1–5 into RoundScore. Open an application from the company applications list to view scores.

About

AI-run interview platform — one continuous, candidate-paced hiring loop.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages