Integration via code

๐Ÿ“˜

The Personio career page is now available at the URL myaccount.jobs.personio.de . All Personio accounts created before 25.11.2020 must update the URL until 31/05/2021. The old URL (myaccount - jobs.personio.de ) will then no longer be available afterwards.

  • Please make sure to check all existing links to the content of the Personio career page and, if necessary, to renew them, e.g. E.g. if you link to a specific job advertisement or an application form on your website.

  • The integration uses TLS 1.2 to get the XML feed. The TLS update improves the security of your XML feed and the new URL ( myaccount . jobs.personio.de ) no longer supports TLS 1.0 or 1.1

To integrate open positions e.g. into your wordpress-based jobsite, you might want to check out this code sample:

<?php
    // Draw job postings from Personio API 
    $hostname = 'personio'
    $lang = getLang(); // Depending on implementation of multilingual content
    $positions = simplexml_load_file('https://' . $hostname . '.jobs.personio.de/xml?language=' . $lang);
    $categories = [];
    foreach ($positions->position as $position){
        $category = (string)$position->recruitingCategory;
        if($category && !in_array($category, $categories)){
            $categories[] = $category;
        }
    }
    $translations = [
        "full-time" =>  [
            "de" => "Vollzeit",
            "en" => "Full-time"
        ],
        "part-time" =>  [
                                    "de" => "Teilzeit",
                                    "en" => "Part-time"
                            ],
        "permanent" =>  [
                                    "de" => "Festanstellung",
                                    "en" => "Permanent Employment"
                            ],
        "intern" =>  [
                                    "de" => "Praktikum",
                                    "en" => "Internship"
                            ],
        "trainee" =>  [
                                    "de" => "Trainee Stelle",
                                    "en" => "Trainee Stelle"
                            ],
        "freelance" =>  [
                                    "de" => "Freelance Position",
                                    "en" => "Freelance Position"
                            ],
    ];

    // Print job postings
    foreach ($positions as $position) {
        $detailLink = 'https://' . $hostname . '.jobs.personio.de/job/' . $position->id;
        if ($_GET["channel"]) {
            $detailLink .= '?_pc=' . $_GET["channel"]; 
        }
        echo '<a href="' . $detailLink . '" target="_blank" alt="Job Details">' .
                '<h2>' . $position->name . '</h2>' .
                '<p>' . $translations[(string)$position->employmentType][$lang] . ', ' . $translations[(string)$position->schedule][$lang] . '</p>' .
             '</a>';
    }
?>