Thanks to visit codestin.com
Credit goes to github.com

Skip to content

kishan-gau/recruitiq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RecruitIQ

Modern Recruitment Management System for Enterprise Hiring Teams

πŸ“‹ Overview

RecruitIQ is a comprehensive recruitment management platform built for modern hiring teams. It provides end-to-end applicant tracking, candidate management, interview scheduling, and analytics capabilities in a secure, multi-tenant architecture.

✨ Features

  • 🎯 Job Management - Create, publish, and manage job postings across multiple channels
  • πŸ‘₯ Candidate Tracking - Comprehensive applicant tracking with resume parsing and candidate profiles
  • πŸ“… Interview Scheduling - Automated scheduling with calendar integrations
  • πŸ“Š Analytics & Reporting - Real-time insights into hiring metrics and pipeline health
  • πŸ”’ Multi-Tenant Security - Enterprise-grade security with organization-level data isolation
  • 🌐 API-First Design - RESTful API for integrations and custom workflows
  • ⚑ Performance Optimized - Fast response times with caching and query optimization

πŸ—οΈ Architecture

RecruitIQ follows a layered architecture pattern:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          Frontend (React)               β”‚
β”‚  - Unified Web App (apps/web)           β”‚
β”‚    β€’ All Product Modules                β”‚
β”‚      (Recruitment, HRIS, Payroll, Scheduling)|
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚ HTTP/REST
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         API Layer (Express)             β”‚
β”‚  Routes β†’ Controllers β†’ Services        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    Business Logic (Services)            β”‚
β”‚  - Validation                           β”‚
β”‚  - Authorization                        β”‚
β”‚  - Business Rules                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚    Data Access (Repositories)           β”‚
β”‚  - Database Queries                     β”‚
β”‚  - Tenant Isolation                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚         Database (PostgreSQL)           β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Tech Stack

Backend

  • Runtime: Node.js 18+
  • Framework: Express.js
  • Database: PostgreSQL 15+
  • Authentication: JWT (JSON Web Tokens)
  • Validation: Joi
  • Testing: Jest, Supertest
  • API Documentation: Swagger/OpenAPI

Frontend

  • Framework: React 18+
  • Styling: TailwindCSS
  • Build Tool: Vite
  • Routing: React Router v6
  • HTTP Client: Axios
  • Testing: Vitest, Playwright

DevOps

  • Containerization: Docker
  • CI/CD: GitHub Actions
  • Monitoring: Custom logging with Winston
  • Version Control: Git

πŸ“š Documentation

Getting Started

Development Standards

Architecture & Planning

πŸ“¦ Installation

Prerequisites

  • Node.js 18 or higher
  • PostgreSQL 15 or higher
  • npm or yarn

Backend Setup

# Clone repository
git clone https://github.com/yourorg/recruitiq.git
cd recruitiq

# Navigate to backend
cd backend

# Install dependencies
npm install

# Setup environment variables
cp .env.example .env
# Edit .env with your database credentials and secrets

# Run database migrations
npm run migrate

# Start development server
npm run dev

Backend will be available at http://localhost:3001

Frontend Setup

Unified Web App (Recommended)

The unified web app consolidates all product features (HRIS/Nexus, Payroll/PayLinQ, Recruitment/RecruitIQ, Scheduling/ScheduleHub) into a single application:

# From project root (uses pnpm workspace)
pnpm dev:web

# Or navigate to web app
cd apps/web

# Install dependencies
pnpm install

# Setup environment variables
cp .env.example .env
# Edit .env with API URL

# Start development server
pnpm dev

Web app will be available at http://localhost:5177

βš™οΈ Configuration

Backend Environment Variables

Create a .env file in the backend directory:

# Server
NODE_ENV=development
PORT=3001

# Database
DB_HOST=localhost
DB_PORT=5432
DB_NAME=recruitiq
DB_USER=postgres
DB_PASSWORD=your_password

# JWT
JWT_SECRET=your_jwt_secret_minimum_32_characters
JWT_EXPIRES_IN=24h

# Encryption
ENCRYPTION_KEY=your_encryption_key_32_bytes_hex

# Email (optional)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=[email protected]
SMTP_PASSWORD=your_password

# Redis (optional - for caching)
REDIS_HOST=localhost
REDIS_PORT=6379

Frontend Environment Variables

Create .env file in apps/web directory:

VITE_API_URL=http://localhost:3001/api
VITE_APP_NAME=RecruitIQ Web

🐳 Docker Development Setup

Quick Start (Automatic Database Setup)

For rapid development environment setup with automated database initialization:

# Navigate to backend directory
cd backend

# Option 1: Basic setup (manual tenant creation required)
.\docker-init\setup.ps1

# Option 2: Complete setup with automatic tenant creation
# (requires license-id and customer-id from existing database records)
.\docker-init\setup.ps1 -LicenseId "your-license-uuid" -CustomerId "your-customer-uuid"

# Reset environment (clean slate)
.\docker-init\setup.ps1 -Reset

What happens automatically:

  • βœ… PostgreSQL 15 container with RecruitIQ database
  • βœ… Database schema creation (migrations)
  • βœ… Production-ready seed data (organizations, users, features)
  • βœ… Conditional tenant creation (when license/customer IDs provided)
  • βœ… Development user account creation

Manual Docker Setup

If you prefer manual control:

# Clone and navigate
git clone https://github.com/yourorg/recruitiq.git
cd recruitiq/backend

# Setup environment
cp .env.example .env
# Edit .env with your configuration

# Start services
docker-compose up -d

# Check status
docker-compose ps

# View logs
docker-compose logs -f postgres

Tenant Creation

If you didn't provide license/customer IDs during setup:

# Create tenant manually (inside running container)
docker-compose exec backend node scripts/onboard-tenant.js \
  --license-id "your-license-uuid" \
  --customer-id "your-customer-uuid" \
  --email "[email protected]" \
  --name "Your Company"

Validation & Troubleshooting

# Validate setup
.\docker-init\validate.ps1

# Test both scenarios
.\docker-init\test-workflow.ps1 -FullTest

# Check database status
docker-compose exec postgres psql -U postgres -d recruitiq -c "\dt"

# View recent logs
docker-compose logs --tail 20 postgres

# Reset if needed
docker-compose down -v

Quick Reference

For a comprehensive command reference, see: backend/docker-init/QUICK_REFERENCE.md .\docker-init\setup.ps1 -Reset


**Note:** License and customer IDs must come from existing database records. Contact your system administrator or check the platform database for valid values.

See [Docker Database Auto-Initialization](./backend/docker-init/README.md) for detailed documentation.

## πŸ§ͺ Testing

### Backend Tests

```bash
cd backend

# Run all tests
npm test

# Run tests with coverage
npm run test:coverage

# Run specific test suite
npm test -- JobService.test.js

# Run integration tests
npm run test:integration

# Run security tests
npm run test:security

Frontend Tests

cd apps/web

# Run unit tests
npm test

# Run E2E tests
npm run test:e2e

# Run tests with UI
npm run test:ui

πŸ“Š Test Coverage Requirements

  • Overall: 80% minimum
  • Services: 90% minimum
  • Repositories: 85% minimum
  • Controllers: 75% minimum

Current coverage: 32/32 integration tests passing (100%)

πŸƒ Running in Production

Using Docker

# Build images
docker-compose build

# Start services
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down

See Docker Deployment Guide for detailed instructions.

Manual Deployment

# Backend
cd backend
npm run build
NODE_ENV=production npm start

# Frontend (Unified Web App)
cd apps/web
npm run build
# Serve dist/ folder with nginx or similar

πŸ”’ Security

RecruitIQ implements enterprise-grade security:

  • Authentication: JWT-based authentication with refresh tokens
  • Authorization: Role-based access control (RBAC)
  • Tenant Isolation: Organization-level data segregation enforced at database level
  • Input Validation: Comprehensive validation using Joi schemas
  • SQL Injection Prevention: Parameterized queries with custom wrapper
  • XSS Prevention: Output encoding and Content Security Policy
  • CSRF Protection: CSRF tokens for state-changing operations
  • Rate Limiting: API rate limiting to prevent abuse
  • Audit Logging: Complete audit trail of all operations

See Security Standards for complete security guidelines.

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Read the standards: Start with CODING_STANDARDS.md
  2. Create a branch: git checkout -b feature/your-feature
  3. Follow conventions: Use proper commit message format (see Git Standards)
  4. Write tests: Maintain test coverage requirements
  5. Submit PR: Fill out the PR template completely

Development Workflow

# 1. Create feature branch
git checkout -b feature/job-salary-filter

# 2. Make changes following coding standards

# 3. Write tests
npm test

# 4. Commit with conventional format
git commit -m "feat(jobs): add salary range filter to job search"

# 5. Push and create PR
git push origin feature/job-salary-filter

Code Review Process

All code changes require:

  • Code follows Coding Standards
  • Tests added/updated with 80%+ coverage
  • All tests passing
  • Documentation updated
  • PR template filled out
  • At least one approving review

πŸ“ Project Structure

recruitiq/
β”œβ”€β”€ backend/                 # Node.js/Express API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ controllers/    # HTTP request handlers
β”‚   β”‚   β”œβ”€β”€ services/       # Business logic
β”‚   β”‚   β”œβ”€β”€ repositories/   # Data access layer
β”‚   β”‚   β”œβ”€β”€ middleware/     # Express middleware
β”‚   β”‚   β”œβ”€β”€ routes/         # API routes
β”‚   β”‚   β”œβ”€β”€ products/       # Dynamic product modules
β”‚   β”‚   β”œβ”€β”€ utils/          # Utility functions
β”‚   β”‚   └── database/       # Database config & migrations
β”‚   └── tests/              # Test suites
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ web/                # Unified React application
β”‚   β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”‚   β”œβ”€β”€ components/  # Reusable React components
β”‚   β”‚   β”‚   β”œβ”€β”€ pages/       # Product module pages
β”‚   β”‚   β”‚   β”œβ”€β”€ contexts/    # React contexts
β”‚   β”‚   β”‚   β”œβ”€β”€ services/    # API service layer
β”‚   β”‚   β”‚   └── utils/       # Utility functions
β”‚   β”‚   └── tests/           # Component tests
β”‚   └── portal/              # Deprecated (merged into web)
β”œβ”€β”€ packages/                # Shared packages
β”‚   β”œβ”€β”€ api-client/         # Centralized API client
β”‚   β”œβ”€β”€ auth/               # Authentication utilities
β”‚   β”œβ”€β”€ types/              # TypeScript type definitions
β”‚   β”œβ”€β”€ ui/                 # Shared UI components
β”‚   └── utils/              # Shared utilities
β”œβ”€β”€ docs/                    # Documentation
β”‚   β”œβ”€β”€ BACKEND_STANDARDS.md
β”‚   β”œβ”€β”€ FRONTEND_STANDARDS.md
β”‚   β”œβ”€β”€ TESTING_STANDARDS.md
β”‚   └── ... (all standards documents)
└── CODING_STANDARDS.md     # Main standards overview

🎯 Performance Goals

  • API Response Time: P95 < 200ms
  • Database Queries: < 100ms for simple queries
  • Page Load Time: < 2 seconds
  • Lighthouse Score: > 90
  • Bundle Size: < 200KB gzipped

See Performance Standards for optimization guidelines.

πŸ“ˆ Roadmap

Current Phase (Phase 2) βœ…

  • Controller to Service layer migration
  • Comprehensive test coverage
  • Complete coding standards documentation
  • Mobile UX strategy proposal (PWA recommendation)

Next Phase (Phase 3) - In Planning

  • Progressive Web App (PWA) for Employees - Mobile-first employee portal (Q1 2026)
    • PWA infrastructure (service worker, manifest)
    • Employee self-service features (attendance, payroll, profile)
    • Offline capabilities and push notifications
  • Advanced search and filtering
  • Email notifications
  • Resume parsing with AI
  • Integration with job boards
  • Advanced analytics dashboard

Future Phases

  • Native mobile applications (iOS/Android) - Evaluate after PWA adoption
  • Video interview integration
  • AI-powered candidate matching
  • Multi-language support

πŸ“ž Support

πŸ“„ License

MIT License - see LICENSE file for details

πŸ‘₯ Team

RecruitIQ is built and maintained by a dedicated team of developers committed to creating the best recruitment management platform.

πŸ™ Acknowledgments

  • Express.js community
  • React community
  • PostgreSQL community
  • All contributors and testers

Important: Before writing any code, please read the Coding Standards document. It contains mandatory guidelines that all code must follow.

For questions about standards or architecture decisions, please refer to the relevant documentation or open a discussion issue.

About

ATS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •