PrepMed Job Listings
Complete WordPress job listing plugin with search, filters, colour customiser, field editor, and SMTP email notifications.
by PrepMed · github.com/megh-cpu/prepmed-job-listings · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/megh-cpu/prepmed-job-listings/archive/refs/heads/main.zipReadme
PrepMed Job Listings
A complete, self‑contained WordPress plugin for publishing job openings, collecting applications, and managing candidates — with built‑in search & filters, a live colour customiser, an editable field & email‑template manager, and reliable SMTP email delivery.
✨ Features
| Feature | Description | |
|---|---|---|
| 🧩 | Custom Job Post Type | Jobs are managed as a dedicated pmjl_job post type with archives, featured images, and clean /jobs/ permalinks. |
| 🔍 | Search & Filters | Front‑end job board with live search plus location, level, and department dropdown filters. |
| 📝 | Application Form | AJAX‑powered application form with resume upload, nonce protection, and configurable fields. |
| 🗂️ | Submissions Manager | All applications are stored in a custom database table and managed from the admin (shortlist / reject / status tracking). |
| ✉️ | Email Notifications | Automatic admin notifications, applicant confirmations, plus one‑click shortlist & rejection emails — all templates editable from Settings. |
| 📮 | Built‑in SMTP | Optional SMTP mailer (Hostinger / cPanel optimised) so emails land in the inbox, not spam. No extra plugin required. |
| 🎨 | Live Colour Customiser | Brand the entire job board from Settings using a colour picker — changes apply instantly via dynamic CSS variables. |
| ⚙️ | Field & Template Editor | Rename fields, manage locations, and customise every email subject & body without touching code. |
📦 Requirements
- WordPress 5.5+
- PHP 7.4+
- A working mail setup (PHP
mail()works out of the box; SMTP recommended for deliverability)
🚀 Installation
- Download or clone this repository:
git clone https://github.com/<your-username>/prepmed-jobs.git - Copy the plugin folder into your WordPress installation:
wp-content/plugins/prepmed-jobs/Make sure the main file
prepmed-jobs.phpsits at the root of that folder. - In the WordPress admin, go to Plugins → Installed Plugins and activate PrepMed Job Listings.
- On activation the plugin automatically:
- registers the Job Listings post type, and
- creates the
{prefix}_pmjl_submissionsdatabase table for applications.
🛠️ Usage
Display the job board
Add the shortcode to any page or post:
[pmjl_jobs]
Optional attribute:
[pmjl_jobs posts_per_page="10"]
This renders the searchable, filterable job listing. Each job links to a single‑job page that includes the application form.
Add jobs
Go to Job Listings → Add New Job, fill in the title, description, and the job meta (type, mode, location, level, department, sort priority), then publish.
Manage applications
Open Job Listings → Applications to view submissions, download resumes, and shortlist or reject candidates — each action can trigger a templated email to the applicant.
Configure settings
Under Job Listings → Settings you can manage:
- Notifications — admin recipient emails and message templates
- SMTP / Email — enable SMTP, set host/port/credentials, and send a test email
- Locations — the locations shown in the filter dropdown
- Appearance — brand colours via the live colour picker
- Fields — labels for the application form fields
✉️ SMTP Configuration
SMTP credentials are entered in Job Listings → Settings → SMTP / Email and stored in the WordPress database — never hard‑coded in the source.
Typical Hostinger settings:
| Setting | Value |
|---|---|
| Host | smtp.hostinger.com |
| Port | 465 (SSL) or 587 (TLS) |
| Username | your full email, e.g. hr@prepmed.in |
| Password | your email account password |
| From Email | must match the username exactly |
Hostinger rejects mail when the From address differs from the authenticated SMTP username — the plugin enforces this automatically.
Use the Send Test button on the SMTP tab to verify your configuration.
📁 Project Structure
prepmed-jobs/
├── prepmed-jobs.php # Main plugin file: constants, hooks, asset loading, dynamic CSS
├── includes/
│ ├── post-types.php # Registers the job post type + submissions DB table
│ ├── metaboxes.php # Job meta fields (type, mode, location, level, department…)
│ ├── template-loader.php # Loads the single-job template
│ ├── shortcodes.php # [pmjl_jobs] listing with search & filters
│ ├── form-handler.php # AJAX application handling + notification emails
│ ├── admin-settings.php # Settings page (notifications, locations, colours, fields)
│ ├── admin-submissions.php # Applications manager + shortlist/reject emails
│ └── smtp.php # SMTP mailer (Hostinger / cPanel optimised)
├── templates/
│ └── single-pmjl_job.php # Single job + application form template
└── assets/
├── style.css # Front-end styles
├── script.js # Front-end search/filter/form logic
├── admin.css # Admin styles
└── admin.js # Admin (colour picker, settings) logic
🔒 Security Notes
- All form input is processed through WordPress nonces and sanitisation.
- Direct file access is blocked (
if ( ! defined( 'ABSPATH' ) ) { exit; }). - No credentials are stored in the repository — SMTP and notification settings live in the site database.
📄 License
Released under the GPL‑2.0 license, consistent with WordPress core.
Built with ❤️ by PrepMed