---
title: "Settings reference"
description: "Every Workable Jobs setting explained: account connection, display and sync options, JobPosting schema fields, privacy consent, and spam protection keys."
source: https://workable.w4dev.com/docs/settings/
---

Everything lives on **Workable Jobs → Settings**. Each setting is stored as a WordPress option
named `wkjb_` plus the key shown below, so you can also read or set it with WP-CLI, for example
`wp option get wkjb_apply_mode`.

<figure class="ak-shot">
  <img src="/screenshots/admin-settings.webp" alt="Workable Jobs settings screen in wp-admin with the subdomain, sync and application fields" width="1200" height="2073" loading="lazy" decoding="async" />
  <figcaption>The full Settings screen: account, display, features, schema, privacy and spam protection.</figcaption>
</figure>

## Workable account

| Setting | Option | Default | What it does |
|---|---|---|---|
| Account subdomain | `wkjb_subdomain` | empty | Your Workable account subdomain, such as `acme`. Pasting `https://apply.workable.com/acme/` or `acme.workable.com` also works; the plugin keeps only `acme`. Required. Saving a new value checks it against Workable's public careers feed: if Workable answers that no such account exists, the previous value is kept and the screen says so. A reachable value starts an import within about a minute. |
| API access token | `wkjb_access_token` | empty | Optional. Turns on on-site applications. Needs the `r_jobs` and `w_candidates` scopes. Once saved, the field shows dots instead of the token. Leave it blank to keep the saved token, or tick **Remove** to delete it. See [Installation](/docs/installation/#4-optional-add-an-api-token-for-on-site-applications). |
| Applications | `wkjb_apply_mode` | `auto` | Where candidates apply. See the table below. |

### Application modes

| Mode | Value | With a token | Without a token |
|---|---|---|---|
| Automatic | `auto` | On-site form | **Apply on Workable** button |
| On-site application form | `form` | On-site form | **Apply on Workable** button |
| Send applicants to Workable | `redirect` | **Apply on Workable** button | **Apply on Workable** button |

The on-site form always needs a token, so **Automatic** and **On-site application form** behave
the same in 1.0. Choose **Send applicants to Workable** to keep a saved token but use Workable's
hosted form anyway.

Even in form mode, a job falls back to the **Apply on Workable** button when its form cannot be
loaded, for example when Workable rejects the token or cannot be reached.

## Display

| Setting | Option | Default | What it does |
|---|---|---|---|
| Jobs page slug | `wkjb_jobs_page_slug` | `jobs` | The address of the job list. With `jobs`, the list is at `/jobs/` and each job at `/jobs/{job-title}-{shortcode}/`, where the shortcode is Workable's 10-character job code. Changing it updates the addresses on the next page load. |
| Import interval | `wkjb_sync_interval` | `30` minutes | How often jobs are re-imported from Workable. Allowed range 15 to 1440 minutes. |

There is no cache setting. Job lists and job pages are read from your database, and each job's
application form is cached for one hour (developers: filter `wkjb_application_form_ttl`).

## Features

| Setting | Option | Default | What it does |
|---|---|---|---|
| JSON-LD schema | `wkjb_enable_schema` | on | Adds `JobPosting` structured data to each job page, for Google for Jobs. |
| Jobs sitemap | `wkjb_enable_sitemap` | on | Includes job pages in the WordPress XML sitemap, at `/wp-sitemap-posts-wkjb_job-1.xml`. Turn it off to leave them out. |
| Log submissions | `wkjb_log_submissions` | on | Keeps the last 50 application attempts under **Workable Jobs → Submissions**. |

## Schema

Used in the `JobPosting` structured data when **JSON-LD schema** is on.

| Setting | Option | Default | What it does |
|---|---|---|---|
| Organization name | `wkjb_organization_name` | empty | The `hiringOrganization` name. Empty uses the company name from your Workable account. |
| Organization logo URL | `wkjb_organization_logo` | empty | Full URL of a logo image, added to `hiringOrganization`. Google for Jobs shows it next to your postings. |
| Job validity | `wkjb_job_validity_days` | `30` days | `validThrough` in the markup is the posting date plus this many days, from 1 to 365. Jobs stay listed until they close in Workable regardless; this only tells search engines how long the posting is expected to stay open. |

## Privacy

| Setting | Option | Default | What it does |
|---|---|---|---|
| Consent checkbox | `wkjb_enable_gdpr` | off | Adds a required consent checkbox to the on-site application form. |
| Consent text | `wkjb_gdpr_text` | empty | The wording next to the checkbox. Links and basic formatting are allowed, so you can link your privacy policy. |

## Spam protection

Configure one provider, or neither. With both blank, the form relies on its honeypot field and
rate limit.

| Setting | Option |
|---|---|
| Turnstile site key | `wkjb_turnstile_site` |
| Turnstile secret key | `wkjb_turnstile_secret` |
| reCAPTCHA site key | `wkjb_recaptcha_site` |
| reCAPTCHA secret key | `wkjb_recaptcha_secret` |

reCAPTCHA must be a **v3** key. Submissions scoring below 0.5 are rejected; the filter
`wkjb_recaptcha_score_threshold` changes that. Saved secret keys are not shown on the
settings screen; leave a secret blank to keep the saved one.

## Tools

At the bottom of the Settings screen:

- **Test connection** fetches your Workable job list and reports how many jobs it returned.
- **Import jobs now** runs a full import: new jobs are added, changed ones updated, closed ones
  moved to the trash. It says so when an import is already running. Below the button, the panel
  shows the last import: when it ran and what changed, or **Last import failed** with the error,
  for example when the subdomain is wrong or Workable could not be reached.
- **Clear cache** deletes cached Workable responses, including cached application forms, so the
  next visit fetches them fresh. Use it after you change a job's questions in Workable.

## How the import works

- Every import fetches your public Workable job list once and compares it with the jobs already
  on your site.
- Each job is stored as a post of type `wkjb_job`, listed under **Workable Jobs → Imported jobs**.
  Jobs are managed from Workable, so there is no "Add New" button.
- A job that closes in Workable is moved to the trash. If it comes back, its page is restored at
  the same address.
- If Workable cannot be reached, or answers with an error, the import changes nothing. Your
  existing jobs stay up and the next scheduled run tries again.
- Imports run on WP-Cron, so on a site with very little traffic a run can start a little late.