Releases

Changelog.

Vakanssi 1.3.14. Last updated 7 November 2026.

The short version

Vakanssi ships small and often: 260 releases so far, and every one of them written in plain language, so you can tell what changed without reading a commit log. Fixes go out as soon as they are ready. Nothing that was free has ever moved behind Pro, and nothing will.

7 November 2026 1 release

v1.3.14

  • New Once Vakanssi is in real use (two weeks after install, plus five applications or a first hire), it asks people who manage its settings for a review on WordPress.org, on Vakanssi's own screens only. Choose Leave a review, Maybe later (asks again in 30 days) or Don't ask again; the choice is saved for each person.
  • Fixed When a candidate sends a new application to the same job with changed contact details while you are editing them, the clash message now says the candidate changed them, as it already did for another job.
  • Developers A resend to the same job that changed the candidate's details now logs an application_created audit row on the existing application, so that row does not always mean a new application. New user meta vakanssi_review_prompt, removed on uninstall.

6 November 2026 2 releases

v1.3.13

  • Fixed When a candidate applies to another job with changed contact details while you are editing them, the clash message now says the candidate changed them, instead of blaming you or a teammate. A clash nobody can be named for no longer says a teammate caused it.
  • Fixed "Discard mine and load theirs" now also updates the board card and the List row, not only the drawer.
  • Fixed In Hebrew, a clash message that names a teammate keeps the name and the sentence in the right order.
  • Changed Staff whose role lets them add notes or change interviews but not view the application (custom roles only) no longer get teammates' notes, interview details or names back.
  • Developers Every write route answers a requester who may not view the application with the reduced shape, audit rows carry candidate_version, and schema 20 adds an index on candidates.updated_at.
  • Fixed A change to a candidate's name or email alone now shows on teammates' open boards and Lists without a reload.
  • Fixed Add candidate keeps one copy of a refused form per person, clears it when you open the form again, and says so when an older link can no longer bring your entry back.
  • Changed Custom roles that can assign, propose times or score but not view an application no longer get teammates' scorecard comments or names back.
  • Changed Custom roles that can edit applications but not view a candidate no longer get the candidate's profile back after saving it, changing its tags or adding it to a job.

v1.3.12

  • Changed When a teammate rated an application a moment before you, the message now names who rated it.
  • Fixed Add application keeps everything you typed when one field holds a character that cannot be saved, and a second refused attempt no longer loses the newer values. Values kept for a retry are cleared when you open the form again.
  • Changed Staff whose role lets them change an application but not view it (custom roles only) no longer get its contact details or history back after a change.
  • Developers Applications carry stage_version and details_key, raised by every stage, status or contact change, and REST write answers (and a 409's current) are reduced for a requester who may not view the application.
  • Fixed A teammate's change to an application you changed in the last minute now shows on your board and List without a reload.
  • Fixed When two people move the same card at the same moment, every screen ends on the same stage without extra background reads, and a late update can no longer bring back an old stage, name or email, also after Refresh board.

5 November 2026 2 releases

v1.3.11

  • Fixed On the careers page, keyboard focus stays on a filter chip when more jobs load, instead of jumping to the top of the page.
  • Changed Add application refuses a phone number the apply form would refuse instead of rewriting it, and keeps everything you typed when it shows an error. A chosen CV has to be picked again, and the message says so.
  • Fixed On staff forms, an error about one field marks that field, including a refused CV, and a marked field still shows the focus ring.
  • Changed A save that clashes with your own change in another tab, window or device now says so instead of blaming someone else, and a clash over a move or contact details names the person whose change caused it.
  • Fixed The drawer and the board card agree on an application's stage after quick moves, and a move made from the drawer no longer says "while you were dragging".
  • Fixed Messages that name a teammate, such as a clash or a live update, read as one sentence again, and a field marked with an error keeps its focus ring.
  • Fixed On sites whose database tables do not support transactions, saving contact details that did not change no longer makes the next save in another tab look like a clash.
  • Developers Vakanssi/jobs/apply_markup keeps the plugin's form when a callback returns an array or an object, the drawer extension filters get the rating currently shown, staff contact-edit errors carry data.field, and a failed save inside another plugin's database transaction is rolled back.
  • Fixed Live board updates name the person who moved a card rather than the last person to touch it, a teammate's move is no longer lost after you changed the same card from another tab, and the List view's button says "Refresh list".
  • Fixed The candidate profile marks the field an error is about, including a refused phone number.
  • Developers Filtered screening questions without an id get one (with a notice), ids are matched exactly as given, and ids longer than 64 characters keep their error link.

v1.3.10

  • Fixed Board cards and List rows show a rating as soon as it is saved in the drawer, without a reload.
  • Changed If a teammate rated an application a moment before you, your rating no longer overwrites theirs. The drawer shows their rating and says so.
  • Fixed Removing a careers filter chip with the mouse no longer draws a focus box.
  • Fixed An error link on the apply form brings the field's label into view, also inside a collapsed section.
  • Changed The apply form uses less side padding on phones, and the submit button shows a busy cursor while sending.
  • Fixed On block themes, images, tables, groups, columns and separators in a job description keep to the text width, as on your theme's own posts.
  • Fixed Phone numbers entered by staff follow the apply form's rule, imported numbers are tidied the same way when they fit it, and a refused contact edit no longer makes the next save look like someone else's change.
  • Fixed Settings and the setup wizard name the Job Listings block correctly, and the Job page settings say which options work only on block themes.
  • Developers A printed filter (markup, email, export) that returns an array now falls back to its default instead of printing "Array". vakanssi/candidate/updated fires after the save is committed, the rating REST route returns updated_at, GET applications/{id} accepts track_view, and notice ids for field names with a hyphen changed.
  • Fixed A checkbox screening question left blank is marked like other fields, and its error link shows the question.
  • Fixed The booking page no longer shows the time zone twice on sites set to a UTC offset, and stays right around clock changes.
  • Fixed Live board updates no longer miss a change made in the same second, call a teammate's rating "updated" rather than "moved", and never show one change twice.
  • Developers Screening checkbox ids are now <id>--0 (was _0); a filtered question id keeps its answer key, and a duplicate filtered id keeps the first question.

3 November 2026 2 releases

v1.3.9

  • Changed The careers page, job pages and apply form use a calmer text size on every theme, with spacing that scales with it. The job description keeps your theme's own text style.
  • Changed On block themes the careers page title and job list share one column and job pages use the same width; on wide classic themes the list keeps a comfortable reading width.
  • Changed Form field borders are easier to see, and clicking a link or button no longer draws a box around it. Keyboard users still see a clear focus ring.
  • New A setting (Settings > Jobs & Careers > Job page) and the vakanssi/jobs/apply_jump_markup filter remove the Apply button at the top of a job page.
  • Changed The apply form lists every problem at once, links each one to its field and moves focus to the list. Name, email, phone and file messages say exactly what to fix.
  • Fixed A page left open too long or sent too quickly no longer clears what the candidate typed.
  • Fixed A phone number with letters is no longer dropped silently, and numbers pasted with hidden characters or unusual dashes are saved cleanly.
  • Changed The CV field states its size limit, checks the size before uploading and shows the chosen file with a Remove button.
  • Fixed Country names can be translated, and Hebrew pages show questions, file sizes and the required mark in the right order.
  • Fixed Nothing on the careers or job pages scrolls sideways on narrow screens, Twenty Twenty-One's focused Apply button is readable, and Astra no longer underlines job rows.
  • Fixed Board animations stop when reduced motion is on, moved cards keep an outline in high-contrast mode, "today" follows the site's calendar day, ratings above four show as four, and an application no longer shows twice while the board loads.
  • Changed The setup wizard names both likely causes when the careers page shows no jobs.
  • Developers Custom CSS for the Apply button should use :root p.vakanssi-apply a.vakanssi-apply-button (rules written for 1.3.8 may no longer win). vakanssi/intake/validate may return a WP_Error, vakanssi/intake/form_fields gets a third argument, and the REST expected_rating accepts the stored value.
  • Fixed Screening question errors link to their question, and the booking page shows the visitor's time zone and moves focus to its error.
  • Fixed The "+N more" viewers chip has its own translation.

v1.3.8

  • Changed A withdrawn application on the board sits flat on a pale card with full-contrast text, and its Withdrawn label (board and List) has a small leaving icon.
  • Changed Screen readers hear a board card's candidate, job and status first, then its date, rating, CV and other applications as its description.
  • Changed On the careers page the sort control sits next to the open-role count and stays level with it at every screen width; picked filters show beside or below the count, and long team names are shortened.
  • New The job page has an "Apply for this position" button under the title that jumps to the application form or opens the external apply link.
  • Fixed The careers search box lines up with the other filters on every theme.
  • Fixed The consent checkbox on the application form is larger and lines up with the first line of its text.
  • Fixed Salaries no longer break between the currency and the amount, and job details wrap between items.
  • Fixed "+N other applications" reads correctly in right-to-left languages and uses the right plural, on the board and in the List.
  • Fixed A card you just moved stays highlighted while the pointer is over it.
  • Fixed The job editor's closing-date check uses your site's time zone.
  • Developers The careers sort moved from .vakanssi-jobs-bar to .vakanssi-jobs-meta (count and chips are in .vakanssi-jobs-summary); salary markup passed to vakanssi/jobs/listing_row and vakanssi/jobs/details_markup includes a vakanssi-salary-amount span; a vakanssi/pipeline/candidate_context filter that removes keys no longer causes warnings.
  • Fixed A card a teammate just changed stays highlighted while the pointer is over it.
  • Fixed The "+N more" viewers chip on the board reads correctly in right-to-left languages and uses the right plural.

2 November 2026 2 releases

v1.3.7

  • Changed The Withdrawn badge on board cards and List rows is now a clear pill that matches the drawer's Withdrawn status.
  • Fixed Screen readers now announce everything on a board card: the candidate, job, Withdrawn status, whether it is new, when they applied, the rating, a CV on file and their other applications.
  • Fixed The drawer and the board, including cards added by live updates, show application dates in your site's time zone and date format, matching the printed sheet.
  • Fixed The setup wizard's careers checks are cleared when a published page is moved to another post type.
  • Fixed Candidate profile and scorecard dates use your site's time zone and date format.
  • Fixed In the talent pool, a source filter from a link that matches nothing shows as its own option with a (0) count instead of repeating another option's name.

v1.3.6

  • Fixed The setup wizard's receipt no longer says your careers page was never checked a minute after it was checked. The result stays until something that can change it is saved, and the receipt shows when the checks ran, with a link to check again.
  • Fixed The personal-data export a candidate receives names each application's status (Active, Hired, Rejected, Withdrawn), and Hiring HQ's Latest applications names every status other than Active.
  • Fixed Add application shows the source by name ("Added manually"), and a typed source name such as "Referral" is saved as that source, also when it is typed in the site's language by an admin who uses another language.
  • Changed One application's own views (the drawer header, the printed sheet and the team's new-application email) show a typed source exactly as typed, for example "LinkedIn-Ads".
  • Fixed The talent pool names a candidate's source the way the drawer does, and its source filter lists each source once, with a count that matches the candidates it finds.
  • Fixed The candidate profile lists Careers page and Imported once each, and saving it without changes leaves the stored source alone.

1 November 2026 2 releases

v1.3.5

  • Fixed The printed application shows its status by name (Active, Hired, Rejected, Withdrawn).
  • Fixed Edit details in the candidate drawer shows a source by its name, for example Careers page, and keeps a source you typed exactly as you typed it. Saving without changes leaves the source alone, and typing the name of a known source saves it as that source.
  • Security Webhooks refuse every address that is not on the public internet, including benchmarking, documentation and multicast ranges, and are never sent unprotected when other code on the site switches how WordPress sends them.

v1.3.4

  • Changed The CV storage warning matches the risk. On a new site, before any job takes applications or any CV is stored, it is a setup step you can postpone; once a job is live or a CV exists, it cannot be dismissed (red when the folder is open to the web) and stays until the server rule is in place. It offers the rule to copy, a note to send your host and a Check again button, the setup checklist and Site Health show the same state, and the job editor warns you when you publish.
  • Fixed On a phone, a long job title in the Applications job filter no longer makes the page scroll sideways.
  • Fixed The List view names the candidate in its prompts after a direct link, a rename, or in the People grouping, and phone fields read left to right in Hebrew.
  • Security Webhooks connect only to the address the safety check approved, so an IPv6 or changed DNS answer cannot reach an internal address. A webhook through a proxy is tunnelled to that address. Webhooks need PHP's cURL extension with libcurl 7.49 or newer.
  • Changed A webhook refused for its port, a user name or password in the address, or an IPv6 address fails at once instead of being retried.
  • Fixed An interviewer added to an existing interview gets the interview invite, saving an interview without changes sends no email, and the emails for a removed interviewer, a booking link, a booked time and a withdrawn proposal now name the interview mode too.
  • Fixed The printed application names the answer that disqualified the candidate, and long answers wrap on the page.

31 October 2026 1 release

v1.3.3

  • Fixed The Cloudflare Turnstile check loads wherever the apply form is shown, including the apply-form shortcode, and a check that fails or cannot run says so next to the button instead of failing quietly.
  • Fixed Emails no longer show an unknown merge tag such as {salary}: saved templates leave it out and warn you on save, an empty tag leaves no gap, and a "Phone:" line with no phone is left out.
  • Fixed Interview emails use the site's language for dates and default interview names, say "rescheduled" or "details updated" when something changes, name the interview mode, and are not sent to the candidate for staff-only edits.
  • Fixed The first pipeline stage must be an Open stage, because new applications land there.
  • Fixed On a phone or narrow window the board, the candidate drawer and settings tables stay inside the screen, and Hebrew admin screens show dates, phone numbers and arrows the right way round.
  • Changed CSV exports start with a UTF-8 byte order mark, so Excel opens Hebrew and accented names correctly. Scripts should read them as utf-8-sig.
  • Fixed Renaming or reordering scorecard criteria keeps the scores already given, and an untouched save in Hebrew no longer resets the rubric.
  • Fixed Recruiters limited to their own jobs no longer see counts or duplicate hints from candidates outside them; Talent Pool bulk tagging and source labels work.
  • Fixed hCaptcha and reCAPTCHA v3 load on every apply form, and the settings test tells v2 keys apart from v3 keys.
  • Fixed A manual move into a stage that sends an automated email first asks whether to email the candidate.
  • Fixed A webhook switched on with no events is refused with a reason, and "Send test" no longer reports success for it.
  • Fixed Pro's Hebrew translations load on WordPress 6.6 and 6.7 and are not replaced by a wordpress.org language pack.
  • Fixed Hiring HQ says which figures count applications received in the range, and the analytics CSV labels follow the site language.
  • Fixed The screening banner names the answer that disqualified a candidate; booking buttons are easier to tap and use your brand colour.

29 October 2026 1 release

v1.3.2

  • Fixed A phone number or source longer than 64 characters now gets a clear message naming the field and the limit, in the drawer and on Add application, instead of a general save error. Imports leave such a phone number out and note it in the import log.
  • Fixed The candidate profile and Add candidate give the same clear message for a phone number or source over 64 characters.
  • Fixed After you change the scorecard rubric, the Applications CSV, the REST API and the personal data export show the same overall score as the candidate drawer.
  • Fixed Applications scored before August 2026 show their overall score in the REST API and the personal data export after the update.
  • Fixed The analytics CSV includes Time to first reply, Offer acceptance and the weekly applications figures that Hiring HQ shows.
  • Fixed Uninstalling with "delete all data" no longer prints a database error about scorecard summaries.

28 October 2026 1 release

v1.3.1

  • Fixed Duplicating a job keeps backslashes in its title, description and job details, and importing from WP Job Manager keeps a backslash in the company name.
  • Fixed The setup wizard keeps every backslash on a careers page it connects or creates. Connecting an existing page no longer removes embeds, scripts or attributes it holds when your account cannot post unfiltered HTML, for example a site admin on multisite.
  • Fixed The setup wizard checks page permissions. Adding the jobs list to a page needs permission to edit that page, and creating or restoring the careers page needs permission to publish pages. When it refuses, the step says why.
  • Fixed With **Page layout** set to "My theme's template", the setup wizard, the WordPress 6.7 notice and Site Health no longer promise the Vakanssi job layout.
  • Fixed A theme or plugin that renders a job page early, while WordPress is still choosing the template, no longer takes the job details, the apply form, a refused application's reason or an expired job's closed notice away from the page that follows.
  • Fixed A backslash in a screening question or one of its options is kept when the job is saved.
  • Fixed A candidate can no longer be added to a job that is in the trash or is a sample job.
  • Fixed The Automation tab lists the {candidate_email} and {candidate_phone} merge tags it already fills.

25 October 2026 1 release

v1.3.0

  • New On multisite, a super admin sees the hiring data that deleted sites left behind (in Site Health, on the network Dashboard and Sites screens, and under **Hiring → Tools → Status**) and removes it under **Hiring → Tools → Data** after confirming. CV files that cannot be removed stay listed until you choose to stop tracking them.
  • Fixed Deleting a network site whose CVs could not all be deleted no longer loses the record of those files; Vakanssi keeps that site's list of CV files so they can be found and removed later.
  • Fixed A new network site that gets the ID of a deleted site no longer shows the deleted site's candidates and applications as its own.
  • Fixed On PHP 8, deleting a network site no longer stops with an error when a stored file name is damaged.

24 October 2026 1 release

v1.2.6

  • Fixed A job page whose description contains the Job Details shortcode shows the details block once instead of twice.
  • Fixed On themes that show an excerpt before the job description, the job page no longer loses its details block and apply form, and the excerpt no longer includes the job details.
  • Fixed An apply form placed in the job description with its shortcode no longer disappears when an SEO plugin reads the page first.
  • Fixed After a refused application, the candidate sees the reason instead of a generic error when another plugin reads the page before it is shown.
  • Fixed While a stage move is still saving, the drawer no longer shows the candidate's position in the new stage next to the old stage.
  • Fixed On WordPress older than 6.7 with a block theme, the setup wizard no longer promises the branded job page layout, and a notice says job pages use your theme's post layout until you update.
  • Fixed An application whose CV is larger than the server's upload limit goes back to the job page with the "too large" message instead of a blank page.
  • Fixed Very long interview locations, candidate names and candidate locations are shortened to fit. Before, saving could fail.
  • Fixed The CSV job import no longer warns about a missing country for a row whose location was skipped.
  • Fixed A job whose title is only invisible characters shows as "(no title)" on the candidate profile.

