Release notes / WP Career Board Pro
Premium Plugin Plugin

WP Career Board Pro

Once jobs flow in, you need pipeline tracking, paid postings, and resume search. Standalone ATS tools sit outside WordPress. WP Career Board Pro adds a Kanban hiring pipeline, unlimited boards, and WooCommerce monetization inside the site.

19 releases
v1.8.1 latest
October 14, 2026 shipped

v1.8.1 Latest

October 14, 2026
New 3 Improve 5 Fix 13 Security 5 Dev 1 Compat 1

New

  • Employers pick up to three categories per job, and job alerts follow subcategories.
  • Job Map shows a results list that follows the map, with numbered clusters.
  • Installable app switch under Integrations; it joins BuddyNext's app when BuddyNext runs one.

Improve

  • Hiring Pipeline: five stages fit on desktop, phones show one stage at a time with Move to, and with no job picked you choose from a searchable list of your jobs.
  • Notification rows open the application they are about, and leave when it is deleted.
  • The resume page has one main Save button, and Find Candidates cards use the same grid as Jobs and Companies.
  • Job feed includes city, country and remote work, leaves out expired jobs, and publishes a contact email only when you set one.
  • Resume download is labelled as the plain ATS-friendly PDF; Print keeps the on-screen layout.

Fix

  • With credits switched off, boards with a price still charged employers when they posted or when a moderator approved their job.
  • A co-owner who features a job sees their own credit balance afterwards.
  • Candidates saw repeated or stale notification lines for applications that no longer exist.
  • Employers' notifications no longer list applicants or jobs that are gone, and a deleted member's notifications are removed.
  • "Someone applied" notifications reach only people who hire, and never show an applicant's login.
  • The employer who acts on a co-owned job is the one who pays.
  • Applications follow their job to its new board's Hiring Pipeline, and come back after a board is deleted.
  • A resume PDF is never sent empty, and its file name and a new resume's default title use the candidate's name, never their login.
  • AI request limits count each request once.
  • The job feed and AI prompts no longer carry raw shortcode text.
  • The Job Map location field stays readable in dark mode.
  • Job Feed Copy URL did not work on sites without HTTPS.
  • Spacing on the AI Settings and Analytics cards.

Security

  • Approving an employer's unpaid job no longer publishes it for free.
  • The installable app never keeps a signed-in member's page for offline use.
  • AI request limits count only allowed requests, per member.
  • Unsubscribe links and guest alert sign-ups no longer reveal which alerts exist.
  • Uploaded resume PDFs are checked by their real file type.

Dev

  • Notification rows store the application or job they are about (database version 1.16); older rows are matched or removed in the background.

Compat

  • Aligned with WP Career Board 1.8.1. Install both updates together.

v1.8.0

September 30, 2026
New 10 Improve 7 Fix 11 Security 6 Dev 1 Compat 1

New

  • Employers buy credits from the dashboard with correct checkout totals, receipts, coupons, tax and paid Featured.
  • Career Board now owns every credit screen: packs, checkout settings, coupons and receipts under Settings > Credits.
  • Guest job alerts with double opt-in, a per-person cap, an admin list and editable criteria.
  • Custom job fields show on the job page, can be filters and reach Google for Jobs.
  • Screening questions from the Field Builder.
  • Candidate directory searches and filters on the server, and radius search runs in the query.
  • Hiring Pipeline page opens a job's Kanban from the dashboard, and upgraded sites get the page automatically.
  • The bell tells employers when a job ends in 3 days and alerts admins to job and member reports.
  • Credit refund email and optional Pro emails.
  • Owners are told when a job or resume location cannot be geocoded.

Improve

  • Kanban stages and application status stay in sync in both directions.
  • Resume printing: one page for a short resume, the sidebar beside the main column, and skill bars that survive every theme.
  • Resume map and job map hold 500 pins and say when there are more.
  • The PWA follows the site Brand colour and works in a subfolder.
  • Pro screens use the same buttons, form fields, cards and contrast as Free on every theme.
  • Translation ready: currency names, resume section labels and Field Builder types are translatable.
  • Bundled Wbcom Credits SDK 1.10.0.

