WP Manifestindependent plugin directory
manifest / analytics / wpcalibrate-job-board

WPCalibrate Job Board

A modern, production-grade frontend job board, career portal, and applicant tracking system (ATS) for WordPress.

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/zeeshanraza-official/wpcalibrate-job-board/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Tests

WPCalibrate Job Board is a modern, standalone, enterprise-grade WordPress recruitment engine, career portal, and applicant tracking system (ATS). Designed from the ground up with clean object-oriented architecture, it delivers a lightning-fast frontend job browsing experience, self-service portals for employers and job seekers, secure candidate resume vaults, automated transactional emails, and valid Google Jobs structured data.


Table of Contents


About

Why WPCalibrate Job Board?

Traditional WordPress job boards frequently rely on bloated frameworks, force a hard dependency on WooCommerce just for basic listings, or store high-volume application data inside the standard wp_posts and wp_postmeta tables. This causes database bloat and severe query slowdowns at scale.

WPCalibrate Job Board was engineered with a modern software design philosophy:

  • Zero WooCommerce Hard Dependency: Works completely standalone out-of-the-box for free job posting. Extensible interfaces (ListingPackageInterface) and declared High-Performance Order Storage (HPOS) readiness allow commercial monetization add-ons to integrate without altering core logic.
  • Dedicated High-Speed Database Table: Candidate applications are stored in a dedicated transactional table (wp_wpcalibrate_job_applications) with compound indexes on job_id, employer_user_id, candidate_user_id, and status. This keeps your site fast even with tens of thousands of applicants.
  • In-Request Expiry Enforcement: Jobs are checked in real time during browsing and submission; expired jobs are immediately locked against late submissions without waiting for background cron jobs.

Technical Architecture

  • Namespace: WPCalibrate\JobBoard\ (PSR-4 compliant)
  • Bootstrap: wpcalibrate-job-board.php with custom SPL autoloader
  • Composition Root: WPCalibrate\JobBoard\Plugin container
  • Custom Post Types:
    • wpcal_job (Job Listings)
    • wpcal_company (Employer Profiles)
  • Taxonomies:
    • wpcal_job_category (Job Categories)
    • wpcal_job_type (Full-time, Part-time, Contract, Remote, Internship, etc.)
    • wpcal_job_skill (Technical & Soft Skills)
  • Custom Table: {$wpdb->prefix}wpcalibrate_job_applications (Schema version: 1.0.0)

Features

Candidate Experience

  • Faceted Job Search: Real-time keyword search, location filtering, workplace types (On-site, Hybrid, Remote), category browsing, and job-type filtering.
  • Instant Application Flow: Seamless modal or in-page application form supporting cover letters and document attachments (.pdf, .doc, .docx).
  • External URL Applications: Supports direct redirect links to external ATS systems (Greenhouse, Lever, Workday) when internal application is disabled.
  • Candidate Portal: Frontend dashboard ([wpcalibrate_candidate_dashboard]) to view submission history, hiring stages, and profile details.
  • Saved Jobs / Bookmarks: Save listings for later review with authenticated REST API endpoints (/wp-json/wpcalibrate/v1/saved-jobs).

Employer Self-Service & ATS

  • Company Branding Profiles: Dedicated employer profiles with company logo, website URL, headquarters location, company size, and social links.
  • Frontend Job Posting: Responsive, validated multi-section submission form ([wpcalibrate_job_submission]) with salary range, currency, location, workplace type, and expiration deadline.
  • Applicant Tracking System (ATS):
    • Track applicants through 8 recruitment stages: New, Reviewing, Shortlisted, Interview, Offered, Hired, Rejected, Withdrawn.
    • Candidate initials avatar, structured profile cards, cover letter reader, and timestamp tracking.
    • Private internal employer notes on every candidate submission.
    • Secure, authenticated streaming downloads for candidate resume attachments.

