$ cat README.md
Job Portal
Full-Stack Recruitment Platform
A full-stack job portal where candidates search, save and apply for jobs and employers post openings, with JWT auth, REST APIs and a personal dashboard. Designed and built end-to-end by Shreyash Tripathi, a Frontend Developer and UI/UX Engineer based in Noida, India.
Overview
Job Portal connects job seekers and employers in one app. Candidates search and filter openings, save jobs for later and apply; employers post new roles; and everyone gets a personal dashboard that tracks their activity.
Shreyash Tripathi built it end to end as a full-stack Next.js 15 app with the App Router and TypeScript: the pages and UI, the REST API routes, authentication and the database schema.
How it works
Authentication
Register and login API routes hash passwords with bcrypt and issue JSON Web Tokens, with separate sign-up flows for job seekers and employers.
Jobs and applications
REST endpoints serve jobs, applications, profiles and resumes. The job board filters by keyword, location and job type, and candidates can save jobs and track every application they send.
Data model
A relational PostgreSQL schema covers users, companies, jobs, applications, saved jobs, skills, work experience and education, with seed data for development.
Dashboard
Each user gets a dashboard with application and saved-job stats and recent activity; employers post new openings from a dedicated form.
Interface
Responsive layouts from mobile to desktop, a dark/light theme that follows the system setting, and loading skeletons, built with Tailwind CSS and shadcn/ui components.
Challenges & solutions
challenge: Job seekers and employers need accounts, and passwords must never be stored or compared in plain text.
solution: The register route hashes passwords with bcrypt (12 salt rounds) and the login route compares hashes before signing a JSON Web Token for the session.
challenge: A job portal's data is highly connected: people, companies, jobs, applications, saved jobs and full profiles all reference each other.
solution: A relational PostgreSQL schema with foreign keys ties users, companies, jobs, applications, saved jobs, skills, work experience and education together, with seed data for testing.
challenge: Pages that load lists of jobs and stats can feel slow or jumpy while data arrives.
solution: Every main route (home, jobs, companies, dashboard) has its own loading skeleton through the App Router's loading.tsx, so the layout appears instantly and fills in without jumping.
Results
- Shipped and live at v0-mern-job-portal-one.vercel.app, with the source public on GitHub.
- 12 pages, including jobs, companies, dashboard, post a job, profile, resume, pricing, login and sign-up.
- 6 REST API routes (register, login, jobs, applications, profile, resume) and an 8-table database schema.
What I built
- Built the full stack with the Next.js 15 App Router, TypeScript and REST API routes.
- JWT authentication with bcrypt password hashing for job seekers and employers.
- Job search with filters, saved jobs, application tracking and a user dashboard; deployed on Vercel.
Tech stack
Job Portal is built with Next.js 15, TypeScript, REST API, JWT, bcrypt, PostgreSQL, Tailwind CSS and shadcn/ui.
- Next.js 15
- TypeScript
- REST API
- JWT
- bcrypt
- PostgreSQL
- Tailwind CSS
- shadcn/ui
note: The live demo is a working prototype: its API routes serve in-memory sample data and the dashboard keeps state in the browser, while the SQL schema is ready for a real PostgreSQL database.

About the developer
Shreyash Tripathi is a Frontend Developer and UI/UX Engineer in Noida, India, currently Junior Developer, UI/UX at Garage Collective. He builds React, Next.js and TypeScript interfaces for AI-integrated SaaS products.