Fix

  • Block scripts and styles now load with the plugin version, so browsers pick up changes after an update.
  • The featured price shown equals the tiered price charged, and admin top-ups send the credits-added email.
  • Job alerts fire once on publish, in UTC, with one-click unsubscribe, and match salary by the same rule as the job list.
  • The resume builder autosaves summary edits, removals and custom fields.
  • The simple resume form edits the most recently edited resume.
  • Turning off BuddyPress Profile Tabs no longer turns off application notifications.
  • Field Builder saves fields again, and a duplicate field key is reported instead of silently ignored.
  • A job is charged once, whichever path moves it.
  • A double-click on Feature charges one Featured period, not two.
  • A copy missing its bundled Credits library no longer takes the site down; credits pause and admins are told to reinstall.
  • Bell notifications no longer link to deleted items, and the credit history honours its row count.

Security

  • Private resumes are listed only to their candidate and staff, and a public resume opens only its current CV.
  • Resume PDFs are private, the Pipeline page gates the job title, and geocoding and AI requests are limited.
  • Guest job alerts and every bell notification are covered by the personal-data export and erase tools.
  • Resume photos accept only images the candidate uploaded, and account erasure never deletes another member's file.
  • Guest job alerts can only be changed from the link in their own emails.
  • Unpublished job boards are no longer returned by the public board endpoint.

Dev

  • RTL stylesheets are generated at build time.

Compat

  • Aligned with WP Career Board 1.8.0. Install both updates together.

v1.7.2

September 17, 2026
Improve 2 Fix 3 Security 1 Dev 1 Compat 2

Improve

  • Form fields on the Credits, CSV Import and AI Settings screens are now announced by screen readers, including the manual credit adjustment form.
  • Counting a candidate's resumes no longer loads every resume to do it.

Fix

  • Exported resume PDFs showed "Present" as the end date for every past job on resumes created from the sample data or by an app, hiding the real end date.
  • The resume editor showed "Currently Working Here" ticked on jobs that had already ended, on those same resumes.
  • The resume API returned the "currently working here" flag as the text "false" rather than a true or false value, so an app reading it saw every finished job as current.

Security

  • The bundled dompdf library used for resume PDF export is updated to 3.1.6, resolving five published advisories. Resume content was already escaped before export.

Dev

  • Pro settings saves now check permissions through the Abilities API, matching the free plugin. Who can save each setting is unchanged.

Compat

  • Requires WP Career Board 1.7.2. Install both updates together.
  • Tested with WordPress 7.1.

v1.7.1

September 16, 2026
New 3 Improve 2 Fix 14 Security 3 Dev 4 Compat 1

New

  • Companion apps can discover the resume section structure from the API, so an app can build a full resume form (work history, education, certifications, skills, languages, portfolio) without hardcoding field names. A site that adds its own section through a filter gets it in the app automatically.
  • Candidate directory access is now one setting with three levels: open to everyone, signed-in members only, or approved employers only. Approval is granted per employer from their user profile.
  • Site owners can set the Job Map page from Settings > Pages. It was written by the setup wizard and could not be changed afterwards.

Improve

  • The single resume API response now returns the headline, location, years of experience, open-to-work and directory-listing fields it already accepted on save. Previously an app that loaded a resume, showed an edit form and saved it erased all five.
  • Faster on large sites: AI applicant scoring is queued once per job instead of once per applicant, which no longer floods the scheduled-task store on a job with hundreds of applicants, and the Boards admin list batches its job and stage counts instead of querying per row.

Fix

  • Applications now land on the Kanban board when they are submitted, and a new board ships with Screening, Interview, Offer, Hired and Rejected instead of no stages at all. A board that still has no stages is given the default set the moment an application arrives, so an application can no longer be submitted into nothing and disappear.
  • Kanban columns page correctly, and applications with no stage yet appear in the first column instead of disappearing.
  • Deleting a pipeline stage moves its applications to the next stage instead of leaving them unreachable.
  • Jobs and resumes are geocoded on every save path, including wp-admin, not only when created through the API. Resume coordinates were never written at all.
  • Scheduled AI scoring and geocoding tasks are cleared properly when the plugin is deactivated.
  • The location tag on Find Candidates cards stretched across the whole card as a mostly empty bar instead of hugging its text.
  • The candidate directory access setting protected the page but not the data, so the candidate list was still readable over the API at any level. The setting is now enforced wherever resumes are read.
  • A theme's own single resume template is used again instead of being replaced by the plugin's copy.
  • Job custom-field answers were written to two separate stores that could drift apart. They are now kept in one place, and what the job form shows is what the API returns.
  • Uninstalling the plugin left push notification device tokens and two credit tables on the site.
  • Uninstalling the plugin also left its settings rows behind. Every option the plugin owns is now removed, including ones added after the cleanup list was last updated by hand.
  • Deactivating the plugin left push notification tasks scheduled against a handler that was no longer listening.
  • Company and job names containing an ampersand reached analytics, the CSV export and the AI payload with the ampersand written out as code. A job alert saved for such a term never matched and no mail was sent.
  • The analytics CSV export ignored the view-analytics permission and checked only the credits permission.