Administrator Control & Metrics

  • Executive Metrics Dashboard: Overview of active published jobs, pending moderation queue, total pipeline volume, new unread applications, and registered employers/candidates.
  • Pending Moderation Queue: Configurable mandatory administrator approval before newly submitted jobs from employers are published publicly.
  • Isolated Admin Notice Architecture: Guarantees third-party notices (Elementor, WooCommerce, Core updates) never break the plugin header flexbox.
  • 7-Tab Modern Settings API:
    • General: Core moderation, listing duration, salary privacy, expiry settings.
    • Registration: Account creation rules, default role assignments, password requirements.
    • Pages: Automatic page generator and page assignments.
    • Emails: 8 transactional email templates with safe placeholder tags ({candidate_name}, {job_title}, etc.).
    • Privacy: Data retention policies, GDPR personal data exporter and eraser integration.
    • License: Marketplace license validation bridge.
    • Support: Direct documentation links and diagnostic system health info.

Security & Data Protection

  • IDOR Protection: Central Ownership authorization service verifies that employers can only inspect their own candidates and manage their own jobs.
  • Protected Resume Document Vault: Resumes are stored in a private directory (wp-content/uploads/wpcalibrate-job-board/resumes/) shielded by server-level .htaccess denial rules and served strictly via tokenized streaming downloads (ResumeService::serveDownload()).
  • Server-Side File Verification: Enforces MIME validation (finfo/mime_content_type), extension allowlists (pdf, doc, docx), and file size limits.
  • GDPR Ready: Integrated with WordPress Core's Export Personal Data and Erase Personal Data tools.
  • SEO & Structured Data: Automatic JSON-LD schema.org/JobPosting generation for Google Jobs indexing.

Documentation & Setup Guide

System Requirements

  • WordPress: 6.4 or higher (Tested up to 7.1.3)
  • PHP: 8.2 or 8.3
  • Database: MySQL 5.7+ or MariaDB 10.3+
  • Web Server: Apache or Nginx with .htaccess or private storage support

Installation

Option 1: WordPress Dashboard Upload (ZIP)

  1. Download the latest wpcalibrate-job-board-1.0.0.zip from the Releases page.
  2. In your WordPress admin, navigate to Plugins → Add New → Upload Plugin.
  3. Choose the downloaded ZIP file and click Install Now.
  4. Click Activate Plugin.

Option 2: Git Clone

Clone the repository directly into your WordPress plugins folder:

cd wp-content/plugins/
git clone https://github.com/zeeshanraza-official/wpcalibrate-job-board.git wpcalibrate-job-board

One-Click Updates from WordPress Dashboard

This repository is pre-configured with standard GitHub update headers:

  • GitHub Plugin URI: https://github.com/zeeshanraza-official/wpcalibrate-job-board
  • Release Asset: true

How to enable automatic updates:

  1. Install and activate the free Git Updater or GitHub Updater plugin on your WordPress site.
  2. Once activated, any new release tagged on this repository (e.g. v1.0.1, v1.1.0) will automatically appear as an available update under Dashboard → Updates and Plugins in your WordPress admin!
  3. You can update with a single click just like an official WordPress.org plugin.

Quick Start Roadmap (4 Steps)

  1. Assign Default Pages: Go to WPCalibrate → Settings → Pages Tab and click Auto-Generate Pages to generate:
    • Jobs Archive (/jobs/)
    • Employer Dashboard (/employer-dashboard/)
    • Candidate Dashboard (/candidate-dashboard/)
  2. Configure Moderation Policy: Navigate to WPCalibrate → Settings → General Tab. Toggle Job Moderation on if you wish to approve jobs before publication, or off for instant publishing.
  3. Customize Email Notifications: In WPCalibrate → Settings → Email Notifications, review the 8 automated emails sent to employers and applicants.
  4. Publish Jobs: Employers can submit openings from the frontend, or administrators can publish directly via WPCalibrate → Post New Job.

Shortcodes Reference

