Skip to content

Repository files navigation

InterviewOS - AI-Native First Round Interview Infrastructure

A hackathon-ready MVP that converts first-round interviews into programmable, scalable software infrastructure using AI interviewers.

๐Ÿš€ Features

  • Configurable AI Interviewers: Create interviews by defining role, skills, difficulty, and evaluation criteria
  • Scalable Interview Sessions: Multiple candidates can interview simultaneously
  • Structured Evaluations: Extract machine-readable signals instead of raw transcripts
  • Human Review Dashboard: Visualize scores, evidence, and AI recommendations
  • Interview as Code: JSON-based interview schemas for consistency

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Recruiter     โ”‚    โ”‚   AI Interview   โ”‚    โ”‚   Reviewer      โ”‚
โ”‚   Creates       โ”‚โ”€โ”€โ”€โ–ถโ”‚   Engine         โ”‚โ”€โ”€โ”€โ–ถโ”‚   Dashboard     โ”‚
โ”‚   Interview     โ”‚    โ”‚                  โ”‚    โ”‚                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ”‚                       โ”‚                       โ”‚
         โ–ผ                       โ–ผ                       โ–ผ
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Interview       โ”‚    โ”‚ State Machine    โ”‚    โ”‚ Structured      โ”‚
โ”‚ Schema          โ”‚    โ”‚ + Prompts        โ”‚    โ”‚ Evaluations     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ› ๏ธ Tech Stack

  • Frontend: Next.js 14, React, TypeScript, TailwindCSS
  • Backend: Next.js API Routes, Node.js
  • Database: SQLite with Prisma ORM
  • AI Layer: Mock LLM interface (easily replaceable with OpenAI/Anthropic)
  • UI Components: Custom components with Radix UI primitives

๐Ÿ“ฆ Installation

  1. Clone and install dependencies:
cd interview-os
npm install
  1. Set up the database:
npm run db:push
npm run db:seed
  1. Start the development server:
npm run dev
  1. Open your browser: Navigate to http://localhost:3000

๐ŸŽฏ Demo Flow

1. Create an Interview (Recruiter)

  • Go to /create
  • Define job role (e.g., "Backend Engineer")
  • Add skills to evaluate (e.g., "API Design", "Databases")
  • Set difficulty level (Junior/Mid/Senior)
  • Configure interview style (Friendly/Neutral/Strict)
  • Add red flags to watch for
  • Click "Create Interview"

2. Share Interview Link

  • Copy the generated interview link from the dashboard
  • Share with candidates: http://localhost:3000/interview?id={interview-id}

3. Candidate Takes Interview

  • Candidate enters name and email
  • AI interviewer asks role-specific questions
  • Questions adapt based on previous answers
  • Progress bar shows completion status
  • Structured evaluation generated at the end

4. Review Results (Reviewer)

  • Go to /dashboard
  • View all candidate evaluations
  • See skill-by-skill breakdown with evidence
  • Review AI recommendation (Proceed/Borderline/Review)
  • Access detailed conversation transcripts

๐Ÿ“Š Sample Interview Schema

{
  "role": "Backend Engineer",
  "skills": ["API Design", "Databases", "System Design"],
  "difficulty": "Mid",
  "rubric": {
    "API Design": 30,
    "Databases": 35,
    "System Design": 35
  },
  "redFlags": [
    "No real-world examples",
    "Hand-wavy explanations",
    "Cannot explain trade-offs"
  ],
  "style": "neutral"
}

๐Ÿค– AI Interview Engine

The system uses a prompt-based approach with structured JSON outputs:

Question Generation

  • Analyzes role requirements and candidate level
  • Generates contextual follow-up questions
  • Maintains interview flow and progression

Answer Evaluation

  • Scores responses on 0-100 scale
  • Extracts evidence snippets
  • Identifies strengths and weaknesses
  • Detects red flags from rubric

Final Assessment

  • Aggregates individual question scores
  • Provides overall recommendation
  • Generates explainable evaluation summary

๐Ÿ”ง Customization

Replace Mock AI with Real LLM

Update src/lib/ai-service.ts:

private async callLLM(prompt: string): Promise<any> {
  const response = await openai.chat.completions.create({
    model: "gpt-4",
    messages: [{ role: "user", content: prompt }],
    response_format: { type: "json_object" }
  });
  
  return JSON.parse(response.choices[0].message.content);
}

Add New Interview Types

  1. Create new interview schema in seed data
  2. Add role-specific prompt templates
  3. Configure skill-specific evaluation criteria

Extend Evaluation Metrics

  1. Update InterviewEvaluation type
  2. Modify evaluation prompts
  3. Add new dashboard visualizations

๐Ÿ“ Project Structure

interview-os/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ app/                    # Next.js app router pages
โ”‚   โ”‚   โ”œโ”€โ”€ api/               # API routes
โ”‚   โ”‚   โ”œโ”€โ”€ create/            # Interview creation page
โ”‚   โ”‚   โ”œโ”€โ”€ interview/         # Candidate interview page
โ”‚   โ”‚   โ””โ”€โ”€ dashboard/         # Reviewer dashboard
โ”‚   โ”œโ”€โ”€ components/ui/         # Reusable UI components
โ”‚   โ”œโ”€โ”€ lib/                   # Core business logic
โ”‚   โ”‚   โ”œโ”€โ”€ ai-service.ts      # AI interview engine
โ”‚   โ”‚   โ”œโ”€โ”€ interview-state-machine.ts
โ”‚   โ”‚   โ”œโ”€โ”€ prompts.ts         # AI prompt templates
โ”‚   โ”‚   โ””โ”€โ”€ db.ts              # Database client
โ”‚   โ””โ”€โ”€ types/                 # TypeScript definitions
โ”œโ”€โ”€ prisma/                    # Database schema & seeds
โ””โ”€โ”€ public/                    # Static assets

๐Ÿš€ Deployment

Vercel (Recommended)

  1. Push to GitHub
  2. Connect to Vercel
  3. Add environment variables
  4. Deploy automatically

Docker

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]

๐Ÿ”ฎ Future Enhancements

  • Voice Interviews: Web Speech API integration
  • Video Analysis: Facial expression and body language evaluation
  • Multi-language Support: Internationalization
  • Advanced Analytics: Interview performance metrics
  • Integration APIs: ATS and HRIS system connectors
  • Real-time Collaboration: Multiple reviewers
  • Custom Scoring Models: ML-based evaluation

๐Ÿค Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

๐Ÿ“„ License

MIT License - see LICENSE file for details

๐Ÿ†˜ Troubleshooting

Database Issues

# Reset database
rm prisma/dev.db
npm run db:push
npm run db:seed

Port Conflicts

# Use different port
npm run dev -- -p 3001

Build Errors

# Clear Next.js cache
rm -rf .next
npm run build

Built for hackathons, designed for production.

Transform your hiring process with AI-native interview infrastructure that scales.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages