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;
		$channel = htmlspecialchars($_GET['channel']);
		if ($channel
		 	$detailLink .= '?_pc=' . $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>';
	}
?>