Shortcode Description Example Usage
[wpcalibrate_jobs] Main searchable job listings with keyword, location, and facet filters [wpcalibrate_jobs per_page="12" show_filters="yes"]
[wpcalibrate_job_details] Detailed single job listing layout [wpcalibrate_job_details id="105"]
[wpcalibrate_job_submission] Employer frontend job posting form [wpcalibrate_job_submission]
[wpcalibrate_employer_dashboard] Complete self-service employer portal [wpcalibrate_employer_dashboard]
[wpcalibrate_candidate_dashboard] Complete candidate application portal [wpcalibrate_candidate_dashboard]
[wpcalibrate_candidate_saved_jobs] Standalone candidate bookmarked jobs list [wpcalibrate_candidate_saved_jobs]
[wpcalibrate_candidate_applications] Standalone candidate submission history [wpcalibrate_candidate_applications]

Gutenberg Blocks

The plugin includes two server-side rendered Gutenberg blocks compatible with the Full Site Editing (FSE) block editor:

  • wpcalibrate/job-listings: Interactive job feed with block controls for items per page, workplace type, and category filters.
  • wpcalibrate/featured-jobs: Compact curated carousel/grid highlighting featured opportunities.

Roles & Access Control Matrix

Role Submit Jobs Manage Own Jobs Manage Company Apply to Jobs Review Applicants Manage All Settings
Administrator ✅ ✅ ✅ ✅ ✅ ✅
Employer (wpcal_employer) ✅ ✅ ✅ ❌ ✅ (Own Only) ❌
Candidate (wpcal_candidate) ❌ ❌ ❌ ✅ ❌ ❌
Guest / Public ❌ ❌ ❌ ✅ (If enabled) ❌ ❌

Theme Overrides

Custom frontend templates can be overridden in your active WordPress child theme without losing changes on plugin updates:

  1. Create a folder named wpcalibrate-job-board/ inside your active theme directory: wp-content/themes/your-theme/wpcalibrate-job-board/
  2. Copy any template file from wpcalibrate-job-board/templates/ into that directory.
  3. The plugin will automatically detect and load your theme's template.

Changelog

[1.0.3] - 2026-10-19

  • Fixed: WordPress Core notice relocation bug where Elementor Pro and onboarding notices broke the .wpcalibrate-header layout.
  • Added: Screen-reader heading anchor <h1 class="wp-heading-inline screen-reader-text"> and <hr class="wp-header-end"> across all admin views.
  • Enhanced: Navigation tabs upgraded to modern pill-style segmented tab bar (.wpcal-nav-tabs).
  • Enhanced: Metric cards grid made responsive (6 cols on desktop, 3 cols on tablet, 2 cols on mobile) with tinted icon wraps (.wpcal-metric-icon-wrap).
  • Enhanced: 2-column layout collapse breakpoint lowered to 920px for laptop displays.
  • Enhanced: Recent applications empty state redesigned with circular icon badge (.wpcal-empty-icon-box).

[1.0.2] - 2026-10-17

  • Added: Modern elevated card design system across all 7 Settings tabs (.wpcal-settings-card).
  • Added: Redesigned single application review screen with candidate initials avatar, hiring stage switcher, and protected resume streaming trigger.
  • Added: 4-tier Roles & Access Control matrix to Overview & How-To guide.
  • Enhanced: Admin stylesheet expanded with WCAG AA compliant contrast and smooth hover transitions.

[1.0.1] - 2026-10-17

  • Fixed: Admin sidebar menu icon scaling; official white logo icon scaled crisply to 20x20px.
  • Added: Comprehensive Overview & Guide tab on the main Job Board admin screen.
  • Added: Dynamic pending moderation alert banner on the operational dashboard.

[1.0.0] - 2026-10-17

  • Initial Production Release: Core architecture, custom post types (wpcal_job, wpcal_company), taxonomies, transactional applications table, IDOR security, resume vault, 8 transactional emails, REST API endpoints, 7 shortcodes, 2 Gutenberg blocks, and WooCommerce HPOS bridge.

Contributing & Support


License

This project is licensed under the GNU General Public License v2.0 or later - see the LICENSE.txt file for details.