Security

  • Job alerts could be edited or deleted by any signed-in candidate, not only their owner.
  • The Kanban board could be read by employers who did not own the job, exposing other employers' applicant details.
  • Any signed-in member could grant themselves full candidate-directory access by saving their own profile with the approval box ticked, defeating the approved-employers level entirely.

Dev

  • REST arguments now enforce the minimum, maximum and allowed values they declare. Values outside a declared set are rejected at the boundary rather than being stored.
  • New filters for the resume schema and the default pipeline stages.
  • Four Pro hot paths (resume list, alert sweep, Kanban board, credit balance) are measured by wp wcb scale benchmark, each with a budget.
  • The unused wcb_job_boards table is no longer created. Multi-board has always run on the board post type and its job meta.

Compat

  • Requires WP Career Board 1.7.1. Install both updates together.

v1.7.0

July 21, 2026
New 6 Improve 5 Fix 7 Security 2 Dev 1 Compat 1

New

  • Native Buy Credits purchase panel with Stripe and PayPal checkout and a webhook-confirmed return experience.
  • Credits admin with a packs editor, custom-amount purchasing, and payment-method toggles.
  • Native mobile push notifications for companion apps.
  • Admin Transactions view over the credit ledger, paginated and filterable, with an inline-confirm refund.
  • Pipeline stage manager to create, rename, recolor, reorder, and delete stages from the Boards tab.
  • Server-side content filtering for resumes.

Improve

  • Kanban boards paginate per column with a true count and Load more, replacing the flat 1000-row pull.
  • Field Builder fields can be reordered with per-field Move up and Move down controls.
  • Imported jobs are geocoded and can notify matching candidates.
  • Faster on large sites: bounded and cached AI matching, a cached public resume archive, primed kanban user caches, bounded and asynchronous digest-alert delivery, a streamed credit-ledger CSV export, and a 30-day window on top-jobs-by-views.
  • AI ranking runs asynchronously instead of making synchronous language-model calls during a request.

Fix

  • The legacy Credits, AI Settings, Job Feed, and Field Builder admin URLs redirect to their Settings tab instead of returning a permissions error.
  • Field value saving no longer fails with a fatal error when a job-created or job-updated hook fires without a request.
  • Push devices are removed when a user is deleted.
  • Pipeline stage changes are validated before they are saved.
  • The credit-balance Transaction History panel loads and renders the ledger.
  • CSV exports are compatible with PHP 8.4 and later.
  • Pro now requires Free 1.7.0 or newer and shows an update-Free-first notice instead of failing at email-send time when an older Free is active.

Security

  • The append-only credit ledger is never deleted when a user is removed.
  • Resume privacy is enforced and AI applicant listings are scoped to the requesting employer.

Dev

  • Bundles Wbcom Credits SDK 1.4.2.

Compat

  • Requires WP Career Board 1.7.0. Install both updates together.

v1.6.0

July 9, 2026
New 3 Improve 1 Fix 1 Dev 2 Compat 1

New

  • Analytics dashboard tab summarising job-board activity.
  • The job map now narrows its pins to the current job-listings results, so the map matches the filtered list.
  • Full translation readiness with bundled German, French, Spanish, Dutch and Korean translations; credit balances now display in the site's locale format.

Improve

  • CSV job import is now idempotent - re-importing the same file updates existing jobs instead of creating duplicates, and the admin notice reports Imported, Updated, Skipped and Warnings.

Fix

  • Pro notification emails now render their message body, honouring the configurable body text from the free plugin.

Dev

  • The public /resumes REST endpoint accepts an author parameter for author-scoped listings.
  • Removed unreachable checkout code from the credit-balance module.

Compat

  • Aligned with WP Career Board 1.6.0. Install both updates together.

v1.5.0

June 27, 2026
Improve 2 Fix 1 Compat 1

Improve

  • Migrated the Pro block and admin colours onto the shared canonical token namespace used by the free plugin.
  • The resume form now adopts the active theme accent colour instead of a fixed one.

Fix

  • AI Chat Search now honours the typed query and renders the matched jobs, instead of ignoring the search text and showing nothing.

Compat

  • Aligned with WP Career Board 1.5.0. Install both updates together.

v1.4.6

June 15, 2026
New 1 Improve 1 Compat 1

New

  • Hide a custom field group on specific job boards from the group's "Hide on boards" control on the Job Fields tab. Scales to any number of boards.

Improve

  • Field Builder: define a custom field once and it applies to every board. You no longer recreate the same fields for each board. Company fields are now global, matching candidate and resume fields.

Compat

  • Aligned with WP Career Board 1.4.6. Install both updates together.

v1.4.5

June 15, 2026
New 2 Fix 3 Compat 1

New

  • Years of experience and Open to Work fields are now in the full resume builder and the resume form, not just the simple profile form. Candidates who edit via any builder now feed the Find Candidates Experience and Open-to-Work filters.
  • Field Builder choices editor. Configure the options for dropdown, multi-select, radio and checkbox custom fields directly in the builder; previously choice fields could not be given any options.

Fix

  • Editing a custom field now keeps its configured choices. The update path dropped the options and rules, so a saved dropdown reverted to no choices.
  • Custom field types beyond text now render and save end to end - multi-select, date range, salary range, video URL, file link, location and repeater (one entry per line).
  • Skills added in the resume builder now appear in the candidate directory skill filter right away. The taxonomy sync ran before the new skills were saved, so they surfaced only on the next save.

Compat

  • Aligned with WP Career Board 1.4.5. Install both updates together.

v1.4.4

June 15, 2026
New 1 Improve 1 Fix 2 Compat 1

New

  • Candidate experience filter on the Find Candidates directory. Visitors can filter candidates by experience level, with bands derived from each candidate's years of experience and customizable via the wcbp_resume_experience_bands filter.

Improve

  • Resume proficiency is now a single filterable scale. The builder dropdown and the resume bar both derive from one source (wcbp_resume_proficiency_scale), so a level you add appears on both input and output.

Fix

  • Resume proficiency no longer shows a phantom level. A value with no defined weight renders no bar instead of a misleading one.
  • The candidate directory "Clear filters" button now clears hero and URL filters (skill, experience, search, open-to-work) instead of leaving the archive filtered.

Compat

  • Aligned with WP Career Board 1.4.4. Install both updates together.

v1.4.3

June 12, 2026
New 1 Improve 1 Fix 1 Dev 1 Compat 1

New

  • BuddyPress Group Job Boards are now opt-in. A Group Job Boards toggle under Settings > Integrations > BuddyPress (off by default) turns each group into its own job board; enabling it backfills your existing groups as boards in the background, and turning it off keeps boards already created.

Improve

  • WP Career Board Pro adapts to BuddyX and BuddyX Pro 5.1 light and dark color modes (avatars, dashboards, buttons, and widgets re-color correctly in dark mode).

Fix

  • Career Board notifications now appear in the theme notification bell (Reign, BuddyX) instead of only the dashboard tabs. The notifications were saved but never registered with the theme's notification component, so the header bell stayed empty.

Dev

  • New wcb_notification_created action so a central notification center (BuddyNext) can mirror Career Board notifications.

Compat

  • Aligned with WP Career Board 1.4.3. Install both updates together.

v1.4.2

June 12, 2026
Fix 2 Compat 1

Fix

  • Removed the orphaned credit-package catalog. The credit-package admin table, post editor, and /credits/packages REST endpoint were never reachable or consumed - credit purchases run through your active adapter (WooCommerce, PMPro, MemberPress) configured under Settings > Credits. The unused code (and its two drifted meta-key pairs) is gone.
  • Removed a dead tags field from application Kanban cards - it was read but never written, so it was always empty.

Compat

  • Aligned with WP Career Board 1.4.2. Install both updates together.

v1.4.1

June 12, 2026
Dev 1 Compat 1

Dev

  • Same packaging hardening as Free: one .distignore contract with a library-completeness gate. Map blocks bundle the Leaflet library with the plugin instead of loading it from a CDN.

Compat

  • Aligned with WP Career Board 1.4.1. Install both updates together.

v1.4.0

June 11, 2026
New 12 Improve 9 Fix 8 Security 1 Dev 1 Compat 1

New

  • REST endpoints to delete a single notification and to clear all notifications for the current user.
  • AI providers are now chosen per task: pick an analysis & ranking provider (Anthropic Claude on Sonnet, OpenAI, or Ollama) and an embedding/matching provider (OpenAI or Ollama) independently, each with its own API key. Claude now runs on Sonnet.
  • Choose the AI model per provider so you can trade quality for cost: Claude (Haiku / Sonnet / Opus), OpenAI (GPT-4o mini / GPT-4o plus embedding model), and Ollama (model names). Settings > AI Settings.
  • AI applicant ranking: on the Employer Dashboard, rank a job's applicants by AI fit with one click. Each applicant gets a 0-100 fit score and a short reason, sorted best-first. Works with your analysis provider (Claude, OpenAI, or Ollama).
  • AI candidate matches: candidates see a "Recommended for you" set of jobs matched to their resume, and an AI Job Search page is created for natural-language search. Needs an embedding provider (OpenAI or Ollama).
  • Applicant TL;DR: alongside the fit score, each applicant gets a one or two sentence AI summary of their background, shown in the Employer Dashboard list and detail.
  • AI cover-letter writer: candidates generate a tailored cover letter from their resume and the job in the apply panel, then edit it before submitting.
  • Optional "Auto-score applicants on submit" (Settings > AI Settings): new applications are scored in the background so the Employer Dashboard shows AI fit instantly.
  • Custom resume fields: a "Resume Fields" tab in the Field Builder lets admins add their own fields with the same builder used for job and company fields. They render on the resume builder and simple form, save with the resume, and pre-fill on edit. Reuses the existing field-builder - no separate system.
  • Resume privacy controls (Resume Settings): set the candidate directory and single resume profiles to "Public - anyone" or "Logged-in members only", public by default. Resumes are more sensitive than jobs, so site owners can require a free sign-up before browsing or viewing them; candidates still control whether each resume is public.
  • "Index existing jobs" button on AI Settings backfills embeddings for jobs that existed before AI was enabled, so candidate matching works on your current catalog.
  • Installing the demo/sample data now seeds realistic candidate resumes, with demo candidate users, so the candidate side of the demo is populated; removing the sample data deletes them.

Improve

  • Dashboard Notifications panel gains a per-row delete control and a Clear all button alongside Mark all read.
  • Applying with a Resume Builder resume that has no PDF now generates the PDF automatically and attaches it (cached on the resume), so candidates apply in one tap and employers still get a downloadable file.
  • AI fit scores, reasons, and summaries are cached per application, so re-opening the dashboard never re-bills the model; ranking computes only what is missing.
  • Field Builder now lets you edit existing fields (label, type, visibility, required) and rename groups across all entity types; previously fields and groups were create-and-delete only.
  • All resume options now live together under Settings > Resumes: the "Public resume profiles" toggle (publish at /resume/{slug}) moved here from the free Listings tab, alongside max resumes per candidate and the new visibility controls.
  • "Index existing jobs" is now disabled with a clear note when no embedding provider (OpenAI or Ollama) is set, and explains why if you run it, instead of silently reporting "Indexed 0 jobs" - Claude cannot index for matching.
  • The resume "Public" toggle now explains itself: a note tells candidates that public resumes are discoverable by employers in the candidate directory and search, and what staying private means.
  • AI Settings key fields now link to where to get each key (OpenAI, Anthropic) and note that Ollama is free and self-hosted, so admins are not left guessing.
  • The AI job-description generator now returns structured HTML (headings, paragraphs, lists) for a clean, formatted result instead of one block of text.

Fix

  • Resumes imported from WP Job Manager Resumes are no longer blank: get_resume_data() reads the legacy experience/education meta, so the public profile and the PDF render the candidate's full history.
  • AI ranking and matching now read the candidate's resume (the resume-data hook was never connected) and tolerate model replies wrapped in code fences, so fit scores are real instead of always zero.
  • Application Kanban block (advanced custom-stage pipeline): moving a card now saves the stage (it previously fired the change event without saving), the block shows a clear message when no stages are configured instead of loading forever, and it now ships its complete built assets. The everyday applicant board lives in the Employer Dashboard.
  • Downloading a resume PDF no longer fatals when a candidate's skills or languages are stored as plain strings instead of repeater rows. The PDF exporter coerces flat-string entries to the expected shape.
  • Candidate custom fields (Field Builder "Candidate Fields" tab) now appear on the candidate form. They were queried against the candidate's user ID instead of the global board, so they never rendered; candidate fields are global like resume fields.
  • Credits: releasing a hold on approval now returns the actual amount that was held, not the final charge. When the up-front hold was larger than the charged cost, the difference was silently kept and the employer ended up a credit short.
  • Boards admin table no longer renders a doubled border inside its card and aligns to the card gutter.
  • Notifications that pointed at the homepage (created before the dashboard pages were assigned, or for a since-deleted job) now render non-clickable instead of sending you to the home page.

Security

  • AI and map provider API keys are never written back into the settings page HTML. Key fields render empty with a "saved" indicator and update only when you enter a new value, so a stored key is not exposed in the page source.

Dev

  • Removed the legacy single-provider AI options (wcbp_ai_provider / wcbp_ai_api_key / wcbp_ai_base_url). AI reads the per-task provider, key, and model options only.

Compat

  • Aligned with WP Career Board 1.4.0. Install both updates together.

v1.3.0

June 9, 2026
Improve 2 Fix 2 Compat 1

Improve

  • Credits are now opt-in: posting a job is free by default, and a board only charges credits once you set a per-board credit cost. The posting gate and the credit-ledger hold now resolve the cost the same way. Sites that want to charge for posting must set a board credit cost.
  • Resume Builder remove-entry icon renders reliably in the dashboard.

Fix

  • Job Feed settings now save; the "Save Feed Settings" button had been rendered outside its form and submitted nothing.
  • License tab no longer throws JavaScript console errors when activating or deactivating a license, and activation now shows its confirmation notice.

Compat

  • Aligned with WP Career Board 1.3.0. Install both updates together.

v1.2.0

May 17, 2026
New 14 Improve 7 Fix 9 Dev 3 Compat 1

New

  • Single-page resume form (wcb/resume-form-simple block, [wcbp_resume_form_simple] shortcode). Captures headline, summary, top skills, years of experience, location, open-to-work, and profile photo. Sits alongside the existing multi-section resume builder.
  • BuddyPress group-scoped job boards. Every BP group automatically gets a Jobs tab on the group nav listing only that group's jobs. A linked wcb_board is auto-created per group and titles stay in sync.
  • BuddyPress activity stream entries. Approved jobs post to the wcb component (and into the group stream when the job lives on a group board). Hired candidates get a celebratory activity entry too.
  • BuddyPress notifications. New applications appear in the employer's BP bell; application status changes appear in the candidate's bell with localised labels.
  • Member directory filters at /members/. Chips for "Open to work" (members with a public resume marked open) and "Hiring" (members with at least one published job). Filters write directly to BP_User_Query.
  • Tiered credit pricing matrix. Configure per BP member type, PMPro level, or MemberPress membership how many credits each user pays for posting jobs or upgrading to Featured. Cheapest applicable tier wins.
  • Group-scoped job moderation. BP group admins and mods can approve / reject jobs posted to their group's board without holding the global wcb_moderate_jobs capability.
  • Featured upgrade credit consumer. Employers can spend credits to upgrade an existing job to Featured (separate from the posting cost). Pairs with Free's daily cron that auto-clears _wcb_featured after the configured duration.
  • Candidate notifications on application status changes. New component action wcb_app_status_<status> flows into the BP notification bell with localised verbs.
  • Custom resume fields. Declarative wcb_resume_form_fields filter on the resume builder and the new single-page resume form. Same group / field schema as Free's wcb_job_form_fields. New wcb_resume_form_initial_state filter for state extension.
  • Pro-side shortcodes registered for page-builder compatibility: [wcbp_resume_form_simple], [wcbp_resume_archive], [wcbp_credit_balance], [wcbp_job_alerts].
  • Pro-only hook reference at docs/HOOKS.md, cross-linking Free's HOOKS.md as the source of truth for the shared wcb_* filter family.
  • Admin Boards tab now paginates at 20 boards per screen and ships a name search box with a Clear link. The previously flat numberposts=>-1 table is unusable past a screenful of boards.
  • Open to Work and Featured Candidates blocks now render the resume-form profile photo (falls back to an initial-letter chip, never BuddyPress / Gravatar), plus a location row and a years-of-experience badge computed from the earliest experience entry.

Improve

  • Bumped vendored wbcom-credits-sdk to v1.3.0. Server-authoritative pricing resolver closes wbcom-credits-sdk issue #2. Direct-gateway checkout no longer accepts client-supplied price_cents. Career Board Pro is unaffected because all credit purchases route through the WooCommerce / WC Subscriptions / WC Memberships / PMPro / MemberPress adapter paths.
  • Job map block now reads the new {jobs, total, pages, has_more} envelope from /wcb/v1/jobs while remaining backwards-compatible with older Free installs during the upgrade window.
  • Pro CSS uses Free's expanded design token system. Reign, BuddyX, or any theme overriding --wcb-primary now restyles every block in both plugins automatically.
  • Local CI gate via npm run ci. Every commit runs PHP lint, WPCS, and PHPStan before pushing. GitHub Actions removed from Pro by design.
  • Open to Work and Featured Candidates blocks now fall back to skill values stored in _wcb_resume_skills meta when the wcb_resume_skill taxonomy is empty for a given resume, so candidates whose sync hook never ran still show pills.
  • Admin Credits tab now shows a warning banner when a Purchase URL is set but no product is mapped to a positive credit amount, surfacing the misconfiguration that hides the Buy Credits button on the credit-balance block.
  • Open to Work block randomises its candidate order so the widget rotates exposure across everyone open to work, not just the most recent.

Fix

  • Pro setup wizard now auto-triggers on first activation. The wcb_board content fallback that was suppressing the activation redirect has been removed.
  • BuddyPress group Jobs tab now lists only that group's jobs. The listing block was receiving the wrong attribute name and the board filter never fired.
  • BuddyPress group tabs now load the shared frontend stylesheets (wcb_page_needs_frontend_assets filter extended to bp_is_group()) so the .wcb-hidden Interactivity utility resolves. Pre-1.2.0 the Alert me / Alert saved buttons stacked visibly and "Load more / Loading..." artefacts showed on empty group Jobs tabs.
  • Boards picker in the job form hides boards whose linked BuddyPress group the current employer is not a member, mod, or admin of. Site admins still see every board.
  • Credit ledger schema migration. Renamed employer_id to user_id and post_id to item_id to match the canonical wbcom-credits-sdk schema. Pre-1.2.0 the SDK queries silently failed with "Unknown column 'user_id'" and returned a balance of zero. One-shot ALTER TABLE migration runs on activation; existing data is preserved.
  • Buy Credits link on the credit-balance block now hides when a Purchase URL is set but no Credit Mapping points at a positive amount. Pre-fix an employer could complete the order and the adapter would top up zero credits.
  • Resume edit screen no longer fatals when a legacy resume has a non-array entry in a section meta. render_section_row now coerces malformed entries to empty arrays before the strict array $entry signature is reached.
  • my_applications block / [wcbp_my_applications] shortcode now renders as a semantic table with Job / Status / Submitted column headers, an Applicant column when used in employer context, and a mobile card-layout fallback under 480px container width.
  • Boards tab pager URL now builds explicitly from admin_url('admin.php') + array args with the %#% placeholder concatenated outside add_query_arg(), so tab=boards is always preserved and the placeholder cannot get URL-encoded on any WP / PHP combination.

Dev

  • Pro install no longer creates wcb_credit_ledger itself. The SDK's Ledger::maybe_create_table() is the single source of truth for the schema.
  • Convention codified - wcb_* hooks are the stable customer-facing extension surface (work in Free or Pro), wcbp_* hooks are Pro-internal and may change between releases.
  • New public method AbstractEmail::test_send() (Free) gives Pro extensions a clean bridge for previewing disabled email templates without reaching for ReflectionClass.

Compat

  • Requires WP Career Board (Free) 1.2.0 or newer. Install both updates together.

v1.0.2

April 14, 2026
New 3 Fix 8

New

  • Find Candidates UX parity with Find Jobs** - the resume archive block now mirrors the job-listings chip-bar pattern: `.wcb-listings-header` with a sort select next to the search input, `.wcb-chip-bar` with one pill per skill taxonomy term and an "Open to Work" toggle, and a `.wcb-listings-toolbar` with the results count. Chip filtering runs client-side via a new Interactivity API store (`blocks/resume-archive/view.js`) that toggles visibility per card based on `data-wp-context` carrying `cardSkills`, `cardOpenToWork`, and `cardHaystack`.
  • Reign Theme dark-mode support** - the resume archive, resume single, and every other pro surface re-colors cleanly when Reign's `html.dark-mode` class is active, driven by the token layer in the free plugin's `frontend.css`.
  • BuddyX Pro theme integration** - resume archive, resume single, and all pro blocks inherit BuddyX Pro's theme palette in both light and dark mode via the token bridge in the free plugin's BuddyX Pro compatibility stylesheet.

Fix

  • Resume archive block was shipping with a non-responsive plain search form plus two `<select>` dropdowns - now uses the shared `.wcb-listings-header` / `.wcb-chip-bar` / `.wcb-listings-toolbar` pattern with proper mobile (≤640px) breakpoint and accessibility labels.
  • Resume archive viewScriptModule was missing - `block.json` now declares `"viewScriptModule": "file:./view.js"` and `"supports": { "interactivity": true }`, and a new `view.asset.php` ships the `@wordpress/interactivity` module dependency so WordPress emits the import map correctly. Previously the module loaded as a raw script and errored with `Failed to resolve module specifier "@wordpress/interactivity"`.
  • Resume archive server-side Interactivity processor was applying `wcb-hidden` to every card on first paint because `state.isCardVisible` was undefined - now seeded via `wp_interactivity_state()` with `isCardVisible => true`, `activeSkill => ''`, `openToWorkOnly => false`, etc., so cards render visible on first paint and hydrate into a reactive grid on the client.
  • Resume archive block had a duplicate `<h1>Find Candidates</h1>` - one from the theme entry-title and one from the block's own `.wcb-page-heading`. The new `wcb_app_page_ids` filter now adds `resume_archive_page` to the list of WCB app pages so the free plugin's `.wcb-page .entry-title { display: none !important }` rule correctly suppresses the theme title.
  • Resume archive block CSS hardcoded hex colors on chip bar, search input, sort select, cards, and toolbar - every color now uses `var(--wcb-*, fallback)` so the block flips with dark mode.
  • Resume single block (`.wcb-rs`) re-declared `--wcb-primary`, `--wcb-primary-dark`, `--wcb-border`, and `--wcb-surface` locally via `var(--wp--preset--color--wcb-X)` which were never defined in Reign (shadowing the cascade and preventing `html.dark-mode` overrides from taking effect). Local re-declarations removed, and every `var(--wp--preset--color--wcb-base)` reference replaced with `var(--wcb-base)` so the hero, About, Work Experience, Skills, and Languages cards all flip in dark mode.
  • Pro-owned mapped pages (`resume_archive_page`, `resume_builder_page`) never received the `wcb-page` body class because `add_page_class()` in the free plugin only knew about free page keys. New `wcb_app_page_ids` filter hook in `ProPlugin::add_pro_app_page_ids()` appends pro page IDs so theme-integration CSS that hangs off `.wcb-page` applies uniformly to pro pages.
  • EDD SL SDK `plugins_api_filter` no longer fatals on PHP 8+ when the licensing API call fails and the cache is empty (`Attempt to assign property "plugin" on false`). Mirrors the matching fix shipped in the free plugin.

v1.0.1

Improve 2 Fix 2

Improve

  • PHPStan config optimized with explicit source paths and regenerated baseline.
  • CI pipeline streamlined to PHP Lint + PHPStan.

Fix

  • WPCS formatting cleanup across entire codebase (tabs, braces, spacing).
  • Removed Stripe SDK dependency - credits use WooCommerce adapters only.

v1.0.0

New 10

New

  • Initial release.
  • Application Pipeline - Kanban board with configurable hiring stages.
  • Multi-Board Engine - unlimited independent job boards per install.
  • Resume Builder and resume search.
  • Job Alerts - keyword and location subscriptions.
  • WooCommerce Credit System - credit packages with WooCommerce, PMPro, and MemberPress adapters.
  • Custom Field Builder - custom fields for jobs, companies, and candidates.
  • AI-assisted job description writing.
  • Job Feed - RSS, JSON, and XML feeds per board.
  • License management via EDD Software Licensing.