WP Career Board Pro fires its own wcbp_* actions and filters (in
addition to the Free hooks documented in the Free developer guide).
Pro also participates in some wcb_* (Free namespace) hooks where
it shares the contract surface with Free. The exact set ships in
the audit manifest (audit/manifest.json) and is also summarised
in docs/HOOKS.md.
React when an application moves through the Kanban pipeline. Args are stage IDs (integers); old comes before new. Fired from api/endpoints/class-pipeline-endpoint.php.
wcbp_board_deleted
$board_id
Cleanup when a Pro board is removed. Cascades to applications and stage data.
wcbp_credit_consumed
$user_id, $amount, $item_id
A deduction row was written to the credit ledger. Use for audit logging or per-purchase notifications. Fired from modules/credits/class-credit-reconciler.php.
wcbp_credits_low
$user_id, $balance
The SDK reported a credit balance at or below the configured low threshold (re-emitted from the SDK’s wbcom_credits_low, scoped to this plugin).
wcbp_credits_topped_up
$user_id, $amount, $note
The SDK recorded a credit top-up (re-emitted from the SDK’s wbcom_credits_topped_up, scoped to this plugin).
wcbp_field_group_saved
$group_id
A field-builder group was created or updated.
wcbp_field_group_deleted
$group_id
A field-builder group was deleted.
wcbp_field_definition_saved
$field_id, $group_id
A field-builder field definition was created or updated ($group_id is 0 on update-by-id).
wcbp_field_definition_deleted
$field_id
A field-builder field definition was deleted.
wcbp_field_value_saved
$post_id, $key, $value
A custom field value on a job/company/candidate/resume was saved via the field builder.
wcbp_resume_published
$resume_id, $post
A candidate’s resume went public. $post is the WP_Post. Use for search indexing or notifications.
wcbp_send_alert_email
$alert, $jobs
Pro is about to send a job-alert email. $alert is the alert row, $jobs the matched jobs. Hook to send a parallel SMS, Slack, etc.
wcbp_open_to_work_before_item
$resume, $user, $user_id
Render extra markup before each Open-to-Work listing item.
wcbp_open_to_work_after_item
$resume, $user, $user_id
Render extra markup after each Open-to-Work listing item.
wcbp_ai_score_application
$app_id
Internal single-event cron action. Pro schedules it (via wp_schedule_single_event) to score a new application in the background when “Auto-score applicants on submit” is on.
Pro also fires Free hooks in places where the action semantically
belongs to Pro but the contract is shared:
Hook
Where Pro fires it
Why
wcb_application_status_changed
modules/pipeline/class-pipeline-module.php
When a pipeline move reaches a terminal stage, Pro closes the application and fires this with ($app_id, $old_status, 'closed') so Free’s status listeners (notifications, BuddyPress) run.
wcb_resume_form_simple_extra_fields
blocks/resume-form-simple/render.php
Extension point for adding fields to the quick resume form. Passes $attributes.
wcb_add_more_info_hero_actions
blocks/resume-single/render.php
Extension point for adding buttons to the resume hero.
wcb_job_csv_imported
modules/migration/class-csv-importer.php
Fired once per imported job row with ($post_id, $data).
Fired after a bell notification row is inserted, with one array arg { user_id, event_type, message, link, id } (id = inserted row id), so a centralised notification center (BuddyNext) can mirror it. Shared wcb_ name so one listener covers Free + Pro; Free fires the same hook from its email send.
array - the resume data shape sent to AI for ranking/matching
wcbp_ai_candidate_matches
array - the AI candidate-match results before they are returned (args: $matches, $user_id)
wcbp_ai_ranked_applications
array - the AI applicant-ranking results before they are returned (args: $ranked, $job_id)
wcbp_ai_claude_model
string - the Claude model id used for analysis/ranking (default reads the wcbp_ai_anthropic_model option)
wcbp_ai_anthropic_model is an option (set on the AI settings screen), not a filter. It stores the chosen Claude model id and is read with get_option() as the default value the wcbp_ai_claude_model filter then applies. Override the model at runtime through that filter; change the saved default through the option.
int - actual credits charged for a consumer. Args: $base_cost, $user_id, $item_id, $board_id, $consumer_slug. Tier-pricing happens here (e.g. BpTieredCreditCost).
array - the resume-form field groups (Personal, Experience, Education, Skills, etc.)
wcbp_resume_textarea_fields
array - fields rendered as textareas vs single-line inputs
wcbp_resume_checkbox_fields
array - fields rendered as checkboxes
wcbp_resume_date_fields
array - fields formatted as date inputs
wcbp_resume_field_label
string - override the label of a specific field
wcbp_resume_pdf_renderer
callable - swap out the resume-to-PDF rendering engine
Pro also extends these Free filters:
Hook
What Pro returns
wcb_rest_prepare_board
Adds Pro-specific board metadata to the boards response.
wcb_rest_prepare_board_stage
Pipeline-stage data shape.
wcb_rest_prepare_notification
Notifications bell response shape.
wcb_rest_prepare_resume
Resume profile shape.
wcb_job_form_fields
Injects custom job field groups (field builder).
wcb_company_form_fields
Injects custom company field groups.
wcb_candidate_form_fields
Injects custom candidate field groups.
wcb_resume_form_fields
Injects custom resume field groups.
wcb_board_options_for_employer
Restricts the board picker to the employer’s BuddyPress groups.
Per-board credit cost is not a Free filter. The cost is resolved
inside Pro’s SDK consumer cost callback from
BoardSettings::get() and then run through wcbp_consumer_cost.
wcb_application_status_changed fires with
($app_id, $old_status, $new_status). Pro fires it with a final
status of closed when a Kanban move lands on a terminal stage: