PHPackages                             inspiredminds/contao-personio - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. inspiredminds/contao-personio

ActiveContao-bundle[API Development](/categories/api)

inspiredminds/contao-personio
=============================

Personio API connection for Contao.

1.5.1(1mo ago)0791LGPL-3.0-or-laterPHPPHP &gt;=8.1

Since May 14Pushed 1mo ago2 watchersCompare

[ Source](https://github.com/inspiredminds/contao-personio)[ Packagist](https://packagist.org/packages/inspiredminds/contao-personio)[ Docs](https://github.com/inspiredminds/contao-personio)[ GitHub Sponsors](https://github.com/sponsors/fritzmg)[ RSS](/packages/inspiredminds-contao-personio/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)Dependencies (46)Versions (12)Used By (0)

[![](https://camo.githubusercontent.com/0de697dcbeab979f9f4c6e67d607add15d2857f243cfbed4c3a73beb00350b02/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f696e7370697265646d696e64732f636f6e74616f2d706572736f6e696f2e737667)](https://packagist.org/packages/inspiredminds/contao-personio)[![](https://camo.githubusercontent.com/885f5b2ea55154b8b935762fc1d797e0fcf353d41fe62f1ddbd1ba9b2d1ce491/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f696e7370697265646d696e64732f636f6e74616f2d706572736f6e696f2e737667)](https://packagist.org/packages/inspiredminds/contao-personio)

Contao Personio
===============

[](#contao-personio)

Personio API connection for Contao.

Configuration
-------------

[](#configuration)

For the job listings you first need to configure the public XML feed of the company's job listings:

```
# config/config.yaml
contao_personio:
    xml_feed: https://{YOUR_COMPANY}.jobs.personio.de/xml
```

For the Recruiting API (i.e. sending applications to Personio directly via the website) you will need to define the Company ID and the [Recruiting API token](https://developer.personio.de/v1.0/reference/introduction-1):

```
# config/config.yaml
contao_personio:
    company_id: 123456
    recruiting_api_token: your-token
```

It is recommended to store the token as an environment variable:

```
# .env
PERSONIO_RECRUITING_API_TOKEN=

```

```
# .env.local
PERSONIO_RECRUITING_API_TOKEN=your-token

```

```
# config/config.yaml
contao_personio:
    company_id: 123456
    recruiting_api_token: '%env(PERSONIO_RECRUITING_API_TOKEN)%'
```

You can of course also choose to store the Company ID as an environment variable (just like you can with any configuration values in Symfony).

Job List
--------

[](#job-list)

The *Personio jobs* content element lists all available jobs. Within the content element you can set a redirect page for the details of the job. This redirect page must be a page of the type *Personio job*.

Job Reader
----------

[](#job-reader)

The *Personio job* content element acts as the reader output for the details of a job. For it to work, it needs to be placed within a page of the type *Personio job*.

Application Form
----------------

[](#application-form)

The application form can be placed either alongside the *Personio job* reader content element, or on its own page. In both cases the type of the page needs to be *Personio job*. If you place the form on a separate page, you can define a redirect page in the *Personio job* content element, so that it automatically generates a link to the application form.

The application form can either be generated through the dedicated *Personio job application* content element, or a form from the Contao Form Generator.

### Content Element

[](#content-element)

In order to get additional form fields for your custom Personio attributes into the application form, you can use the `ModifyApplicationFormListener` event:

```
// src/EventListener/ModifyApplicationFormListener.php
namespace App\EventListener;

use Codefog\HasteBundle\Util\ArrayPosition;
use InspiredMinds\ContaoPersonio\Event\ModifyApplicationFormEvent;
use Symfony\Component\EventDispatcher\Attribute\AsEventListener;

#[AsEventListener]
class ModifyApplicationFormListener
{
    public function __invoke(ModifyApplicationFormEvent $event): void
    {
        $event->getForm()
            ->addFormField(
                'custom_attribute_123',
                [
                    'label' => 'Custom attribute',
                    'inputType' => 'text',
                    'eval' => ['maxlength' => 255],
                ],
                ArrayPosition::after('email'),
            )
        ;
    }
}
```

The name of the field must match Personio's internal name of the custom attribute.

### Form Generator

[](#form-generator)

Instead of using the *Personio job application* content element you can also create your own form in the Contao Form Generator and activate the **Store in Personio** setting. Within the form you can then add the form fields you need. The names of the fields must match the names of the fields in the [API](https://developer.personio.de/v1.0/reference/post_v1-recruiting-applications#form-postV1RecruitingApplications). For file uploads the field name must match the category of the file in the API.

Also keep in mind that the fields `first_name`, `last_name` and `email` are mandatory in the Personio API.

Acknowledgements
----------------

[](#acknowledgements)

Development funded by:

- [Helmig + Weber Steuerberater](https://www.helmig-weber.de/)
- [DIGITALE DINGE](https://www.digitaledin.ge/)

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance90

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 93% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~31 days

Recently: every ~14 days

Total

11

Last Release

50d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/25f6ec05570f72d0fcc4d0a4fef2309799d53badf8b30484284e73724661e0d8?d=identicon)[fritzmg](/maintainers/fritzmg)

---

Top Contributors

[![fritzmg](https://avatars.githubusercontent.com/u/4970961?v=4)](https://github.com/fritzmg "fritzmg (40 commits)")[![zoglo](https://avatars.githubusercontent.com/u/55794780?v=4)](https://github.com/zoglo "zoglo (2 commits)")[![FlowinBeatz](https://avatars.githubusercontent.com/u/4570808?v=4)](https://github.com/FlowinBeatz "FlowinBeatz (1 commits)")

### Embed Badge

![Health badge](/badges/inspiredminds-contao-personio/health.svg)

```
[![Health](https://phpackages.com/badges/inspiredminds-contao-personio/health.svg)](https://phpackages.com/packages/inspiredminds-contao-personio)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
