Jobit Vacancies for Multiposter

Опис

Multiposter lets you manage and display job vacancies on your WordPress site. Use it as a standalone job board or connect it to the Multiposter platform for automatic vacancy synchronisation.

Features:

  • Custom post type for vacancies with detailed meta fields
  • Archive page with filters (keyword, position, city, salary range)
  • Responsive vacancy cards with thumbnail support
  • Built-in application form (API or email submission)
  • Favourites system (cookie-based)
  • Related vacancies with configurable matching criteria
  • Share buttons (LinkedIn, Facebook, X, WhatsApp, Email)
  • SEO options with customisable title and description templates
  • Open Graph and Twitter Card meta tags
  • Configurable pagination and column layouts
  • Image gallery with lightbox
  • Performance caching with transients
  • Gutenberg blocks (archive, latest vacancies, single vacancy, search)
  • Full internationalisation support (Dutch translation included)

Standalone Mode:

Without an API key the plugin works fully standalone. Create vacancies manually in the WordPress admin, and applications are delivered via email.

Multiposter Integration:

Enter your Multiposter API key to enable automatic vacancy synchronisation. Vacancies are imported on a configurable schedule and applications can be sent directly to the Multiposter API.

Source code

The full, non-minified source code for this plugin (including the un-compiled JavaScript for the Gutenberg blocks) is publicly available at:

https://github.com/mooxnl/multiposter-wp-plugin

The compiled block scripts shipped under assets/js/blocks/ are generated from the matching files in src/blocks/ using @wordpress/scripts.

To build the block assets locally:

  1. Clone the repository.
  2. Install dependencies: npm install
  3. Build the production bundles: npm run build
  4. For development with file watching: npm run start

The build writes the compiled JavaScript and *.asset.php files to assets/js/blocks/.

External services

This plugin connects to external services under specific conditions. The plugin is fully functional in standalone mode without contacting any of these services.

Multiposter API (app.jobit.nl)

Used to synchronize vacancies and, optionally, to submit job applications and candidate registrations. Only contacted when a Multiposter API key is configured in the plugin settings.

  • What is sent — vacancy synchronisation: the configured API key and vacancy fetch parameters (channel ID, page, limit). No visitor data.
  • What is sent — application form submissions (when „API“ or „API and email“ is selected for the application form): the configured API key and the form fields the visitor provides (name, email, phone, message, uploaded CV, vacancy ID).
  • What is sent — registration form submissions (when „API“ or „API and email“ is selected for the registration form): the configured API key and the form fields the visitor provides (first name, last name, email, phone, motivation, optional uploaded CV).
  • When it is sent: on the scheduled vacancy sync interval, on manual re-sync from the admin screen, when a visitor submits the application form, and when a visitor submits the registration form.
  • Endpoints contacted: https://app.jobit.nl/api/vacancies/channel/{channel_id} (vacancy sync) and https://app.jobit.nl/api/candidates (job applications and candidate registrations, distinguished by a type field in the request body).
  • Service: operated by Multiposter.
  • Terms of service: https://multiposter.nl/informatie/voorwaarden
  • Privacy policy: https://multiposter.nl/informatie/privacy-policy

Social share endpoints

The share buttons rendered on single vacancy pages link to external share URLs provided by LinkedIn, Facebook, X (Twitter), WhatsApp and the visitor’s own mail client. No data is transmitted automatically; data is only sent if a visitor clicks a share button and uses the resulting page.

  • LinkedIn: https://www.linkedin.com/legal/user-agreement / https://www.linkedin.com/legal/privacy-policy
  • Facebook: https://www.facebook.com/legal/terms / https://www.facebook.com/policy.php
  • X (Twitter): https://x.com/tos / https://x.com/privacy
  • WhatsApp: https://www.whatsapp.com/legal/terms-of-service / https://www.whatsapp.com/legal/privacy-policy

Блокови

Овај додатак пружа 9 блокова.

  • Vacancy Archive
  • Latest Vacancies
  • Single Vacancy
  • Vacancy Search
  • Application Form
  • Vacancy Image Grid
  • Share Buttons
  • Related Vacancies
  • Registration Form

Постављање

  1. Upload the multiposter folder to /wp-content/plugins/.
  2. Activate the plugin through the ‘Plugins’ menu in WordPress.
  3. Go to Multiposter > Settings to configure the plugin.
  4. (Optional) Enter your Multiposter API key to enable automatic sync.
  5. Visit Settings > Permalinks and click „Save Changes“ to register the vacancy URL slug.

ЧПП

Do I need a Multiposter account?

No. The plugin works standalone without an API key. You can create and manage vacancies directly in WordPress.

How do applications work without an API key?

Applications are sent via email to the configured notification address, or to the site admin email as a fallback.

Прегледи

Види сав 1 преглед

Сарадници и градитељи

„Jobit Vacancies for Multiposter“ је софтвер отвореног кода. Следећи људи су допринели овом додатку.

Сарадници

Преведите „Jobit Vacancies for Multiposter“ на свој језик.

Заинтересовани сте за градњу?

Прегледајте код, проверите SVN складиште или се пријавите на белешку градње преко RSS-а.

Белешка о изменама

2.5

  • Fix: the archive filter spinner kept loading after switching to wp_send_json in 2.3. jQuery now receives an already-parsed object on the application/json response, so the success handler no longer calls JSON.parse on it (which produced "[object Object]" is not valid JSON). The handler now accepts either an object or a string for safety.

2.4

  • Fix: the 2.2 identifier migration could be skipped on sites where the first admin_init after the upgrade fired without manage_options (editor-role user, custom roles, AJAX/cron contexts), leaving vacancies stored under the legacy vacatures post type and invisible in admin and on the front-end. The migration now re-checks for legacy vacatures / cities / position rows on every admin page load and renames any that remain, regardless of whether the multiposter_migration_v22 flag was previously set
  • Fix: bust the posts and terms object-cache last_changed keys after the migration so cached query results pick up the renamed post type and taxonomies immediately

2.3

  • Security: escape forward slashes in the JobPosting JSON-LD output so vacancy fields containing </script> cannot break out of the schema <script> tag
  • Switched the archive AJAX handler to wp_send_json and now caches the response as a structured array instead of a raw JSON string
  • Removed the unprefixed [jobs_archive] and [job_single] shortcode aliases — please update existing pages to use [multiposter_archive] and [multiposter_single]

2.2

  • Renamed text domain to match the WordPress.org plugin slug
  • Prefixed custom post type, taxonomies and shortcodes with multiposter_ to avoid collisions
  • Added one-time migration that updates existing posts and terms on first admin load after upgrade — no manual action required
  • Hardened API-key sanitization, escaped vacancy title in the the_content filter callback, moved the inline admin loading-overlay style into the enqueued stylesheet
  • Documented the candidate registration endpoint and the public source repository in the readme

2.1

  • Documented external services (Multiposter API, social share endpoints)
  • Switched JSON responses to wp_json_encode
  • Hardened output escaping on share buttons and admin settings tabs
  • Corrected contributor username

2.0

  • Added standalone mode (manual vacancy creation)
  • Added application form email fallback
  • Added security nonces to all AJAX handlers
  • Added uninstall cleanup
  • WordPress.org directory compliance

1.1

  • Added Dutch date formatting
  • Local font support

1.0

  • Initial release