NX Careers
A lightweight WordPress careers plugin with AJAX job listing, single job pages, and CV-based applications stored in a custom database table.
by Irfan · github.com/irfanabbasi22/wordpress-job-crud-plugin
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/irfanabbasi22/wordpress-job-crud-plugin/archive/refs/heads/main.zipShort description: A lightweight WordPress careers plugin with AJAX job listing, single job pages, and CV-based applications stored in a custom database table.
Overview
NX Careers adds a Careers post type, category/location filtering, an AJAX-powered listing UI, and an application form that uploads a PDF CV and stores applications in a custom DB table (no custom post type for applications).
Features
- Careers post type: Manage job posts in WordPress admin.
- Taxonomies: Job Category and Location.
- AJAX listing: Category switching + Load More without page reload.
- AJAX applications:
- PDF-only CV upload (max 5 MB)
- Mobile number validation (digits only)
- Field-level error display
- Custom applications table:
wp_nx_career_job_applicants(prefix depends on your install). - Admin Applications screen: View applications from the custom table.
- Emails:
- Applicant confirmation + Admin notification
- HTML templates stored in
templates/emails/ - Optional CV attachment to admin email (setting)
{cv_url}placeholder tag supported
Requirements
- WordPress 6.0+
- PHP 7.4+
Installation
- Copy the plugin folder to:
wp-content/plugins/nx-careers/
- Activate NX Careers from WP Admin → Plugins.
On activation the plugin auto-creates the applications table:
{prefix}nx_career_job_applicants
Usage
Careers listing shortcode
Add the shortcode to any page:
[nx_careers]
Optional attribute:
[nx_careers per_page="6"]
Single job application form
The application form is rendered on single job pages (via the plugin’s template/hooks).
Front-end validation
- CV: PDF only, max 5 MB
- Mobile: required, digits-only (7–15 digits)
Data storage
Applications are stored in a custom DB table (not a CPT):
Table: {prefix}nx_career_job_applicants
Columns (high level):
id(PK)career_idfirst_namelast_name(optional)emailphonemessagecv_attachment_id(WP attachment ID)applied_at
Admin: Applications
Applications are available under:
- WP Admin → Careers → Applications
Includes filtering by:
- Search (name/email/phone)
- Date range (applied date)
- Job / Category / Location
Email templates
Email HTML templates live here:
templates/emails/applicant.phptemplates/emails/admin.php
These templates receive:
$site_name$brand_color$subject$content_html$cta_url(currently blanked to disable the button)
Email settings
Go to:
- WP Admin → Careers → Settings
You can edit:
- Applicant subject/body
- Admin subject/body
- Recipients list
- Attach CV to admin email (toggle)
Supported tags
Admin & applicant bodies support replacement tags, including:
{applicant_first},{applicant_last},{applicant_name}{applicant_email},{applicant_phone},{applicant_message}{job_title},{job_category},{job_location}{application_id},{site_name}{cv_url}(URL to the uploaded CV attachment)
Note: {job_url} is intentionally disabled (renders as empty).
Development notes
Frontend assets
SCSS is compiled to a single CSS file used on the front-end:
- Source:
assets/css/frontend.scss - Output:
assets/css/frontend.css
Build:
cd assets
npm install
npm run build
Watch:
cd assets
npm run watch
Security
- Uses WordPress nonces for AJAX endpoints.
- Server-side validation always runs, even if front-end JS validation is bypassed.
- CV uploads are restricted to PDF + size-limited.
License
GPL v2 or later.