Skip to content

iamonkey/hackathon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI-Powered Recruiting Note-Taking Application

A comprehensive full-stack monorepo application for recruiters to manage candidates, conduct interviews with real-time transcription, and analyze recruiting performance with AI-powered insights.

Features

Frontend (React + TypeScript + Vite)

  • Dashboard: Overview of recruiting metrics and recent activity
  • Candidate Management: Comprehensive candidate profiles with search and filtering
  • Live Interview: Real-time transcription with AI-powered insights
  • Analytics: Performance metrics and recruiting insights
  • Responsive Design: Professional interface optimized for recruiting workflows

Backend (NestJS + TypeORM + SQLite)

  • RESTful API: Complete CRUD operations for candidates, interviews, and notes
  • Real-time Features: WebSocket support for live transcription
  • Database: SQLite with TypeORM for data persistence
  • AI Integration: Mock AI services for candidate analysis and insights
  • Analytics: Comprehensive reporting and metrics

Tech Stack

Frontend

  • React 18 with TypeScript
  • Vite for fast development
  • Tailwind CSS for styling
  • Lucide React for icons
  • Socket.IO client for real-time features

Backend

  • NestJS framework
  • TypeORM with SQLite database
  • Socket.IO for WebSocket connections
  • Class-validator for input validation
  • Comprehensive API documentation

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Python 3.8+ (for Claude Code hooks)
  • uv package manager (for Python dependency management)

Installation

Python and uv Setup

  1. Install Python 3.8+:

    macOS:

    # Using Homebrew
    brew install python
    
    # Or download from python.org

    Windows:

    # Download from python.org and run installer
    # Or using Chocolatey
    choco install python
    
    # Or using winget
    winget install Python.Python.3
  2. Install uv package manager:

    macOS/Linux:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    source ~/.zshrc  # or ~/.bashrc for bash

    Windows:

    # Using PowerShell
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    
    # Or using pip
    pip install uv
  3. Install Node.js dependencies:

    npm install

    This will automatically install dependencies for all workspaces using npm workspaces.

Starting the Application

  1. Start the development servers:

    # Start both frontend and backend concurrently
    npm run dev
    
    # Or start them separately:
    # Backend only (runs on http://localhost:3001)
    npm run backend:dev
    
    # Frontend only (runs on http://localhost:5173)
    npm run client:dev
  2. Access the application:

API Endpoints

Candidates

  • GET /candidates - Get all candidates with optional filters
  • GET /candidates/:id - Get candidate by ID
  • POST /candidates - Create new candidate
  • PATCH /candidates/:id - Update candidate
  • DELETE /candidates/:id - Delete candidate
  • POST /candidates/:id/generate-summary - Generate AI summary

Interviews

  • GET /interviews - Get all interviews
  • GET /interviews/upcoming - Get upcoming interviews
  • GET /interviews/:id - Get interview by ID
  • POST /interviews - Create new interview
  • PATCH /interviews/:id - Update interview
  • DELETE /interviews/:id - Delete interview
  • POST /interviews/:id/generate-summary - Generate AI summary

Notes

  • GET /notes - Get all notes
  • POST /notes - Create new note
  • PATCH /notes/:id - Update note
  • DELETE /notes/:id - Delete note

Analytics

  • GET /analytics/dashboard - Dashboard metrics
  • GET /analytics/interview-trends - Interview trend data
  • GET /analytics/candidate-pipeline - Pipeline analysis
  • GET /analytics/skills-analysis - Skills breakdown
  • GET /analytics/interviewer-performance - Performance metrics

WebSocket Events

Client to Server

  • start-transcription - Start interview transcription
  • stop-transcription - Stop interview transcription
  • add-bookmark - Add bookmark during interview

Server to Client

  • transcript-update - Real-time transcript updates
  • ai-insight - AI-generated insights
  • bookmark-added - Bookmark confirmation

Database Schema

The application uses SQLite with the following main entities:

  • Candidate: Core candidate information and status
  • Interview: Interview records with transcripts and scores
  • Note: Notes and AI insights linked to candidates

Development

Monorepo Structure

├── client-basic/           # React frontend application
│   ├── src/               # React components and services
│   │   ├── components/    # React components
│   │   ├── services/      # API and WebSocket services
│   │   └── types.ts       # TypeScript type definitions
│   ├── index.html         # HTML entry point
│   ├── vite.config.ts     # Vite configuration
│   ├── tailwind.config.js # Tailwind CSS config
│   └── package.json       # Frontend dependencies
├── backend/               # NestJS backend application
│   ├── src/
│   │   ├── candidates/    # Candidate module
│   │   ├── interviews/    # Interview module
│   │   ├── notes/         # Notes module
│   │   ├── analytics/     # Analytics module
│   │   └── transcription/ # WebSocket transcription
│   └── package.json       # Backend dependencies
└── package.json           # Root workspace configuration

Adding New Frontend Applications

This monorepo is structured to support multiple frontend applications. To add a new frontend:

  1. Create a new directory (e.g., client-admin, client-mobile)
  2. Add the new directory to the workspaces array in the root package.json
  3. Create the new application's package.json
  4. Add new scripts to the root package.json for the new application

Available Scripts

  • npm run dev - Start both backend and frontend in development mode
  • npm run client:dev - Start only the frontend development server
  • npm run backend:dev - Start only the backend development server
  • npm run wait-backend - Wait for backend to be ready (used internally)

Key Features Implementation

  • Real-time Transcription: Mock implementation using WebSockets
  • AI Insights: Simulated AI analysis with realistic responses
  • Responsive Design: Mobile-first approach with Tailwind CSS
  • Type Safety: Full TypeScript coverage for both frontend and backend
  • Data Persistence: SQLite database with proper relationships

Production Deployment

For production deployment:

  1. Build the frontend: cd client-basic && npm run build
  2. Build the backend: cd backend && npm run build
  3. Configure environment variables for database and API URLs
  4. Deploy both applications to your preferred hosting platform

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

This project is licensed under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •