Skip to content

vaishakh3/selectra

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Selectra

Interview infrastructure for teams that care about signal, speed, and consistency.

Selectra helps teams run cleaner interviews with reusable loops, adaptive question generation, live coding support, interviewer copilot guidance, and decision-ready reports.

Next.js TypeScript Prisma AI Providers Monaco CI


Product Preview

Landing

Selectra landing page

Guided Onboarding

Selectra onboarding flow

Login

Selectra login screen


What Selectra Does

Selectra is a multi-tenant interview platform for teams that want structure, speed, and signal in technical hiring.

It brings the full interview loop into one operating surface:

  • onboarding and reusable interview templates
  • candidate intake and resume-to-profile structuring
  • AI-assisted question generation with provider switching
  • live coding and interviewer note capture
  • round-by-round copilot support
  • final scorecards, verdicts, and report views

The product is intentionally built to feel modern and operational, not like an internal admin tool stitched together from forms and tables.


Why It Feels Useful

  • Multi-tenant by default: organizations, templates, candidates, and settings stay isolated at the data layer.
  • AI where it helps: OpenAI, Groq, and Gemini are supported behind one provider abstraction.
  • Graceful fallback path: no provider keys required to explore the product locally.
  • Built for real interview flow: coding, SQL, theory, API questions, notes, and reports live in one place.
  • Push-ready repository: secrets are ignored, CI is included, and verification scripts are already wired.

Core Features

  • Organization onboarding with role, round, and evaluation setup
  • JWT authentication for ADMIN, INTERVIEWER, and CANDIDATE
  • Resume upload with PDF parsing and structured candidate profiles
  • Runtime AI provider switching in the admin experience
  • Fresher-friendly easy-to-medium interview generation
  • Monaco-based coding workspace
  • Judge0-backed execution for Python, Java, and C++
  • Interviewer copilot with follow-ups, positives, and concerns
  • Final report generation with verdict, scorecard, and timeline

Stack

  • Frontend: Next.js App Router, React, TypeScript, TailwindCSS, shadcn-style components, Zustand, Monaco
  • Backend: Next.js route handlers, modular service layer, REST-style APIs
  • Database: PostgreSQL + Prisma
  • AI: OpenAI, Groq, Gemini, plus deterministic fallbacks
  • Execution: local JavaScript VM and Judge0-compatible remote execution

Architecture

flowchart LR
  A["Company Admin"] --> B["Onboarding + Template Setup"]
  B --> C["PostgreSQL + Prisma"]
  D["Candidate Intake"] --> C
  C --> E["Interview Session Builder"]
  E --> F["Live Interview Workspace"]
  F --> G["AI Copilot"]
  F --> H["Code Execution"]
  G --> I["Final Report"]
  H --> F

  subgraph AI
    G1["OpenAI"]
    G2["Groq"]
    G3["Gemini"]
    G --> G1
    G --> G2
    G --> G3
  end

  subgraph Runtime
    H1["Local JS VM"]
    H2["Judge0"]
    H --> H1
    H --> H2
  end
Loading

Quick Start

Requirements

  • Node.js 22
  • npm 10+
  • PostgreSQL 15+ recommended

This repo includes .nvmrc, CI, and verification scripts so local and CI environments stay aligned.

Setup

  1. Install dependencies
npm install
  1. Copy local environment config
cp .env.example .env
  1. Update DATABASE_URL and JWT_SECRET in .env

  2. Generate Prisma client and apply migrations

npm run prisma:generate
npm run prisma:migrate -- --name init
  1. Seed the demo workspace
npm run db:seed
  1. Start the app
npm run dev

Open http://localhost:3000.


Demo Accounts

  • admin@demo-talent.example / Password123!
  • interviewer@demo-talent.example / Password123!
  • candidate@demo-talent.example / Password123!

These are demo identities only. Rotate or replace them before using the project in any shared or production-like environment.


Environment Variables

Core app configuration:

  • DATABASE_URL
  • JWT_SECRET
  • NEXT_PUBLIC_APP_URL

AI providers:

  • AI_PROVIDER=openai|groq|gemini
  • OPENAI_API_KEY
  • GROQ_API_KEY
  • GEMINI_API_KEY

Code execution:

  • JUDGE0_URL
  • JUDGE0_LANGUAGE_ID_JAVASCRIPT
  • JUDGE0_LANGUAGE_ID_PYTHON
  • JUDGE0_LANGUAGE_ID_JAVA
  • JUDGE0_LANGUAGE_ID_CPP

If no provider keys are configured, Selectra falls back to deterministic generation for resume parsing, question generation, copilot guidance, and report building.


Verification

Run the full pre-push verification suite:

npm run verify

This runs:

  • npm test
  • npm run typecheck
  • npm run build

CI runs the same validation flow in .github/workflows/ci.yml.


Repository Hygiene

The repo is configured to be safe to push:

  • .env* is ignored except .env.example
  • node_modules, .next, uploads, logs, caches, and generated artifacts are ignored
  • .editorconfig, .gitattributes, and .nvmrc are included for consistent development environments
  • seeded branding and accounts are generic, not client-specific

Project Structure

/app
/frontend
/backend
/components
/lib
/ai
/db
/tests
/public/readme

Production Notes

Selectra is in a strong state as a polished prototype and production-oriented starter. For a real deployment, the next layer should include:

  • object storage for resumes instead of local filesystem uploads
  • managed PostgreSQL backups and observability
  • rate limiting and audit logging on auth and write-heavy APIs
  • stronger auth flows such as password reset and email verification
  • secret rotation and environment-specific deployment controls

Security

See SECURITY.md for deployment and repository safety guidance.

About

Adaptive Interview Engine | Multi-tenant interview intelligence

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors