Personio Integration Light


Import and display your positions from Personio directly on your website. Get full control over how they are displayed.

Show application forms on your positions and transfer applications from your website to Personio with Personio Integration Pro.


The output of the positions is limited to a maximum of 10. Only in Personio Integration Pro there is no limitation.


  • manual or automatic import of open positions in German and English (other languages only in Personio Integration Pro)
  • positions are indexable by search engines (SEO)
  • each open position (job description) under own URL on your website
  • data protection friendly, as no applicant data is collected and stored
  • multiple Blocks for Block Editor, 2 classic widgets and shortcodes
  • support for classic as well as block themes
  • optionally group the lists by categories, departments, offices etc.
  • some WP CLI commands for simplified handling of data
  • compatible with WCAG


  • Personio account with enabled XML interface
  • PHP module SimpleXML

the Pro license includes:

  • Customization of slugs (URLs) for list and detailed views of positions
  • Multiple and customizable application forms incl. export of them via Personio API
  • Supports all languages Personio offers German, English, French, Spanish, Dutch, Italian, Portuguese, Swedish, Finnish, Polish
  • Support for multilingual plugins Polylang, WPML, Weglot and TranslatePress
  • Support for subcompanies and additional offices in positions
  • Support for multiple form handler like Contact Form 7, Forminator and WPForms
  • Use custom feature image on each position
  • Unlimited custom files for download on each single position
  • Manual sorting of open positions in list views via drag&drop
  • Sorting of position details visible in frontend via drag&drop
  • Support for tracking of events with Google Analytics 4
  • Support full text search for positions in frontend
  • Multiple Personio-accounts per website
  • Additional import settings, e.g. intervals and partial import for very large lists of open positions and removing of inline styles from position descriptions
  • RichSnippets for optimal findability via search engines like Google Jobs
  • Support for Open Graph (Facebook, LinkedIn, WhatsApp …), Twitter Cards and Dublin Core (optionally configurable for all or single positions)
  • Support to embed positions from your website in other website via oEmbed (optionally configurable for all or single positions)
  • Shortcode generator for individual views of lists and details
  • Extensions for the following PageBuilders: Avada, Elementor, Divi, Beaver Builder, SiteOrigin (SiteOrigin Widgets Bundle necessary), WPBakery
  • … and much more

get the Pro-Version

The development repository is on GitHub.

The Personio logo as part of all distributed icons is a trademark of Personio SE & Co. KG.


This plugin is compatible with ClassicPress.


  • Field to insert your Personio URL
  • Import-Settings
  • List of imported positions
  • Gutenberg Block for listings


Este plugin inclui 7 blocos.

  • Personio List Filter Provides a Gutenberg block to show filter as link-based dropdown-list for Personio Positions.
  • Personio Positions Provides a Gutenberg block to show a list of positions provided by Personio.
  • Description Provides a Gutenberg Block for the description of a single position managed by Personio.
  • Personio Position Provides a Gutenberg Block to show a position managed by Personio.
  • Personio Select Filter Provides a Gutenberg block to show filter as dropdown-list for Personio Positions.
  • Details Provides a Gutenberg Block for details of a single position managed by Personio.
  • Personio Position Application Button Provides a Gutenberg Block to show the application button for single position.


  1. Upload “personio-integration-light” to the “/wp-content/plugins/” directory.
  2. Activate the plugin through the “Plugins” menu in WordPress.
  3. Enter your Personio URL in the settings.
  4. Include one of the different output options for open positions in your company in your website.

Perguntas frequentes

Can I use the plugin without a Personio account?

The plugin can be installed even without Personio account. However, it is not usable without Personio data.

Does this plugin use iframes?

No, no iframe of any kind is used to embed data.

How can I use a form as an application form and submit the applications to Personio?

This is supported by the Pro version of the plugin since version 2.0.0. You can find instructions on how to do this here.

Does this plugin set any cookies or load data from external?

No, this plugin does not set cookies nor does it load data externally within the front end of the website. The exception is when images and videos are embedded in the job descriptions coming from Personio. In this case, please check to what extent this affects the privacy of your own website.

Is this plugin GPRD-compatible?

Yes, it is without any further settings.


