A front-end-only hiring management application built with React
Manage Jobs, Candidates, and Assessments with a professional, intuitive UI.
Powered by MSW (Mock Service Worker) + Dexie.js for persistence.
- Project Overview
- Core Philosophy
- Tech Stack & Frameworks
- Features
- Novel Features
- Setup & Installation
- Project Structure
- API Simulation
- Comparison with Requirements
- Future Enhancements
- Contributing
- License
TalentFlow is a front-end-only hiring management platform.
It enables HR teams to manage the full hiring pipeline:
- Posting job opportunities
- Tracking candidates across stages
- Evaluating them with job-specific assessments
- 100% browser-based app (no backend required)
- MSW simulates REST API endpoints
- Dexie.js + IndexedDB for persistent local storage
- Fully interactive, scalable, and production-ready front-end demo
- Why: Modern, component-based architecture that enables reusability and scalability.
- How used:
- Built UI components like
JobCard
,KanbanColumn
,StatsCard
- State management via
useState
,useEffect
,useMemo
,useCallback
- Routing handled by
react-router-dom
- Built UI components like
- Why: To simulate a real backend during development.
- How used:
- Intercepts
fetch
requests and provides mock responses - Introduces latency (200โ1200ms) and error rate (5โ10%) for resilience testing
- Connected with Dexie to provide stateful API behavior
- Intercepts
- Why: Persistent, client-side database with rich queries.
- How used:
- Stores jobs, candidates, applications, assessments
- Provides schema versioning for evolving data models
- Ensures persistence across sessions without backend
- Why: To generate realistic seed data for prototyping.
- How used:
- Auto-populates 25 jobs & 1000+ candidates on first load
- Randomized applications for new job postings
- Why: Accessible, lightweight, and flexible drag-and-drop library.
- How used:
- Jobs Dashboard โ Drag to reorder job cards
- Kanban Board โ Move candidates across stages
- Why: Declarative React-based charts for dashboards.
- How used:
- Bar chart: Candidate distribution across stages
- Donut chart: Pending vs. Completed assessments
- Why: Adds smooth, professional animations.
- How used:
- Animations for modals, transitions, and list reordering
- Enhances perceived performance and polish
- Why: Utility-first CSS framework for rapid UI development.
- How used:
- Consistent design system across all components
- Responsive layouts and clean styling
- Global Statistics Header (Total Jobs, Candidates, Applications, Hires)
- Create New Job modal with validation
- Auto-seeded applications for realism
- Paginated & sortable job list
- Search + filter by status
- Drag-and-drop job reordering (saved in DB)
- Multi-column dashboard layout
- Candidate pipeline bar chart
- Assessment stats donut chart
- Action Panel: View Applications, Kanban, Build Assessment, Edit, Archive
- Stage-based columns (Applied โ Screening โ Tech โ Offer โ Hired/Rejected)
- Drag-and-drop candidate cards
- Visual indicators for assessments (Pending โณ, Submitted โ )
- Real-time updates synced to Dexie
- Timeline of stage progression
- Assessment timing tooltip (start, end, duration)
- Assessment button enabled only in Tech Interview stage
- Builder with multiple question types (MCQ, Text, Numeric, File Upload)
- Live preview of assessment form
- Validation: required fields, ranges, conditionals
- Automated status updates:
- Enter Tech stage โ Pending assessment
- Submit assessment โ Status = Submitted
Beyond the required features, extra functionalities were implemented:
-
Assessment Lock (Critical Constraint 1)
- Candidate cannot be moved out of Tech stage if assessment is pending
- Prevents breaking workflow rules
-
No Backward Moves (Critical Constraint 2)
- Candidates cannot be moved back to previous stages
- Only exception: moving to "Rejected"
-
Automated Workflow Triggers
- Entering Tech Interview stage โ Creates pending assessment + starts timer
- Assessment submission โ Updates candidate & assessment tables instantly
-
Real-Time UI Sync
- Assessment status updates instantly in UI without refresh
- Kanban & Candidate Profile remain consistent
-
Advanced Dashboards
- Data-rich statistics on dashboard & job detail page
-
UI/UX Polish
- Smooth animations via Framer Motion
- Tooltips for timelines & statuses
- Consistent, professional Tailwind design system
# Clone repo
git clone https://github.com/Aayushman-Gupta/talentflow.git
cd talentflow
# Install dependencies
npm install
# Start development server
npm run dev