Job Board
A multi-tenant B2B/B2C job advertisement platform with a monorepo architecture featuring consumer-facing job search, organization dashboard, admin panel, and REST API.
Architecture
A Turborepo monorepo containing 4 apps and 6 shared packages:
- apps/web — Next.js 15 + React 19 + TailwindCSS public job search for job seekers
- apps/dashboard — Next.js 15 + React 19 + Chakra UI employer dashboard for posting jobs and managing applicants
- apps/admin — Next.js 15 + React 19 + Chakra UI platform administration panel
- apps/api — NestJS 10 REST API with PostgreSQL, TypeORM, and JWT auth
Shared Packages
- @job-board/types — Shared TypeScript types and interfaces
- @job-board/config — Zod-validated environment configuration
- @job-board/backend-lib — Logger, exception filters, and API utilities
- @job-board/db — 17 TypeORM entities (Tenant, User, Organization, Job, Application, Session, etc.)
- @job-board/ui — Glassmorphism Chakra UI component library
- @job-board/eslint-config — Shared ESLint configurations
Key Features
- Multi-tenancy — X-Tenant-ID header-based data isolation with seeded tenants (HR, SI, RS)
- Role-based access — USER, CLIENT, CLIENT_ADMIN, ADMIN, SUPER_ADMIN with JWT + refresh token sessions
- Database — 17 TypeORM entities modeling tenants, users, organizations, jobs, applications, sessions, and more
Web App
Public-facing job search platform for job seekers. Browse and filter job listings, apply anonymously or with an account, track applications, and save jobs for later.
Landing page with hero section, search bar, and featured job categories
Job listings grid with sidebar filters for location, category, type, and salary range
Filtered job results showing active filter badges and updated result count
Job detail page with company info, location, salary, and apply button
Full job description with requirements, responsibilities, and benefits
Job application modal with resume upload, cover letter, and contact fields
User login page with email and password authentication
Registration page for creating a new job seeker account
Mobile responsive homepage with adapted layout and navigation
Mobile jobs listing with stacked cards and collapsible filters