13 Junho, 2024 4 replies
Ran into a few issues when setting up the Pro version, which we bought straight from the dev. I installed it without installing the Light version first, then got prompted to do that. Turns out if you install them in that order, a bunch of stuff goes belly-up, so I needed to contact support end ended up uninstalling, then reinstalling in the right order. Apart from that, this is a solid, reliable plugin that works quite well. I love that when using shortcodes (I use Bricks Builder for which there is no integration), the plugin produces clean HTML output with no CSS that I have to battle against. Would have liked a few more classes, but I can still target any element I want with :nth-child and the like so it’s all good.
20 Dezembro, 2023
This plugin is absolutely spot on; it solves the problem and offers fantastic technical support. I used it to implement global recruitment on a client’s website, which has locations in 10 countries with distinct recruitment processes and languages. When I encountered an issue, I reached out to their support team and received absolutely great assistance.”
21 Novembro, 2023
Das Plugin tut genau das, was es soll und wartet dabei noch mit einer Vielzahl wählbarer Optionen auf (In der Premium-Version natürlich mehr). Der Support ist hervorragend: Ich habe um Rat bei der Entfernung der bei Personio verwendeten Inline-Styles gebeten. Das Feature wurde sofort in das Plugin eingebaut, das Update ging zwei Tage später raus.
5 Abril, 2023
Ein klasse Plugin, um schnell, unkompliziert und DSGVO-konform Personio-Stellenanzeigen auf seiner Website einzublenden. Dadurch, dass die Anzeigen über die Schnittstelle von Personio nach WordPress importiert werden, werden auf der Seite keine externen Verbindungen für den Besucher der Seite aufgebaut, wie es zum Beispiel bei der Einbindung per iFrame der Fall wäre. Zudem bietet das Plugin viele Individualisierungs- und Stylemöglichkeiten durch die Integration von Pagebuildern, wie bspw. Elementor. Wir sind sehr happy darüber, dass wir dieses Plugin gefunden haben!
Ler todas as 5 avaliações

Contribuidores e programadores

“Personio Integration Light” é software de código aberto. As seguintes pessoas contribuíram para este plugin:


“Personio Integration Light” foi traduzido para 3 locales. Obrigado aos tradutores pelas suas contribuições.

Traduza o “Personio Integration Light” para o seu idioma.

Interessado no desenvolvimento?

Consulte o código, consulte o repositório SVN, ou subscreva o registo de alterações por RSS.

Registo de alterações


  • Initial release


  • Add some hooks for changes in position-listings
  • Optimized loading of filters in listings
  • Compatibility with WordPress 6.0.2


  • Fixed usage of templates in child-themes


  • Added limit for list of positions in frontend to 10 per list and without pagination
  • Added possibility to group the list of positions by one of the taxonomies
    (also added in Gutenberg-Block as filter-option)
  • Optimized compatibility with other plugins using JavaScript in wp-admin
  • Optimized support for some popular WordPress-themes like Astra
  • Removed possibility to link the position-title in detail-view
  • Removed our own custom post type from post type list in Redirection-plugin
  • Compatibility with WordPress 6.1
  • Updated dependencies for Gutenberg-scripts
  • Fixed usage of archive template for child-themes
  • Fixed REST-API reading of excerpt of positions
  • Fixed visibility of settings-link in plugin-list
  • Fixed pagination of positions-archive


  • Optimized filter-formular for better scrolling in website after submitting
  • Previously untranslatable texts adapted
  • Fixed embedding of new group-title-template
  • Fixed parameter “ids” on Shortcode “personioPositions”


  • Add button to cancel running import after it runs for 1 hour
  • Extended logging on import of positions by Personio
  • Fixed wrong occupation slug for filter in archive listings
  • Fixed some typos in texts


  • Added link “back to list” on detail-view (optional).
  • Added possibility to different translate/change “Apply to this position” in archive- and single-view
  • Optimized support for Yoast SEO and Rank Math
  • Optimized select- and multi-select-field for plugin-settings
  • Optimized translation for german and german_formal.
  • Fully compatible with PHP 7.4, 8.0, 8.1 and 8.2
  • More logging of events with enabled plugin-debug-mode
  • Advanced support for themes: GeneratePress, OceanWP, StartIt, Twenty Fourteen, Kadence, Neve, Hestia, Total, BeTheme
  • Fixed loading of position content in detail page


  • Fixed usage of classic position widget


  • Reset import-flag on plugin-activation
  • Fixed compatibility with import of Pro-plugin


  • Added field for custom back to list url in template-settings
  • Removed Block preview in Block Editor for fix error in Block-themes
  • Updates Blocks for actual Gutenberg-enhancements
  • Compatibility with WordPress 6.2
  • Fixed some typos in texts


  • Optimized taxonomy-handling
  • Fixed typo in filter-template


  • Make sure that the cronjob are installed in any case
  • Support for Open Graph-settings by plugin OG
  • Optimized Block Editor single block: load unlimited positions for select-field
  • Code-optimization for Personio application URL
  • Code-optimization to reduce db-requests in frontend
  • Fixed Block Editor single block: disable fields if given PersonioID is not available anymore
  • Fixed support for positions without descriptions
  • Fixed import of missing createdAt from Personio
  • Fixed resetting of position order during import
  • Fixed filter regarding pagination


  • Enhanced support for Block Editor: 2 new Blocks (for filter), new options for styling
  • Filter on list Block is not automatic enabled for new Blocks anymore
  • Optimized loading of database-objects
  • Added missing Personio-driven schedule time
  • Fixed usage of some Gutenberg-options on list-Block
  • Fixed target url for filter in frontend
  • Fixed visibility of back to list link


  • Added 2 Block Templates for Block Themes
  • Added one more Block for application links
  • Added more styling-options to each Block
  • Added warning about changed templates in Child-themes
  • Optimized Block-definitions
  • Fixed usage of Personio-XML-URL for validating the Personio-URL (e.g. if the career-pages on Personio are disabled)


  • Solved SVN-problems


  • Cleanup SVN


  • Fixed missing files in SVN


  • Fixed usage of attributes in Gutenberg list-block


  • Optimized check for post-type in list-view
  • Compatibility with WordPress 6.2.2


  • Added filter for excerpt-taxonomy


  • Added hint for pro-version if Divi is used
  • Added keyword-import for each position (if set)
  • Extended WordPress-own search regarding the keywords for positions (only for exact match)
    incl. new option in settings to disable it


  • Added hints for other supported page builder.
  • Fixed template loading of template does not exist in theme or Pro-plugin.


  • Fixed release-number.


  • Restrict access to REST API Endpoint for taxonomies
  • Fixed saving of taxonomy-defaults after first installation


  • Fixed usage of attribute filter


  • Added view of imported position data in backend
  • Added hint for Avada-support in Pro-version
  • Added anchor on filter of type linklist
  • Added active marker for linklist-filter on category
  • Added language-specific links to Personio login and support pages
  • Compatibility with WordPress 6.3
  • Optimized loading of taxonomies of positions
  • default translations are now also visible in backend


  • Added filter to individually prevent our custom the_content filter from being run
  • Fixed reset query after loop


  • Add anchor to pagination in position-lists
  • Add possibility for multiple offices per position
  • Some optimizations for compatibility with Pro-version
  • Fix keyword import


  • Fixed missing form settings file in repository
  • Fixed some typos in texts


  • Added new block for position details in Block Editor, usable on single page
  • Added new block for position description in Block Editor, usable on single page
  • Added support for accessibility with aria-labels (regarding WCAG)
  • Added hints on all links which open new windows that they open new windows (regarding WCAG)
  • Added hook personio_integration_delete_single_position for individual manipulation of the deletion of single positions during import
  • Added hint to review plugin every 90 days
  • Added option on hook for filetypes on list block
  • Extended the Dashboard widget where the newest imported positions are mentioned
  • Compatibility with WordPress 6.3.1
  • Optimized handling of tabs in settings-page
  • Renamed excerpt to detail for compatibility with Personio wording
  • Updated import handling if Personio-URL is not available
  • Updated translations
  • Updated Block Editor single template
  • Updated dependencies for Gutenberg-scripts
  • Fixed reading of employment type


  • Added WPML settings to prevent translation of our own post types and taxonomies
  • Added our own importer under Tools > Importer
  • Run import even if the Personio timestamp has not been changed but no positions are in local database
  • Extended log for deletion of positions
  • Optimized log-styling
  • Updated translations
  • Fixed missing files for Block Editor in WordPress-SVN
  • Fixed error in dashboard if pro-plugin is not active


  • Added occupation detail as sub-entry for occupation-category
  • Added occupation detail as possible filter in Block Editor
  • Added new user role “Manage Personio-based Positions” which will be able to manage all position stuff
  • Added check if our own import cronjob has been run under tools > site health
  • Added check if configured Personio-URL is available under tools > site health
  • Plugin is now complete translated in austria and swiss language
  • Optimized capability-checks for our own custom post type and all used taxonomies
  • Optimized text in frontend if no positions are available.
  • Added more hooks
  • Updated all translations for values in position details set by Personio
  • Updated order of settings-tabs
  • Fixed visibility of import button above listing in WordPress 6.3 or newer
  • Fixed visibility of back to list button in frontend


  • Fixed order by on grouping


  • Compatibility with ActivityPub to optionally publish positions from Personio in the fediverse (e.g. Mastodon)
  • Compatibility with WordPres 6.3.2
  • Removed unnecessary spaces around position description


  • Changed text domain for any texts to match WordPress-requirements:
    => from wp-personio-integration to personio-integration-light
  • Added warning for users who have changed the texts of our plugin to use the new text domain
  • Compatibility with WordPres 6.4
  • Updated dependencies for Gutenberg-scripts
  • Remove local embedded translation-files
  • Fixed template-loading for Gutenberg
  • Fixed version setting during uninstalling


  • Compatibility with WordPres 6.4.1
  • Fixed language setting for taxonomies


  • Added possibility to use templates for job description in frontend
  • Updates description block to use different template-driven layouts for it
  • Optimized paths for plugin-files to prevent error in WP CLI
  • Updated dependencies for Gutenberg-scripts
  • Fixed missed text-domain usages
  • Fixed missing block translations


  • Added chance to use different templates for archive listings
  • Added option on Blocks to choose the archive listing template
  • Advanced logging during import of positions
  • Fixed possible bug on archive page if job description is enabled there
  • Fixed visibility of text domain hint if Pro plugin is used


  • Added support for multilingual-plugin Weglot to detect the active language
  • Added new hooks
  • Changed import-format for createAt to UNIX-timestamp
  • Sort by date now sort the positions by its createAt-value from Personio
  • Better check for third party functions
  • Compatibility with WordPress 6.4.2
  • Fixed missing styles with some blocks in Block Editor


  • Compatibility with WordPress 6.4.3
  • Updated dependencies for Gutenberg-scripts
  • Fix for possible code injection in search


  • Completely revised plugin
  • Now only compatible with PHP 8.0 or newer
  • And compatible with WordPress since 4.9.24 (also usable with ClassicPress)
  • Added setup for first installations
  • Added support for Multisite-installations
  • Added some additional classes in templates for better custom styling-possibilities
  • Added option to choose a content template on listings
  • Added support for additional plugins: Open Graph and Twitter Tags, SEOFramework, SEOPress, Slim SEO
  • Added link to switch between frontend- and backend-view of single position
  • Added new templates for position title and excerpts
  • Added possibility to export and import all settings
  • Added daily checks for availability of the Personio-page of your positions
  • Added new pattern in Block Editor for fast implementing custom views of positions
  • Advanced Blocks for Positions in Block Editor
  • Advanced classic widgets for Positions
  • Added more simple initial styling for more often used themes
  • Optimized all templates for better handling and optimized output
  • Optimized check for existing part-templates
  • Many new hooks (total 137) which are now documented in the repository
  • Compatible with WordPress Coding Standards 3.0 (WCS3.0)
  • New WCS3.0 compatible WP CLI commands (old ones does not exist anymore)
  • New WP- and react-driven dialogs for each interaction with the plugin
  • New check for configured Personio-URL in Site Health
  • Now compatible with the WordPress-plugin AMP
  • And now compatibly with the WordPress-plugin PDF Generator for WP to print your positions as PDF in frontend
  • Check for and re-install missing cron-events (e.g. for automatically import positions) if they are missing
  • Removed short intervals for cronjobs as it is discouraged by WordPress
  • Removed support for multilingual-plugins to detect the actual language (this is now only in Pro-plugin)
  • Removed usage of filter in classic widgets
  • Mark the filter options on Block “Personio Positions” as deprecated incl. warning for user to use Filter Block instead
  • Extended Sitemap XML for Positions
  • Fixed usage of classic widgets
  • Fixed wrong Position count on dashboard
  • Fixed sorting in Log-table


  • SVN cleanup


  • Added filter to change the result for check if FSE-theme is used
  • Compatibility with WordPress 6.5.2
  • Fixed handling of updates together with Pro


  • Optimized handling of language-assignments during import
  • Optimized handling for languages im WPML is enabled (but we only support its usage on Pro)
  • Optimized schedule state toggling for availability-extension
  • Improved import speed
  • Changed default max age for log entries from 50 to 20 days
  • Updated dependencies
  • Fixed import schedule
  • Fixed possible error in position by missing language-setting for position
  • Fixed possible error with Rank Math on single pages
  • Fixed generation of pagination links


  • Added more actions on import
  • Show Personio Timestamp in log for each import
  • Compatibility with WordPress 6.5.3


  • Added new extension which allows to show the used XML from Personio on each position
  • Added more hooks in import
  • Optimized import state
  • Optimized internal usage of settings of this plugin
  • Fixed missing permalink refresh after import of positions
  • Fixed some typos
  • Fixed generation of documentation during plugin release


  • Optimized internal usage of settings of this plugin
  • Optimized internal usage of schedules of this plugin
  • Optimized schedule check in frontend
  • Fixed typos


  • Compatibility with WordPress 6.6
  • Optimized check for Polylang free and pro


  • Added new hooks for custom template optimizations
  • Optimized check for disabled Personio XML API
  • Updated setup component
  • Updated dependencies
  • Extended compatibility with plugins which use WordPress events incorrectly
  • Fixed listing template for archive which prevented link color for each link in list
  • Fixed possible notices during uninstallation


  • Added some hooks for internal optimizations
  • Optimized handling of trigger re-import if Personio URL is not cleaned up
  • Fixed wrong loaded single block


  • Do not install cronjobs before setup has been completed
  • Fixed on loading of Personio URL for import if no URL is configured
  • Fixed format of email notification on import errors


  • Optimized REST API detection
  • Fixed PHP-Warnings in intro-object if Divi or other plugins will be enabled
  • Fixed template for grouped view