23 October 2026 3 releases

v1.2.5

  • Fixed Editing a location, even just its description, no longer changes the city of jobs in the locations under it, and editing "Remote" no longer gives remote jobs the city "Remote".
  • Fixed Saving a job without changes keeps all of its locations, for example after an import, instead of keeping only the first one alphabetically.
  • Fixed You can clear a job's location, and a deleted location no longer comes back the next time a job is saved. Deleting a location also removes it as the city of the jobs that used it.
  • Changed Quick Edit and Bulk Edit on All Jobs no longer offer locations, because they changed a job's location without its city. Set the location in the job editor.
  • Fixed A location or department name with no letters or numbers is skipped (the import log says so) instead of filing the job under an unrelated place or team.
  • Fixed An "&" in a location now shows as "&" in Google for Jobs data, the REST API, job filters and the Jobs block, and location names over 200 characters save.
  • Fixed Changing a job's city over the REST API also updates its location, and CSV import keeps backslashes in names, so importing the same file again finds the existing jobs.
  • Fixed Picking a team on the careers page also shows its sub-teams' roles and roles that list it as a second team, matching the shortcode's department setting.
  • Fixed Visitors can no longer list departments used only by draft, private, password-protected, expired or sample jobs through the REST API, or read department descriptions there.
  • Changed The Departments and Locations screens explain each field in plain words, and saving jobs says "Job published" and "2 jobs updated" instead of "Post".

v1.2.4

  • New Departments and Locations are in the Hiring menu.
  • Fixed The importer checks each CV's contents. A PDF or Word file saved under the wrong one of those extensions is kept under its real type; anything else is skipped, and the import log says why.
  • Fixed Simple Job Board import no longer adds "Jobapp Status" to every application's notes.
  • Fixed An interview title longer than 191 characters is shortened to fit. Before, scheduling failed with "Could not save the interview."
  • Fixed A note made only of invisible characters says "The note is empty." instead of a generic error.
  • Fixed A CSV import, or a CV on Add application, that is larger than the server's upload limit now usually goes back to its form with the "too large" message instead of a blank page.
  • Fixed If removing all applicant data leaves a CV behind, its folder keeps its protection files.
  • Fixed Site Health no longer reports outbound requests as blocked when the site can still reach itself, and names a block_local_requests filter when that is the cause.
  • Fixed A job whose title is only invisible characters shows as "(no title)" in filters and on the board.
  • Fixed The support report lists the modules that are actually running, and a module that fails to load no longer causes a "translation loading triggered too early" notice.
  • Fixed The Tools screen runs three fewer database queries.
  • Changed REST API. A rating outside 0 to 4 is refused, a stale expected rating returns a conflict, an interview created without a length uses the default from your settings, and conflict responses all have the same shape.
  • Fixed A tag made of invisible characters followed by a letter is refused, a talent-pool name made only of invisible characters is saved as blank, and a booking title longer than 191 characters is shortened to fit.

v1.2.3

  • Fixed Moving a candidate in the drawer no longer makes the drawer jump. The confirmation is a short message in the corner, and the previous/next arrows stay in the drawer's title bar.
  • Fixed On a site turned into a multisite network, the main site keeps finding, exporting and deleting the CVs it stored before the change, and uninstalling with "Delete all data" removes them.
  • Fixed Deleting a site in a network no longer logs database errors, and also removes its CVs from a previous storage folder.
  • Fixed A data removal that could not delete every CV can be run again to finish the job.
  • Changed On multisite, network activation is the recommended setup. With per-site activation, a site deleted where Vakanssi is not active keeps its Vakanssi data until removed by hand.
  • Fixed Two quick clicks on "Add to menu" in the setup wizard add the careers page once.
  • Fixed An interview update sent through the REST API without a list of interviewers keeps them, instead of removing everyone and emailing them a cancellation.
  • Fixed Applicant names, notes and interview titles made only of invisible characters, such as a non-breaking space, are treated as blank. Data you already saved is not changed.
  • Fixed The CSV job import says when a file is empty or too large (and names the limit), counts "1 job" correctly, and no longer promises a new job for every row.
  • Fixed A link to a settings or Tools tab that is not there says why, and names the feature that would bring it back.
  • Fixed When another page, post type or taxonomy uses your job address, the notice names it instead of calling it a plugin.
  • Fixed Email help says the company name is set in Settings > General, and the Apply button help names the shortcode option that can override it.
  • Fixed Required screening answers, tags, talent-pool names and booking titles made only of invisible characters are treated as blank.

22 October 2026 3 releases

