Zeko Jobs
Zeko zeko-jobs - WordPress plugin/theme (GPL-2.0-or-later)
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/zeko-io/zeko-jobs/archive/refs/heads/main.zipJob board and recruitment plugin for WordPress with employer/seeker dashboards, application tracking, and interview scheduling.
Description
Zeko Jobs is a job board plugin for WordPress. It provides employers and job seekers with AJAX-based dashboards and integration with the Zeko ecosystem.
Features
- Employer Dashboard — Post, edit, and manage job listings; review applications; schedule interviews; track performance analytics
- Seeker Dashboard — Browse and search jobs, apply with one click, track application status, manage documents and saved searches
- Advanced Search — Full-text keyword search, location filtering, category/type/experience filters, salary range, and remote/hybrid/onsite options
- Geolocation — Browser-based geolocation with Haversine distance sorting and radius selector
- Application Pipeline — Kanban-style drag-and-drop pipeline for employers to move candidates through hiring stages
- Interview Scheduling — Schedule interviews with notes, reminders, ICS calendar export, meeting URLs (Google Meet/Zoom/Teams), and feedback collection
- Document Management — Upload and manage resumes, cover letters, and portfolios with default resume selection
- Email Notifications — Automated emails for application submissions, status changes, interview scheduling, and job expirations
- Job Alerts — Saved search alerts with configurable frequency (instant, daily, weekly)
- Performance Analytics — Track views, applications, conversion rates, and time-series data per job
- Reviews & Ratings — Job seekers can review employers; employers can rate candidates
- SEO Optimized — Schema.org JobPosting structured data, Open Graph/Twitter Card meta, XML sitemap, RSS feeds
- Dark Mode — Full dark mode support with system preference detection
- Mobile Responsive — Optimized for all screen sizes with mobile-first design
- Bulk Actions — Select multiple jobs or applications for batch operations
- Data export and erasure — Provides personal-data export and erasure requests with a 30-day grace period
- Resume Builder — Structured 6-section resume editor (Personal, Experience, Education, Skills, Certifications, Projects) with PDF export and multiple templates
- LinkedIn Integration — OAuth 2.0 "Apply with LinkedIn" and profile import
- AI Job Matching — 5-factor match scoring (skills, experience, type, location, education) with visual match % badges
- Candidate Comparison — Side-by-side comparison of 2-3 candidates
- Email Templates — Customizable email templates for employer communications
- Company Profiles — Employer company pages with logo, description, and verification
Ecosystem Integration
Zeko Jobs integrates with other Zeko plugins:
- Zeko Learn — Course recommendations based on job requirements
- Zeko Pay — Payment processing for job boosts and premium listings
- Zeko QA — Skill assessments tied to job applications
- Zeko Dashboard — Unified activity feed and profile stats
- Zeko Profile — Employment history and skills from job applications
Shortcodes
[zeko_jobs]— Job listings with filtering and search[zeko_job_single]— Single job display[zeko_job_form]— Job posting form for employers[zeko_featured_jobs]— Featured jobs carousel[zeko_job_search]— Standalone search form[zeko_jobs_dashboard]— Full dashboard with employer/seeker views
Installation
- Upload the
zeko-jobsfolder to/wp-content/plugins/ - Activate the plugin through the 'Plugins' menu in WordPress
- Ensure the Zeko core plugin is active for full functionality
- Configure settings under Zeko > Jobs Settings
- Create pages and add the appropriate shortcodes
Frequently Asked Questions
Does this plugin work standalone?
Yes. Zeko Jobs functions as a standalone job board. Activate the Zeko core plugin for dashboard integration, activity feeds, and profile stats.
How do employers post jobs?
Employers use the [zeko_job_form] shortcode or navigate to the Jobs dashboard tab. Jobs go through a moderation queue before publishing.
Can seekers apply without an account?
No. Seekers must create an account and log in to apply. This ensures application tracking and communication between employers and candidates.
How does geolocation work?
The plugin uses the browser's Geolocation API to determine the user's location, then calculates distance using the Haversine formula to sort jobs by proximity. Users can also set a radius for distance-based filtering.
Is there a payment integration?
Yes. Zeko Pay integrates for job boosts and premium listings. Payment actions are triggered via zeko_jobs_job_posted and zeko_jobs_job_boosted hooks.
Dependencies
Zeko Jobs runs standalone. For full ecosystem functionality (dashboard tabs, activity feed, unified profile stats) activate Zeko Core. Zeko Pay is optional (job boosts and premium listings), Zeko Learn and Zeko QA are optional integrations.
Privacy
Data stored includes the data you submit on employer/seeker profiles, applications, saved searches, uploaded documents/resumes, and application/interview records. Job view logs and activity entries capture an IP address. The plugin registers personal-data exporters and erasers (Tools > Export/Erase Personal Data) covering candidate documents and accounts.
- Email open tracking — Transactional email for application events includes a
hidden read-receipt image. Recipients can disable this at any time from the
email preferences page (
/jobs/email-preferences/, linked in every email footer); opted-out recipients never receive the tracking pixel. Open records are purged automatically after 90 days.
Uninstall
Deleting the plugin drops all Zeko Jobs custom tables (the shared messaging tables are only dropped when Zeko Core is not present), removes jobs-owned user meta and options, deletes pages it created, and clears its cron events.
Troubleshooting
- Jobs not appearing? Check the moderation queue (Jobs > Approval) — new posts stay pending until approved.
- Geolocation not sorting by distance? The browser must grant the Geolocation permission on the jobs page.
- Application emails not arriving? Check the mail log/fail log; the tracking pixel requires HTML-enabled email.
External Services
Zeko Jobs makes outbound requests to two external services. Both are optional and off unless you configure them.
- LinkedIn OAuth — Optionally enables "Apply with LinkedIn" and candidate
profile import. What is sent: your LinkedIn app credentials (OAuth client id /
secret) and, during sign-in, the OAuth authorization code exchanged at the
hardcoded
https://www.linkedin.comendpoints; the returned email + basic profile fields are stored locally as the candidate account. When: only when an administrator configures LinkedIn OAuth (developer.linkedin.com app) and a user chooses to apply/import with LinkedIn. Retention: LinkedIn's own policies apply to the exchange; locally only the imported profile fields are stored (removable via the plugin's personal-data export/erase tools). - Nominatim / OpenStreetMap — Optionally geocodes an employer-entered
location string into latitude/longitude for job locations. What is sent: the
location string only, to the fixed
https://nominatim.openstreetmap.org/endpoint. When: only when an employer saves a job location and the administrator enables geocoding. Retention: the resulting coordinates are cached locally; no data is stored by Nominatim beyond standard request logs (see osm.org policies). Full endpoint/payload detail (with file:line citations) is inREMOTE-SERVICES.txtin this plugin folder.
Third-party resources
Zeko Jobs bundles three third-party JavaScript libraries, licensed as follows:
- Chart.js v4.4.7 (MIT) —
assets/vendor/chartjs/chart.umd.min.js, employer analytics charts. Copyright (c) 2024 Chart.js Contributors. - Leaflet 1.9.4 (BSD-2-Clause) —
assets/vendor/leaflet/(JS, CSS, and marker/layer marker images), job-location maps. Copyright (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade. - Sortable 1.15.6 / SortableJS (MIT) —
assets/vendor/sortable/Sortable.min.js, drag-and-drop application pipeline. Copyright SortableJS contributors.
All three licenses are GPL-2.0-or-later-compatible; full license texts and the
dev-only Composer package list are in THIRD-PARTY-NOTICES.txt in this plugin
folder. All other assets (CSS, JS, icons via WordPress dashicons, screenshot)
are original Zeko work under GPL-2.0-or-later. Composer packages in vendor/
are development-only (PHPCS/PHPUnit) and are excluded from the release ZIP via
.distignore.
Screenshots
- Job board dashboard with applications pipeline
Sections
- Description
- Installation
- Frequently Asked Questions
- External Services
- Development
- Changelog
- Upgrade Notice
Development
Prerequisites
- PHP 7.4+
- Composer
Setup
- Clone or download the plugin
- Run
composer installto install dependencies (PHPCS, PHPUnit) - Run
composer lintto check coding standards - Run
composer testto run PHPUnit tests
Testing
Unit tests cover the rate limiter, LinkedIn OAuth, main plugin class, and DB singleton. Run with vendor/bin/phpunit.
Coding Standards
The plugin follows WordPress Coding Standards. Configuration is in .phpcs.xml.dist.
Changelog
2.1.4
- Multiple companies per employer (DB schema v3.7.0): create and manage multiple company brands from the dashboard, assign jobs to a brand, and company pages list only that brand's jobs
- Employer blog:
wp_zeko_company_poststable, dashboard publishing/editing/deleting, and a "News & Updates" section on the public company page - Required skills + skills matching: new
required_skillscolumn, "You have X of Y required skills" badges on job cards, and a skills-match panel with course recommendations on single-job pages - Zeko-Learn integration: seeker profiles show skills aggregated from completed courses + earned certificates; "close the gap" course recommendations
- Zeko-QA integration: related community questions and industry insights on job postings (fail-soft when Q&A is inactive)
- Pipeline automation: completing an interview now auto-advances the application from interviewing to offered (rule map filterable)
- Message templates: saved reusable responses with a picker in the compose box
- Message search: full-text search across all of a user's conversations with clickable results
- Typing indicators: polling-based "is typing..." status in conversations
- Payment status tracking:
payment_statuscolumn (free/paid/pending) set on posting, shown in the admin jobs table and employer dashboard - Fix: undefined
ZEKO_JOBS_VERSIONconstant would fatal the messaging page asset enqueue - Fix:
.phpcs.xml.distreferenced WPCS sniffs renamed in WPCS 3.x — config now loads; pre-commit PHPCS check added (.githooks/pre-commit,composer lint:new)
2.1.3
- Company page customization: cover image, accent color, and video embed on the company profile
- Company follow system: new
wp_zeko_company_followstable (DB schema v3.6.0), follow/unfollow button with follower count, andcompany_new_jobnotifications to followers when an employer posts a job - Resume search: employers can search opt-in candidates (name/bio, skills, location) from the dashboard; only seekers who enabled profile visibility + open-to-work appear
- Batch notifications: multiple applications for the same job consolidate into a single in-app notification
- Database cleanup cron: daily purge of notifications, email opens, view logs, and resolved flags older than the retention window
- Admin jobs page: Export CSV (publish jobs only, admin-only, nonce-protected)
2.1.2
- Trust & safety: users can report job listings (scam, inappropriate, misleading, etc.) from the single-job page
- New
wp_zeko_job_flagsmoderation queue (DB schema v3.5.0) + admin Reports submenu with pending badge and Resolve/Dismiss actions - Email preferences: per-type opt-in/out for all notification emails + one-click unsubscribe, managed from
/jobs/email-preferences/ - Email promotion: featured jobs now lead digest and job-alert emails (featured-first ordering + Featured badge)
- Fix: job-alert matching now filters on
publishstatus (previouslypublished, so alerts never matched)
2.1.1
- Featured company section: premium employers highlighted on the jobs homepage
- New
wp_zeko_companies.is_featuredcolumn (DB schema v3.4.0) +get_featured_companies()with open-job counts - Admin Companies submenu with Feature/Unfeature toggle
- New
[zeko_jobs_companies]shortcode rendering the featured company strip
2.1.0
- Email templates upgrade: unified email renderer with consistent branding across all 12+ email types
- Plain-text multipart MIME fallback for better deliverability
- Tracking pixel support on all transactional emails (previously missing on application_submitted)
- Performance: object caching on get_job(), get_job_by_slug(), employer_verified, response_time, distinct_locations, applied_job_ids, company_by_employer
- Performance: N+1 query fix in archive loop — hoisted 6 per-user queries outside the foreach
- Performance: eliminated redundant calculate_profile_match() calls in load-more AJAX handler
- Performance: improved cache invalidation with targeted key deletion alongside group flush
- Fixed double get_userdata() calls in bulk email and outreach handlers
- Added 9 new unit tests for email renderer (33 total, 59 assertions)
2.0.0
- Major release: messaging system, email notifications, job alerts, interview scheduling
- Company profiles with verification, reviews and ratings backend
- Application analytics with time-series and CSV export
- Profile match scoring, similar/recommended jobs, best-time-to-apply
- Candidate notes, document management, bulk emails, email templates
- Ecosystem integration (dashboard tab, activity feed, profile, payment hooks)
- Saved searches, employer response time, job completeness scoring
- Read receipts, auto-responses, notification table migration
- Gutenberg blocks, REST API routes, Leaflet map data layer
- Moderation queue with bulk approve/reject, auto-approve trusted employers
- GDPR data export/deletion, comprehensive uninstall cleanup
- DB schema v3.0.0 (18 migrations, 15+ tables)
1.0.0
- Initial release
- Employer and seeker dashboards
- Job posting and application system
- Advanced search with geolocation
- Application pipeline (Kanban)
- Interview scheduling
- Document management
- Email notifications
- SEO (Schema.org, OG, sitemap, RSS)
- Dark mode
- Loading skeletons
- Ecosystem integration (dashboard, activity feed, profile)
- Zeko Pay integration hooks
Upgrade Notice
2.0.0
Major release with messaging, email notifications, analytics, company profiles, and ecosystem integration.
1.0.0
Initial release of Zeko Jobs.