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.
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.
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.
- Organization onboarding with role, round, and evaluation setup
- JWT authentication for
ADMIN,INTERVIEWER, andCANDIDATE - 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
- 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
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
- Node.js 22
- npm 10+
- PostgreSQL 15+ recommended
This repo includes .nvmrc, CI, and verification scripts so local and CI environments stay aligned.
- Install dependencies
npm install- Copy local environment config
cp .env.example .env-
Update
DATABASE_URLandJWT_SECRETin.env -
Generate Prisma client and apply migrations
npm run prisma:generate
npm run prisma:migrate -- --name init- Seed the demo workspace
npm run db:seed- Start the app
npm run devOpen http://localhost:3000.
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.
Core app configuration:
DATABASE_URLJWT_SECRETNEXT_PUBLIC_APP_URL
AI providers:
AI_PROVIDER=openai|groq|geminiOPENAI_API_KEYGROQ_API_KEYGEMINI_API_KEY
Code execution:
JUDGE0_URLJUDGE0_LANGUAGE_ID_JAVASCRIPTJUDGE0_LANGUAGE_ID_PYTHONJUDGE0_LANGUAGE_ID_JAVAJUDGE0_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.
Run the full pre-push verification suite:
npm run verifyThis runs:
npm testnpm run typechecknpm run build
CI runs the same validation flow in .github/workflows/ci.yml.
The repo is configured to be safe to push:
.env*is ignored except.env.examplenode_modules,.next,uploads, logs, caches, and generated artifacts are ignored.editorconfig,.gitattributes, and.nvmrcare included for consistent development environments- seeded branding and accounts are generic, not client-specific
/app
/frontend
/backend
/components
/lib
/ai
/db
/tests
/public/readme
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
See SECURITY.md for deployment and repository safety guidance.