v1.2.2

  • Fixed A completed interview can no longer be cancelled, so nobody is told that a meeting which took place was called off.
  • Fixed An interviewer you remove from an interview gets a calendar cancellation for their copy. Everyone else gets one update, as before.
  • Changed Interview invites to your team name the candidate and link to the application. The candidate's own invite is unchanged.
  • Fixed Interview emails for a job without a title no longer have a subject that ends in a colon.
  • Fixed Resend sends the interview as it is now, not as it was when the drawer opened.
  • Changed A site that keeps taking applications after the closing date (the vakanssi/intake/block_expired_jobs filter) now shows the form on the job page too, without the past closing date. Google stops listing the job, as for any expired job.
  • Fixed A stage name made only of invisible characters, such as a non-breaking space, is refused.
  • Fixed The setup wizard's careers-page check notices widget changes, new posts and menu items deleted outside the menu screen, and two quick "Add to menu" clicks add one item.
  • Fixed Booking links and "Interview booked" emails for a job without a title no longer have an empty subject or heading.

v1.2.1

  • Fixed Hiring HQ counts only roles that are taking applications. Expired, password-protected, draft and sample jobs no longer count as open, and a site with no jobs no longer says every role is receiving applications.
  • Fixed Hiring HQ's latest applications include hired, rejected and withdrawn ones, with their status.
  • Fixed Clearing a stage name in Settings > Pipeline no longer deletes the stage. The save is refused; tick Delete to remove a stage.
  • Fixed Note times use your site's time zone and the same format as the Activity tab, and dates in a personal-data export are marked UTC.
  • Fixed The candidate drawer no longer offers Send email when the Email module is off, shows a stage move in Activity straight away, keeps a counter after you move the open candidate to another stage, and tells screen readers the name of the candidate you moved to.
  • Fixed The Applications page no longer logs a permission error for recruiters on every load.
  • Added The setup wizard's last screen says whether your home page links to the careers page, and on classic themes can add it to your header menu.
  • Changed The brand colour is now in Settings > General, next to your company name and logo. It also works with the Email module off.

v1.2.0

  • Fixed Sample data from the setup wizard is now seen only by signed-in staff. It never appears on the careers page, in search or in Google for Jobs, and sample jobs take no applications. Removing sample data keeps any sample job a real person applied to, and the Applications board no longer hides applications when no job is published.
  • Fixed On classic themes such as Twenty Twenty-One, job descriptions keep their paragraph, list and heading spacing, and the Apply button and filter chips keep your brand colour.
  • Changed After applying, candidates see a confirmation with what happens next instead of an empty form.
  • Fixed Jobs written in the block editor no longer send editor comments to Google for Jobs, and a job without a title is no longer marked eligible or published there. The job editor's readiness checklist now updates as you type and publish, and an untitled job reads "(no title)" on staff screens and in exports.
  • Fixed On the apply form, a "too long" refusal no longer uses up the hourly limit, a long cover letter (Hebrew and emoji included) is kept whole after an error, a letter at the length limit with line breaks is no longer refused, and a job that has closed no longer says the answers were kept.
  • Changed When a licence lapses, recruiters and hiring managers keep seeing only the candidates assigned to them; the lapse notice says so.
  • Changed A VAKANSSI_UNLOCK_ALL line in wp-config.php no longer unlocks the Pro plugin.

18 October 2026 1 release

v1.1.2

  • Fixed When staff change a candidate's email address, the old address stays on file for the privacy tools. Erasing, exporting or expiring that person also covers emails sent to the old address and stored copies of their details. A privacy request made with the old address does not find them, because the change is often a typo fix and that address may be someone else's.
  • Fixed The application drawer asks before discarding a half-typed note or a half-filled interview form, when closing, stepping to another candidate, moving a stage in the List view or following a link out.
  • Fixed Imported salaries written with dots between thousands, such as "€45.000", keep their full amount. Currencies written with three decimals, such as KWD, still read "800.000" as 800.
  • Fixed On MariaDB, updating Vakanssi no longer alters its database tables again on every update.
  • Fixed The Applications list no longer looks up each row's job separately.
  • Fixed A VAKANSSI_STORAGE_DIR that points at the root of the server's file system, such as / or C:\, is refused, on multisite too.
  • Changed The Applications screen carries its job, stage and candidate filters as whole numbers only.
  • Fixed The candidate profile loads with the same number of database queries however many applications the person has.
  • Fixed The Candidates CSV export no longer re-reads the remaining candidates for each part of the file, and a candidate deleted during an export no longer cuts the file short.
  • Fixed On a site that already had applications before this plugin was installed, the first admin visits no longer run around a thousand extra queries each while past stage moves are copied into the reports.
  • Fixed The drawer's Propose times form also asks before its picked times are discarded.

17 October 2026 2 releases

v1.1.1

  • Changed The Emails settings tab lists what each merge tag fills in, instead of showing it only on hover.
  • Fixed Erasing an address that contains a "/" now clears every stored copy that names it.
  • Fixed After two candidates are merged, erasure, export and retention also cover the merged candidate's email address, and a request made with that address finds the person.
  • Fixed The Applications CSV export with scorecard columns no longer runs one or two extra queries per row.
  • Fixed Every candidate profile timeline event is translated.
  • Fixed reCAPTCHA v3 refuses a token created for another form.
  • Fixed The booking page writes local times in the site's language.
  • Changed The Automation tab lists what each merge tag fills in.

v1.1.0

  • Fixed Deleting one copy of Vakanssi no longer wipes the settings, roles and data that another installed copy still uses. The last copy deleted still cleans up, honouring your delete-data choice.
  • Fixed The {candidate_email} and {candidate_phone} tags were blank in Rejection and Offer emails. They now fill in.
  • Fixed The Applications CSV export now respects the person filter, so "See all applications" for one person exports only that person's applications.
  • Fixed The Job Details shortcode and Elementor widget showed draft and private jobs, and other post types, to anyone. They now show only published jobs, or jobs the viewer may read.
  • Fixed The Divi module is now called vakanssi_divi_jobs, so it no longer takes over the [vakanssi_jobs] shortcode. [vakanssi_jobs] now reads "off" and "no" as off in its yes/no options, which also fixes saved Divi layouts.
  • Fixed Applicants marked hired in WP Job Openings are imported as hired, not New.
  • Fixed A personal-data export no longer shows the names of teammates mentioned in notes, and deleting a teammate removes their @name from notes that recorded the mention. If someone edits that note at the same moment, the name can stay, and the audit log records which note.
  • Fixed The Apply result pages are no longer stored by page-caching plugins, so one applicant's confirmation is not shown to another.
  • Changed Privacy export, erase and retention now also cover extra application data kept in the database. The export lists it under "Additional application data".
  • Changed When Vakanssi cannot send an email, the mail system's reason is saved with the email. It is not shown anywhere yet.
  • Added A notice when the saved spam protection provider is not available, and one when a saved setting limiting which candidates staff can see is not being enforced.
  • Added A Pricing link on the Plugins screen and one line at the foot of Settings pointing to the separate plugin. The Documentation, Troubleshooting and Pricing links on the Plugins screen, and the Settings line, now tell screen readers they open in a new tab.
  • Changed The Documentation and Troubleshooting links on the Plugins screen now tell screen readers they open in a new tab.
  • Fixed Erasing or expiring one applicant's data no longer clears the stored webhook copy for another applicant whose email address contains theirs, such as joann@ for ann@.
  • Fixed With blind scoring on, a reviewer who has not scored no longer sees the team's average score in the application data or the CSV export.
  • Fixed Interview times that have already passed can no longer be booked, and the "times have passed" page now appears.
  • Changed Proposing only interview times that have already passed now says the times have passed, instead of asking for a time.
  • Fixed Average time to hire counts to the hire itself, so editing a hired candidate no longer changes it. Applications hired without a recorded stage move still use their last update.
  • Fixed When assignment scoping switches off, the email and the notice now give the real cause and list only the settings that are off.
  • Fixed The self-booking page is no longer stored by page-caching plugins, so one candidate's booking page is not shown to another.
  • Added When your licence expires or is cancelled, one dismissible notice says Pro features are off, that nothing was deleted, and how to renew or switch to the free version.
  • Added Site Health reports webhook deliveries stuck for more than an hour, and says whether the scheduled task stopped or the endpoint is failing.

16 October 2026 2 releases

v1.0.1

  • Fixed A relative VAKANSSI_STORAGE_DIR, such as cvs or ../cvs, is now refused instead of being resolved against whatever folder PHP happened to run in. Before, CVs could land inside the website and be downloadable. While it is refused no CV is stored, and Site Health and Tools, Status say it must be an absolute path and, when they find a folder with the Vakanssi storage marker, name it as the place earlier CVs may sit.
  • Fixed When a CV cannot be stored, the applicant sees a plain message and keeps their answers.
  • Fixed After you move CV storage, downloading, deleting, erasing, retention and uninstall also find CVs in the previous folder (uploads/vakanssi, and the last custom folder if you change it on 1.0.1 or later). Site Health and Tools, Status count the CVs still there and, for a previous folder inside your website, warn that on some servers they may be downloadable directly until you move them. Vakanssi never moves files, so move them yourself: https://docs.vakanssi.com/admin/move-cv-storage/
  • Fixed The personal-data eraser reports a CV whose file cannot be found as retained, with its file name, instead of removed, and logs it. While the storage location is invalid, erasing, deleting and retention keep any application that has a CV.
  • Changed In the old uploads/vakanssi folder Vakanssi deletes only the CVs it has records of. Delete anything left in that folder yourself after moving. A folder that cannot be read counts as left over, and the first leftover is named in the log.
  • Changed Tools, Status no longer offers "Check storage again" while the storage location is invalid, and the support report shows "Storage path valid" (yes or no, never the path).

v1.0.0

  • Changed First stable release. Updating from 0.37.15 keeps your jobs, applications, settings and Additional CSS as they are.
  • Fixed The advice under Settings, Jobs & Careers, Appearance said a single class such as .vakanssi-apply-button was enough to restyle the Apply buttons from Additional CSS. It was not, because Vakanssi styles them two classes deep. The advice now names selectors that work, .vakanssi-apply-form .vakanssi-apply-button and .vakanssi-apply .vakanssi-apply-button, and reminds you to style :hover, :focus and :active too.
  • Fixed The applications CSV export shows candidate names, stage names and sources that contain "<" as typed.
  • Changed The plugin is now listed as "Vakanssi: Careers Page, Hiring & Applicant Tracking", so it is easier to find when you search for a careers page.
  • Security CSV exports also neutralise a spreadsheet formula hidden behind leading spaces, line breaks or invisible characters.
  • Changed For developers, the vakanssi/export/row filter receives the name, stage and source cells as plain text.
  • Fixed The candidates CSV (names, location, source, tags) and the Hiring HQ CSV (stage and source names) show text that contains "<" as typed.
  • Fixed The "email the organiser" link on the self-booking page starts the email with the interview and job titles as typed.
  • Fixed The "Propose times" panel shows interview types that contain "<" as typed, matching the interview edit form.
  • Fixed Assignment and mention emails show a job title exactly as typed in the subject and the body, also when the title itself contains HTML code written as text. The vakanssi/email/send_args filter now receives these subjects in stored form, like every other email.

15 October 2026 3 releases

v0.37.15

  • Fixed A job title with an apostrophe, a quote or an ampersand, such as "Director's Assistant", shows as typed in interview calendar invites, the applications CSV export, the Applications board, the application drawer, the job filter and the job details search engines read. Before, those showed HTML code in place of that character.
  • Fixed Interview titles, locations and notes that contain "<", and team members' names that contain "&", show as typed in the interview panel and in calendar invites. Saving an interview without changing its text keeps that text exactly as it was.
  • Changed The team's "New application" email names where the application came from ("Careers page") instead of the stored value ("native"), in the site's language, also when someone using WordPress in another language resends it.
  • Changed For developers, job titles and interview text in the REST API, and the job title and company name in the job's structured data, are plain text instead of HTML entities. Escape them before printing them as HTML.
  • Fixed Webhooks, Slack and Teams messages, the Hiring HQ CSV export, the candidate profile, the talent pool and the self-booking page's calendar links show job titles, stage names, interview details and team members' names as typed. In webhooks, everything your team wrote is now plain text; the applicant's own name is still sent as stored.

v0.37.14

  • Fixed Email subjects are sent as plain text. A job title with an apostrophe, a quote or an ampersand, such as "Director's Assistant", reached candidates with HTML code in place of that character.
  • Fixed The application drawer and the printed application sheet show the source's name ("Careers page", "Added manually", "Imported from WP Job Manager") instead of the stored value, such as "native". A source someone typed in is shown as typed. The applications list in the REST API carries the name as source_label beside source.
  • Fixed The Getting started steps on Hiring HQ stay open while the only jobs and applications on the site are sample data. Before, adding the sample data folded the steps away although none of them was done.
  • Fixed Assignment and mention emails to teammates name the job, so two applications from one person no longer produce identical emails.
  • Fixed An automation email whose subject names a job with an apostrophe or an ampersand keeps its Resend button.
  • Changed Hiring HQ's source table uses the same names as the drawer, with one row per name. Spellings that differ only in case or accents are no longer merged under whichever spelling the database picked, and stored values that mean the same channel (such as "native" and "careers_page") are one row.

v0.37.13

  • Changed An interview can last at most 480 minutes (8 hours), the limit the Interviews settings already used for the default length. Creating or editing an interview with a longer length is now refused with a message instead of being saved. An interview saved with a longer length before this update keeps it when you edit something else.
  • Changed Further code-standards hardening: the email link in the applications people list is built with WordPress's URL escaping, and the job editor reads its security token the way the WordPress handbook asks.
  • Changed Proposing interview times also refuses a length above 480 minutes.
  • Fixed The email link in the talent pool is built with WordPress's URL escaping.

Older releases

This page lists the 30 most recent releases of 260. The full history, back to 0.1.0, ships inside the plugin as changelog.txt.