Migration & CSV Import - Overview
WP Career Board Pro adds a CSV importer that bulk-imports jobs from a spreadsheet. It appears as an extra card on the Free plugin’s Import screen, next to the built-in WP Job Manager migration cards.
By default, imported jobs land as Pending for editorial review, but the CSV status column lets you publish or draft rows directly.
CSV Import
Section titled “CSV Import”Finding the Import Screen
Section titled “Finding the Import Screen”Go to Career Board → Import and look for the CSV → Jobs card (marked Pro). The CSV importer requires the wcb_manage_settings capability.
Download the Sample File
Section titled “Download the Sample File”Click Download Sample CSV to get a correctly structured template with two example rows. Use it as a starting point for your data.
CSV Column Reference
Section titled “CSV Column Reference”Required
Section titled “Required”| Column | Description |
|---|---|
title |
Job title - the only required column |
Content
Section titled “Content”| Column | Description |
|---|---|
description |
Full job description (HTML allowed) |
status |
pending (default), publish, or draft |
deadline |
Application deadline - any parseable date format, stored as YYYY-MM-DD |
Salary
Section titled “Salary”| Column | Accepted values |
|---|---|
salary_min |
Integer (e.g. 80000) |
salary_max |
Integer (e.g. 120000) |
salary_currency |
Any currency code in the plugin’s currency catalog (e.g. USD, EUR, GBP, CAD, AUD, INR, SGD). Codes are matched case-insensitively. |
salary_type |
yearly, monthly, or hourly |
If salary_min is greater than salary_max, the importer swaps them automatically and records a warning.
| Column | Accepted values |
|---|---|
remote |
yes, no, 1, or 0 |
featured |
yes, no, 1, or 0 |
Company
Section titled “Company”| Column | Description |
|---|---|
company |
Company name text |
company_id |
WordPress post ID of an existing company post |
Application
Section titled “Application”| Column | Description |
|---|---|
apply_url |
External application URL |
apply_email |
Application contact email |
Taxonomies
Section titled “Taxonomies”Separate multiple values with commas or pipes. Terms are created automatically if they do not exist.
| Column | Taxonomy |
|---|---|
categories |
Job category |
job_types |
Job type (e.g. `Full-time |
locations |
Location |
experience |
Experience level |
tags |
Job tags |
Geo and Board
Section titled “Geo and Board”| Column | Description |
|---|---|
lat |
Latitude (decimal) |
lng |
Longitude (decimal) |
board_id |
WordPress post ID of the target job board (Multi-Board) |
Custom Fields
Section titled “Custom Fields”Add any field key from the Field Builder as a column header. Values are mapped to the corresponding custom field on each imported job.
Running the Import
Section titled “Running the Import”- Select your CSV file using the file picker
- Click Import
- A results summary shows counts for Imported, Skipped, and Warnings. Per-row errors are listed under a “View row errors” toggle.
- Use the Review pending jobs link to review the Pending listings before publishing
Error Handling
Section titled “Error Handling”| Condition | Result |
|---|---|
| File not found or unreadable | Import stops with an error message - no rows processed |
| Empty file or no header row | Import stops with an error message - no rows processed |
Missing title column |
Import stops with an error message - no rows processed |
| Row has wrong column count | Row skipped, error logged in summary |
| Empty title on a row | Row skipped, error logged in summary |
| Invalid currency or salary type | Field skipped for that row |
| Invalid date | Field skipped for that row |
salary_min greater than salary_max |
Values swapped automatically, counted as a warning |
WP Job Manager Migration
Section titled “WP Job Manager Migration”The one-click WP Job Manager migration lives on the same Career Board → Import screen, in the built-in WP Job Manager → Jobs card. That card is provided by the Free plugin and is the supported way to migrate from WP Job Manager - you do not need Pro for it.
The migration copies job_listing posts to wcb_job posts, preserving title, content, author, and publish date. It is safe to run multiple times; already-migrated records are detected and skipped, and the card shows live “total” and “migrated” counts.
A note for developers
Section titled “A note for developers”Pro also ships a standalone \WCB\Pro\Modules\Migration\WpjmImporter helper class. It is a programmatic helper only - it is not wired to any admin button or WP-CLI command, so for everyday migrations use the Free Import screen above. If you call the Pro helper directly in custom code, its import() method maps the following:
| WPJM meta key | WCB meta key |
|---|---|
_job_location |
_wcb_location_text |
_job_salary |
_wcb_salary_text |
_company_name |
_wcb_company_name |
_job_expires |
_wcb_deadline |
_remote_position |
_wcb_remote |
job_listing_type terms |
wcb_job_type taxonomy |
Published WPJM jobs are imported as publish; any other status becomes pending. Each migrated original is flagged with _wcb_imported_from_wpjm so subsequent runs skip it, and the method returns [ 'imported' => N, 'skipped' => N, 'errors' => [...] ].

