Skip to content

Repository files navigation

Interviewer.ai

Full-stack application that generates 3 tailored interview questions based on a job title and difficulty tier, powered by Groq's LLaMA 3.3 70B model. The platform allows users to enter a role such as Customer Success Manager, Frontend Engineer, or Product Manager and instantly receive thoughtful, role-specific interview questions generated in real time.

The project demonstrates:

  • Full-stack TypeScript architecture
  • AI API integration
  • REST API design
  • Schema validation
  • Interactive Swagger documentation
  • Modern UI/UX patterns
  • Clean project organization

Features

  • Generate 3 AI-powered interview questions
  • Groq LLM integration
  • Vanilla TypeScript frontend
  • Express + TypeScript backend
  • Swagger API documentation
  • Zod schema validation
  • Bento-style responsive UI
  • Copy-to-clipboard interaction
  • Loading and latency states
  • Environment-based configuration
  • Production-ready structure

Tech Stack

Frontend

  • TypeScript
  • HTML5
  • CSS3
  • Vite

Backend

  • Node.js
  • Express
  • TypeScript
  • Zod
  • Swagger UI

AI

  • Groq API
  • Llama 3 / Mixtral models

Tooling

  • Yarn
  • Biome
  • dotenv

Deployment

  • Render

Project Structure

interview-generator/

├── src/
│   ├── main.ts          ← Frontend logic (fetch, DOM, latency tracking)
│   └── style.css        ← Bento grid UI styles
├── index.html           ← App shell
├── server.ts            ← Express API + Groq integration
├── vite.config.ts       ← Vite + proxy config
├── tsconfig.json        ← TypeScript config
├── package.json         ← Dependencies and scripts
├── yarn.lock            ← Locked dependency versions
├── .env.example         ← Environment variable template
├── .gitignore
└── README.md

Architecture Overview

flowchart TD
    A[Frontend - TypeScript + Vite]
    B[Backend - Express API]
    C[Groq API]
    
    A -->|POST /api/generate-questions| B
    B -->|Prompt Request| C
    C -->|AI-generated questions| B
    B -->|JSON response| A
Loading

Quick Start

Prerequisites

  • Node.js v18+
  • Yarn
  • Groq API key (free, no credit card required)

Create a free API key at:

https://console.groq.com


Setup

Clone the repository:

git clone https://github.com/azukauteh/interview-generator.git
cd interview-generator

Install dependencies:

yarn install

Create environment variables:

cp .env.example .env

Add your API key to .env:

GROQ_API_KEY=your_groq_api_key_here
PORT=3000
NODE_ENV=development

Running the Application

Start the development server:

yarn dev

Local URLs

Service URL
Frontend App http://localhost:5173
Backend API http://localhost:3000
Swagger Docs http://localhost:3000/docs

Production Build

Build the application:

yarn build

Start production server:

yarn start

API Reference

POST /api/generate-questions

Generate AI-powered interview questions based on a job title.

Request Body

Field Type Required Description
jobTitle string Job title (2–100 characters)
difficultyTier Standard | Advanced Defaults to Standard

Example Request

{
  "jobTitle": "Customer Success Manager",
  "difficultyTier": "Advanced"
}

Example Response

{
  "questions": [
    "How do you identify early churn signals across a large portfolio?",
    "Describe a time you influenced product roadmap based on customer feedback.",
    "How do you balance reactive support with proactive success management?"
  ]
}

Validation & Error Handling

The backend validates all incoming requests using Zod schemas.

Examples:

  • Empty job titles are rejected
  • Invalid payload structures return proper HTTP errors
  • AI provider failures are gracefully handled

Swagger Documentation

Interactive API documentation is available at:

http://localhost:3000/docs

Swagger provides:

  • Endpoint testing
  • Request/response schemas
  • API exploration
  • Error response documentation

Development Scripts

Development

yarn dev

Build

yarn build

Start Production

yarn start

Type Checking

yarn typecheck

Linting

yarn lint

Deployment

The application is deployed using:

  • Render

Ensure the following environment variables are configured in production:

GROQ_API_KEY=
PORT=
NODE_ENV=production

Contributing

  1. Fork the repository
  2. Create a feature branch
git checkout -b feat/your-feature
  1. Commit your changes
git commit -m "feat: your feature"
  1. Push your branch
git push origin feat/your-feature
  1. Open a Pull Request

Screenshots

App Screenshot

Live Demo

https://www.loom.com/share/3400e33a76f04671991e17ac86eca70e

Future Improvements

  • Multiple AI provider support
  • Question difficulty tuning
  • Interview answer evaluation
  • Saved interview sessions
  • PDF export support
  • Streaming AI responses

License

MIT


Built with Groq · Express · TypeScript · Vite

About

Full-stack application that generates 3 tailored interview questions based on a job title

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages