A Job Portal Project in PHP and MySQL is a website where job seekers create a profile, upload a resume and apply for jobs, while companies post vacancies and shortlist candidates from one panel. It is a perfect final-year project for BCA, MCA, B.Tech and M.Tech students because it has three user roles, real search and filters, and file upload — almost everything an examiner wants to see. On this page you will get the complete synopsis, the modules of all three users, the database tables with SQL, and the exact steps to run the project on XAMPP.
Project Synopsis
Ask any fresher how the job hunt feels: fifty tabs open, jobs scattered across random websites, WhatsApp forwards and company pages, and no idea where an application actually went. On the other side, small companies and startups have the opposite problem — they are hiring, but they have no proper page to post the job, collect resumes and track who applied.
The Job Portal solves both sides of this problem in one system. Job seekers register, build a profile and search jobs by keyword, location or category. Employers register their company, post jobs and manage every application from a dashboard. The admin keeps the whole portal clean by approving companies and moderating job posts before they go live. It is a small version of the big job sites, built with simple PHP and MySQL.
Why This Project Scores Well in Final Year
Most student projects have one user and a few forms. This one has three user roles — admin, employer and job seeker — and each role sees a completely different side of the system. That single point covers a big part of the viva: role-based login, session handling and access control.
It also has the features examiners love to ask about. Search with filters shows you can write real SQL queries with conditions, not just display a table. Resume upload shows file handling, validation and security. Application tracking shows status updates flowing between two users. And because a job portal feels like a real startup product, your demo never looks like a college exercise — it looks like software people actually use.
Modules of the Project
The system is divided into three modules, one for each type of user.
Admin Module
- Dashboard — total companies, job seekers, live jobs and applications at a glance.
- Manage Companies — approve or reject new company registrations so fake employers never enter the portal.
- Moderate Job Posts — review every job before it goes live; remove spam or closed vacancies.
- Manage Job Seekers — view registered seekers, block fake or abusive accounts.
- Reports — jobs posted per month, applications per category and most active companies.
Employer Module
- Register Company — create a company profile with name, industry, location and logo.
- Post and Edit Jobs — add a vacancy with title, category, location, salary and full description; edit or close it anytime.
- View Applicants — see every candidate who applied, with profile details and resume download.
- Shortlist or Reject — change application status so the seeker knows exactly where they stand.
Job Seeker Module
- Register and Build Profile — personal details, education, skills and experience in one profile. A good profile starts with a strong resume, so our developer resume guide for freshers is worth reading before you design this form.
- Upload Resume — attach a PDF resume to the profile, used automatically with every application.
- Search Jobs — search by keyword, filter by location and category, and sort by latest or salary.
- Apply in One Click — apply with the saved profile and resume, no long forms every single time.
- Track Application Status — see whether each application is applied, shortlisted, rejected or called for interview.
Main Features
| Feature | What It Does |
|---|---|
| Job Search with Filters | Seekers search by keyword and filter results by location and category, with the newest jobs on top. |
| One-Click Apply | The saved profile and resume are sent with one click, so applying takes seconds, not twenty minutes. |
| Resume Upload (PDF) | Candidates upload a PDF resume once and reuse it for every application. |
| Application Status Tracking | Every application moves through clear stages — applied, shortlisted, rejected or interview — visible to the seeker. |
| Admin Moderation | No job goes live until the admin approves it, which keeps spam and fake postings out of the portal. |
| Employer Dashboard | Companies manage all their jobs and applicants from one screen instead of a messy email inbox. |
| Category-wise Browsing | Jobs are grouped into categories like IT, Sales, Design and Accounts for easy discovery. |
Technology Stack
| Layer | Technology |
|---|---|
| Frontend | HTML, CSS and JavaScript |
| UI Framework | Bootstrap |
| Backend | PHP 8.x |
| Database | MySQL |
| Local Server | XAMPP (Apache + MySQL) |
| Database Tool | phpMyAdmin |
The stack is free, simple and runs on any college computer. For the database work, use PHP Data Objects (PDO) with prepared statements — a job portal stores passwords, emails and personal profiles, so protection from SQL injection is not optional here.
Database Tables
Four main tables run the whole portal. Users of all three roles live in one table with a role column, companies and jobs are linked by an ID, and applications connect a seeker to a job.
| Table | Purpose |
|---|---|
| users | Stores admin, employer and job seeker accounts with name, email, hashed password and role. |
| companies | Stores company profile: name, industry, location, website and approval status. |
| jobs | Stores every job post with company, category, location, salary and status. |
| applications | Links a job seeker to a job with the application date and current status. |
Here is the SQL for the jobs table. Every column type used here is explained in the official MySQL CREATE TABLE documentation.
CREATE TABLE jobs (
id INT AUTO_INCREMENT PRIMARY KEY,
company_id INT NOT NULL,
title VARCHAR(150) NOT NULL,
category VARCHAR(80) NOT NULL,
location VARCHAR(100) NOT NULL,
salary VARCHAR(50),
description TEXT,
posted_date DATE NOT NULL,
FOREIGN KEY (company_id) REFERENCES companies(id)
);How to Run This Project on XAMPP
- Download and install XAMPP, open the XAMPP Control Panel and start the Apache and MySQL services.
- Extract the project files and copy the project folder into the htdocs folder of your XAMPP installation.
- Open localhost/phpmyadmin in the browser and create a new database for the project.
- Select the database, open the Import tab, choose the provided .sql file and import it to create all tables.
- Check the database name and username in the project's config file so they match your setup.
- Visit localhost followed by the project folder name, register one company and one job seeker account, post a job, apply for it and watch the full flow work.
What You Get in the Complete Project
The complete package gives you everything a submission actually needs: the full working source code with the database file, a ready project report with the synopsis, system requirements, DFD, ER diagram, table designs and screenshots of every screen, and a clean PPT prepared for your final presentation and viva. You can get the complete package from the Coding Cush shop. Run the full flow yourself once — register, post, apply, shortlist — and there will be no question in the demo room that surprises you.
FAQ
How is the resume upload kept safe in this project?
Three simple rules do the job. Only PDF files are accepted, checked by file type and not just the extension. A size limit (for example 2 MB) stops abuse. And uploaded files are stored outside the public web folder with random file names, so nobody can guess a URL or run an uploaded file as a script.
Can job seekers get email alerts for new jobs?
Yes, it is a great future-scope feature and easy to add: save each seeker's preferred category, and when a matching job is approved, send an alert email. Learning to send emails in PHP using PHPMailer covers everything you need for this — SMTP setup, HTML emails and error handling.
Which viva questions are asked on a job portal project?
Two classics: "How do you stop one seeker from applying twice to the same job?" — a unique check on seeker ID plus job ID in the applications table — and "How are the three user roles separated?" — a role column checked at login, with each role allowed only on its own pages.
How is this project different from LinkedIn?
Scope. LinkedIn is a professional social network with jobs as one feature; this project is a focused hiring portal for a college, a city or one industry. Smaller scope is a strength in final year — you can explain every table and every page of your system, which is exactly what the viva tests.
Conclusion
The Job Portal is one of the most complete final-year projects you can pick: three user roles, real search, safe file upload and a story every examiner understands. Build it, run the full hiring flow once, and walk into your demo sounding like you have already shipped a product.
Leave a Comment