WordPress-Tipps

Personio in 9 Schritten in WordPress integrieren

Personio in 9 Schritten in WordPress integrieren

Die Gewinnung neuer Mitarbeiter ist ein zentrales Thema für moderne Unternehmen – und digitale Prozesse spielen dabei eine immer größere Rolle. Die HR-Software Personio hilft Ihnen, Stellenangebote zu verwalten und Bewerbungen effizient zu bearbeiten. Doch wie gelangen diese Daten elegant auf Ihre WordPress-Website? In dieser Anleitung zeigen wir Ihnen Schritt für Schritt, wie Sie Personio über eine XML-Schnittstelle und das Plugin „WP All Import“ optimal einbinden – inklusive automatisierter Abläufe, Filterfunktionen und einem Bewerbungs-Button.

Das benötigen Sie für die Umsetzung

Um Personio nahtlos mit Ihrer WordPress-Website zu verbinden, sind einige vorbereitende Schritte und Tools erforderlich. Die folgende Liste zeigt, was Sie vorab bereitlegen sollten, um direkt durchstarten zu können:

  • Eine aktive Personio-Lizenz mit XML-Schnittstelle
  • Den XML-Link aus Ihrem Personio-Account
  • Eine WordPress-Website (idealerweise mit Child-Theme)
  • Das Plugin „WP All Import“ (kostenfrei oder PRO)
  • Optional: „WPML All Import“ für Mehrsprachigkeit
  • Optional: „Search & Filter“-Plugin für Filterfunktionen
  • Etwas Erfahrung mit CPTs, Funktionen und Permalinks

Schritt 1: WP All Import installieren

Installieren Sie das Plugin „WP All Import“, um Stellenanzeigen aus Personio über eine XML-Schnittstelle direkt in WordPress zu importieren. Das Plugin ist in einer kostenlosen und einer PRO-Version erhältlich. Für automatisierte Importe (z. B. jeden Sonntag um 3 Uhr) empfiehlt sich die PRO-Version.

Zur PRO-Version

Schritt 2: Custom Post Type „Jobs“ anlegen

Damit Ihre importierten Stellenangebote strukturiert in WordPress verwaltet werden können, legen Sie einen sogenannten Custom Post Type (CPT) an. Dieser funktioniert wie ein eigener Inhaltsbereich – vergleichbar mit „Beiträge“ oder „Seiten“ –, ist aber speziell für Ihre Jobs vorgesehen. So behalten Sie Übersicht und können Stellenanzeigen separat gestalten und aufrufen.

Wir empfehlen den Namen „Jobs“, alternativ sind auch „Karriere“ oder „Stellenanzeigen“ möglich.

Wo kommt der Code hin?

Öffnen Sie die Datei functions.php Ihres Themes oder – noch besser – Ihres Child-Themes. Fügen Sie den folgenden Code am Ende der Datei ein (aber immer oberhalb von schließendem PHP-Code wie ?>, falls vorhanden). Er registriert den neuen Inhaltstyp „Jobs“ im System:

/* --- Custom Post Types --- */

// Custom Post Type: Jobs
if ( ! function_exists('custom_posttype_jobs') ) {

function custom_posttype_jobs() {

	$labels = array(
		'name'                  => _x( 'Jobs', 'Post Type General Name', 'posttype_jobs' ),
		'singular_name'         => _x( 'Job', 'Post Type Singular Name', 'posttype_jobs' ),
		'menu_name'             => __( 'Jobs', 'posttype_jobs' ),
		'name_admin_bar'        => __( 'Jobs', 'posttype_jobs' ),
		'archives'              => __( 'Jobs Archiv', 'posttype_jobs' ),
		'attributes'            => __( 'Jobs Eigenschaft', 'posttype_jobs' ),
		'parent_item_colon'     => __( 'Eltern-Job:', 'posttype_jobs' ),
		'all_items'             => __( 'Alle Jobs', 'posttype_jobs' ),
		'add_new_item'          => __( 'Neuen Job hinzufügen', 'posttype_jobs' ),
		'add_new'               => __( 'Job erstellen', 'posttype_jobs' ),
		'new_item'              => __( 'Neuen Job', 'posttype_jobs' ),
		'edit_item'             => __( 'Job bearbeiten', 'posttype_jobs' ),
		'update_item'           => __( 'Job aktualisieren', 'posttype_jobs' ),
		'view_item'             => __( 'Job ansehen', 'posttype_jobs' ),
		'view_items'            => __( 'Jobs ansehen', 'posttype_jobs' ),
		'search_items'          => __( 'Job suchen', 'posttype_jobs' ),
		'not_found'             => __( 'Nichts gefunden', 'posttype_jobs' ),
		'not_found_in_trash'    => __( 'Nichts im Papierkorb gefunden', 'posttype_jobs' ),
		'featured_image'        => __( 'Beitragsbild', 'posttype_jobs' ),
		'set_featured_image'    => __( 'Beitragsbild auswählen', 'posttype_jobs' ),
		'remove_featured_image' => __( 'Beitragsbild entfernen', 'posttype_jobs' ),
		'use_featured_image'    => __( 'Als Beitragsbild nutzen', 'posttype_jobs' ),
		'insert_into_item'      => __( 'In Job einfügen', 'posttype_jobs' ),
		'uploaded_to_this_item' => __( 'Zu diesem Job hochladen', 'posttype_jobs' ),
		'items_list'            => __( 'Jobs-Liste', 'posttype_jobs' ),
		'items_list_navigation' => __( 'Jobs-Navigation', 'posttype_jobs' ),
		'filter_items_list'     => __( 'Jobs-Filter', 'posttype_jobs' ),
	);
	$args = array(
		'label'                 => __( 'Job', 'posttype_jobs' ),
		'description'           => __( 'Hier werden alle Jobseiten aufgebaut.', 'posttype_jobs' ),
		'labels'                => $labels,
		'supports'              => array( 'title', 'editor', 'thumbnail', 'revisions', 'custom-fields', 'page-attributes', 'excerpt' ),
		'hierarchical'          => true,
		'public'                => true,
		'show_ui'               => true,
		'show_in_menu'          => true,
		'menu_position'         => 10,
		'menu_icon'             => 'dashicons-schedule',
		'show_in_admin_bar'     => true,
		'show_in_nav_menus'     => true,
		'can_export'            => true,
		'has_archive'           => true,
		'exclude_from_search'   => false,
		'publicly_queryable'    => true,
		'capability_type'       => 'page',
	);
	register_post_type( 'job', $args );

}
add_action( 'init', 'custom_posttype_jobs', 0 );

}

Schritt 3: Taxonomien anlegen

Taxonomien dienen dazu, Inhalte in WordPress zu kategorisieren – ähnlich wie „Kategorien“ oder „Schlagwörter“. Für Ihre Jobangebote ist es besonders sinnvoll, zusätzliche Taxonomien zu erstellen, mit denen Besucher filtern können – zum Beispiel nach Jobtyp, Arbeitszeitraum oder Standort.

Typische Beispiele:

  • Typ (z. B. Ausbildung, Festanstellung, Praktikum)
  • Zeitraum (z. B. befristet, unbefristet)
  • Ort (z. B. Hamburg, München)

Wo kommt der Code hin?

Wie beim Custom Post Type fügen Sie den Code in die Datei functions.php Ihres (Child-)Themes ein – am besten direkt unter dem CPT-Code. Die folgenden Snippets registrieren die gewünschten Taxonomien und verknüpfen sie mit dem CPT „Jobs“:

Codebeispiel für Taxonomien:

/* --- Custom Taxonomy --- */

/* Taxonomy: Typ */

if ( ! function_exists( 'custom_taxonomy_typen' ) ) {

function custom_taxonomy_typen() {

	$labels = array(
		'name'                       => _x( 'Typen', 'Taxonomy General Name', 'taxonomy_typ' ),
		'singular_name'              => _x( 'Typ', 'Taxonomy Singular Name', 'taxonomy_typ' ),
		'menu_name'                  => __( 'Typ', 'taxonomy_typ' ),
		'all_items'                  => __( 'Alle Typen', 'taxonomy_typ' ),
		'parent_item'                => __( 'Eltern-Typ', 'taxonomy_typ' ),
		'parent_item_colon'          => __( 'Eltern-Typ:', 'taxonomy_typ' ),
		'new_item_name'              => __( 'Typ erstellen', 'taxonomy_typ' ),
		'add_new_item'               => __( 'Neuen Typ hinzufügen', 'taxonomy_typ' ),
		'edit_item'                  => __( 'Typ bearbeiten', 'taxonomy_typ' ),
		'update_item'                => __( 'Typ aktualisieren', 'taxonomy_typ' ),
		'view_item'                  => __( 'Typ ansehen', 'taxonomy_typ' ),
		'separate_items_with_commas' => __( 'Typen mit Kommas trennen', 'taxonomy_typ' ),
		'add_or_remove_items'        => __( 'Typen hinzufügen oder entfernen', 'taxonomy_typ' ),
		'choose_from_most_used'      => __( 'Aus meistgenutzten auswählen', 'taxonomy_typ' ),
		'popular_items'              => __( 'Beliebte Typen', 'taxonomy_typ' ),
		'search_items'               => __( 'Suche nach Typ', 'taxonomy_typ' ),
		'not_found'                  => __( 'Nichts gefunden', 'taxonomy_typ' ),
		'no_terms'                   => __( 'Keinen Typ gefunden', 'taxonomy_typ' ),
		'items_list'                 => __( 'Typen-Liste', 'taxonomy_typ' ),
		'items_list_navigation'      => __( 'Typen-Navigation', 'taxonomy_typ' ),
	);
	$args = array(
		'labels'                     => $labels,
		'hierarchical'               => true,
		'public'                     => true,
		'show_ui'                    => true,
		'show_admin_column'          => true,
		'show_in_nav_menus'          => false,
		'show_tagcloud'              => true,
	);
	register_taxonomy( 'typen', array( 'job' ), $args );

}
add_action( 'init', 'custom_taxonomy_typen', 0 );

}

/* Taxonomy: Zeitraum */

if ( ! function_exists( 'custom_taxonomy_zeitraum' ) ) {

function custom_taxonomy_zeitraum() {

	$labels = array(
		'name'                       => _x( 'Zeiträume', 'Taxonomy General Name', 'taxonomy_zeitraum' ),
		'singular_name'              => _x( 'Zeitraum', 'Taxonomy Singular Name', 'taxonomy_zeitraum' ),
		'menu_name'                  => __( 'Zeitraum', 'taxonomy_zeitraum' ),
		'all_items'                  => __( 'Alle Zeiträume', 'taxonomy_zeitraum' ),
		'parent_item'                => __( 'Eltern-Zeitraum', 'taxonomy_zeitraum' ),
		'parent_item_colon'          => __( 'Eltern-Zeitraum:', 'taxonomy_zeitraum' ),
		'new_item_name'              => __( 'Zeitraum erstellen', 'taxonomy_zeitraum' ),
		'add_new_item'               => __( 'Neuen Zeitraum hinzufügen', 'taxonomy_zeitraum' ),
		'edit_item'                  => __( 'Zeitraum bearbeiten', 'taxonomy_zeitraum' ),
		'update_item'                => __( 'Zeitraum aktualisieren', 'taxonomy_zeitraum' ),
		'view_item'                  => __( 'Zeitraum ansehen', 'taxonomy_zeitraum' ),
		'separate_items_with_commas' => __( 'Zeiträume mit Kommas trennen', 'taxonomy_zeitraum' ),
		'add_or_remove_items'        => __( 'Zeiträume hinzufügen oder entfernen', 'taxonomy_zeitraum' ),
		'choose_from_most_used'      => __( 'Aus meistgenutzten auswählen', 'taxonomy_zeitraum' ),
		'popular_items'              => __( 'Beliebte Zeiträume', 'taxonomy_zeitraum' ),
		'search_items'               => __( 'Suche nach Zeitraum', 'taxonomy_zeitraum' ),
		'not_found'                  => __( 'Nichts gefunden', 'taxonomy_zeitraum' ),
		'no_terms'                   => __( 'Keinen Zeitraum gefunden', 'taxonomy_zeitraum' ),
		'items_list'                 => __( 'Zeiträume-Liste', 'taxonomy_zeitraum' ),
		'items_list_navigation'      => __( 'Zeiträume-Navigation', 'taxonomy_zeitraum' ),
	);
	$args = array(
		'labels'                     => $labels,
		'hierarchical'               => true,
		'public'                     => true,
		'show_ui'                    => true,
		'show_admin_column'          => true,
		'show_in_nav_menus'          => false,
		'show_tagcloud'              => true,
	);
	register_taxonomy( 'zeitraum', array( 'job' ), $args );

}
add_action( 'init', 'custom_taxonomy_zeitraum', 0 );

}

/* Taxonomy: Ort */

if ( ! function_exists( 'custom_taxonomy_orte' ) ) {

function custom_taxonomy_orte() {

	$labels = array(
		'name'                       => _x( 'Orte', 'Taxonomy General Name', 'taxonomy_ort' ),
		'singular_name'              => _x( 'Ort', 'Taxonomy Singular Name', 'taxonomy_ort' ),
		'menu_name'                  => __( 'Ort', 'taxonomy_ort' ),
		'all_items'                  => __( 'Alle Orte', 'taxonomy_ort' ),
		'parent_item'                => __( 'Eltern-Ort', 'taxonomy_ort' ),
		'parent_item_colon'          => __( 'Eltern-Ort:', 'taxonomy_ort' ),
		'new_item_name'              => __( 'Ort erstellen', 'taxonomy_ort' ),
		'add_new_item'               => __( 'Neuen Ort hinzufügen', 'taxonomy_ort' ),
		'edit_item'                  => __( 'Ort bearbeiten', 'taxonomy_ort' ),
		'update_item'                => __( 'Ort aktualisieren', 'taxonomy_ort' ),
		'view_item'                  => __( 'Ort ansehen', 'taxonomy_ort' ),
		'separate_items_with_commas' => __( 'Orte mit Kommas trennen', 'taxonomy_ort' ),
		'add_or_remove_items'        => __( 'Orte hinzufügen oder entfernen', 'taxonomy_ort' ),
		'choose_from_most_used'      => __( 'Aus meistgenutzten auswählen', 'taxonomy_ort' ),
		'popular_items'              => __( 'Beliebte Orte', 'taxonomy_ort' ),
		'search_items'               => __( 'Suche nach Ort', 'taxonomy_ort' ),
		'not_found'                  => __( 'Nichts gefunden', 'taxonomy_ort' ),
		'no_terms'                   => __( 'Keinen Ort gefunden', 'taxonomy_ort' ),
		'items_list'                 => __( 'Orte-Liste', 'taxonomy_ort' ),
		'items_list_navigation'      => __( 'Orte-Navigation', 'taxonomy_ort' ),
	);
	$args = array(
		'labels'                     => $labels,
		'hierarchical'               => true,
		'public'                     => true,
		'show_ui'                    => true,
		'show_admin_column'          => true,
		'show_in_nav_menus'          => false,
		'show_tagcloud'              => true,
	);
	register_taxonomy( 'orte', array( 'job' ), $args );

}
add_action( 'init', 'custom_taxonomy_orte', 0 );

}
Custom Taxonomies für den Custom Post Type Jobs
Custom Taxonomies für den Custom Post Type Jobs

Schritt 4: Permalinks speichern

Nachdem Sie den Custom Post Type „Jobs“ und die zugehörigen Taxonomien erfolgreich in Ihrer functions.php eingebunden haben, müssen Sie die sogenannten Permalinks neu speichern. Das ist ein wichtiger Schritt, damit WordPress die neuen Inhalte korrekt verarbeitet und alle URLs der Stellenanzeigen erreichbar sind.

Warum ist das notwendig?
Nach dem Hinzufügen neuer Inhaltstypen erkennt WordPress die zugehörigen URL-Strukturen (z. B. /jobs/jobtitel) nicht sofort. Ohne das Speichern der Permalinks erscheinen häufig Fehlermeldungen wie „Seite nicht gefunden“, wenn man einen einzelnen Job aufruft.

Was müssen Sie tun?

  • Gehen Sie im WordPress-Backend zu Einstellungen → Permalinks
  • Nehmen Sie keine Änderungen vor
  • Klicken Sie einfach unten auf den Button „Änderungen übernehmen“

Dieser Vorgang reicht aus, um die Permalink-Struktur neu zu registrieren. Damit sind alle neuen Inhalte wie CPT „Jobs“ und Ihre Taxonomien korrekt erreichbar.

Tipp: Dieser Schritt ist auch dann erforderlich, wenn Sie später weitere Taxonomien oder benutzerdefinierte Slugs hinzufügen.

Schritt 5: Import vorbereiten – Datenquelle angeben

Sobald Ihr Custom Post Type und die Taxonomien eingerichtet sind, können Sie mit dem Import Ihrer Stellenangebote aus Personio beginnen. Dafür nutzen Sie das Plugin WP All Import, das Sie zuvor installiert haben.

Neue Importe bei WP All Import anlegen
Neue Importe bei WP All Import anlegen

So starten Sie den Import:

  • Gehen Sie im WordPress-Backend zu All Import → New Import
  • Wählen Sie die Option „Download a file“
  • Klicken Sie auf „From URL“
  • Geben Sie hier den XML-Link ein, den Sie von Personio erhalten haben
  • Klicken Sie anschließend auf „Download“

Wichtig: Den XML-Link erhalten Sie in Ihrem Personio-Account unter den Integrationseinstellungen. Fragen Sie ggf. bei Ihrem Personio-Support nach, falls der Link nicht direkt auffindbar ist.

Nachdem die Datei geladen wurde, öffnet sich ein neues Fenster zur Auswahl des Ziel-Inhaltstyps. Dort wählen Sie:

  • „Create new posts in“ → wählen Sie Jobs (oder wie Ihr CPT heißt)

Klicken Sie anschließend auf „Continue to Step 2“.

Post Type Jobs auswählen, in den die Personio Jobs importiert werden sollen
Post Type „Jobs“ auswählen, in den die Personio Jobs importiert werden sollen

Nun erscheint eine Liste mit XML-Knoten. Hier wählen Sie den Knoten, der die eigentlichen Stellenanzeigen enthält. Meist heißt dieser <position>. Dieser Knoten steht für jeden einzelnen Job mit allen zugehörigen Informationen.

Beispiel: Wenn Ihre XML-Datei mehrere <position>-Einträge enthält, wird jeder davon ein separater Job in WordPress.

Liste von Datensätzen, aus denen Sie position auswählen können.
Liste von Datensätzen, aus denen Sie „position“ auswählen können.

Klicken Sie nun auf „Continue to Step 3“, um mit dem Mapping der Inhalte fortzufahren.

Schritt 6: Inhalte zuordnen

In Schritt 3 des Importvorgangs legen Sie fest, welche Inhalte aus der XML-Datei an welcher Stelle im WordPress-Jobeintrag erscheinen sollen. WP All Import stellt dafür eine benutzerfreundliche Oberfläche bereit, die stark an den WordPress-Editor erinnert.

Daten aus den Datensätzen zuordnen
Daten aus den Datensätzen zuordnen

Beispiel: Titel und Beschreibung
Sie sehen links die verfügbaren Felder aus Ihrer XML-Datei. Rechts befindet sich ein Editor mit Eingabefeldern für den Titel, Inhalt usw. Um zum Beispiel den Jobtitel anzugeben:

  • Ziehen Sie das XML-Feld <name> per Drag & Drop in das Feld „Title“
  • Oder kopieren Sie den Platzhalter {name[1]} manuell in das Feld
Titel zuordnen
Titel zuordnen

Dasselbe machen Sie für den Inhalt des Beitrags. Ziehen Sie z. B. <description> in das große Textfeld unterhalb.

Inhalt übernehmen und gestallten
Inhalt übernehmen und gestallten

Sie können dort auch Überschriften, Formatierungen oder Layout-Elemente ergänzen – ähnlich wie im WordPress-Seiteneditor.

Bewerbungs-Button einfügen
Ein wichtiger Teil des Imports ist ein Button, über den sich Bewerber direkt zum passenden Formular auf Ihrer Personio-Seite weiterleiten lassen.

Fügen Sie diesen Code am Ende des Textfelds im Reiter „Text“ ein:

<a href="https://IHRESEITE.jobs.personio.de/job/{id[1]}?language=de#apply">Jetzt bewerben</a>

Für englischsprachige Seiten verwenden Sie:

<a href="https://IHRESEITE.jobs.personio.de/job/{id[1]}?language=en#apply">Apply now</a>

Hinweis: Ersetzen Sie IHRESEITE durch Ihre tatsächliche Personio-Subdomain. Der Platzhalter {id[1]} sorgt dafür, dass automatisch die richtige ID aus dem Datensatz verwendet wird.

Achten Sie darauf, in dem Link Ihre eigene Personio-Adresse anzugeben
Achten Sie darauf, in dem Link Ihre eigene Personio-Adresse anzugeben

Vorschau nutzen
Mit dem Button „Preview“ können Sie überprüfen, wie der fertige Inhalt für einen Beispiel-Job aussieht. Die Vorschau zeigt den strukturellen Inhalt, jedoch ohne Design.

Wenn alles passt, klicken Sie auf „Continue to Step 4“, um die Zuordnung der Taxonomien vorzunehmen.

Schritt 7: Taxonomien zuordnen

In Schritt 4 des Imports können Sie die bereits angelegten Taxonomien wie „Typ“, „Zeitraum“ und „Ort“ mit den passenden Feldern aus der XML-Datei verknüpfen. So sorgen Sie dafür, dass jede Stellenanzeige korrekt einsortiert wird – und auf Ihrer Website gefiltert oder angezeigt werden kann.

Import in die Taxonomie per Drag and Drop
Import in die Taxonomie per Drag and Drop

So funktioniert die Zuordnung:
Scrollen Sie in Step 4 nach unten zum Abschnitt „Taxonomies, Categories, Tags“. Dort finden Sie eine Liste Ihrer registrierten Taxonomien – zum Beispiel:

  • typ
  • zeitraum
  • ort

1. Taxonomie auswählen und aktivieren
Haken Sie die gewünschte Taxonomie an – z. B. „typ“. Es öffnet sich ein Drop-Bereich, in den Sie ein XML-Feld hineinziehen können (z. B. {employmentType[1]}).

2. Drag & Drop der passenden Datenfelder
Ziehen Sie das XML-Feld in das Eingabefeld für die jeweilige Taxonomie.

Beispiel:

  • <employmentType> → Taxonomie „typ“
  • <schedule> → Taxonomie „zeitraum“
  • <office> → Taxonomie „ort“

3. Sprachmapping aktivieren (optional)
Viele XML-Felder von Personio sind auf Englisch – etwa „permanent“, „trainee“, „intern“ usw. Damit Sie diese Begriffe in deutscher Sprache anzeigen lassen können, aktivieren Sie die Funktion:

  • „Enable Mapping for this field“ (Checkbox unter dem Eingabefeld)

Anschließend erscheint eine Tabelle mit zwei Spalten. Links stehen die übermittelten Begriffe, rechts geben Sie die deutschen Bezeichnungen ein.

Mapping der Begriffe
Mapping der Begriffe

Beispiel-Mapping für „employmentType“:

  • permanent → Festanstellung
  • trainee → Ausbildung/Trainee
  • full-time → Vollzeit
  • part-time → Teilzeit
  • intern → Praktikum
  • freelance → Freiberuflich
  • full-or-part-time → Voll- oder Teilzeit

Hinweis: Das Mapping funktioniert pro Taxonomie und bleibt gespeichert, solange Sie das Importprofil nicht löschen. Neue Begriffe, die später auftauchen, können jederzeit ergänzt werden.

Mapping für „Ort“
In den meisten Fällen benötigen Sie hier kein Mapping, da Städte oder Länder bereits korrekt im XML übermittelt werden (z. B. „Berlin“, „Hamburg“, „Remote“ etc.).

Kein Mapping bei Orte nötig
Kein Mapping bei Orte nötig

Wenn Sie alle Taxonomien zugeordnet haben, klicken Sie auf „Continue“ und gehen zum letzten Schritt: dem eigentlichen Importvorgang.

Schritt 8: Vorlage speichern

Bevor Sie den eigentlichen Import ausführen, lohnt es sich, Ihre Konfiguration als Vorlage zu sichern. So müssen Sie die Zuordnungen und Einstellungen beim nächsten Import nicht neu vornehmen – insbesondere bei regelmäßigen Aktualisierungen ein großer Zeitgewinn.

Wann ist das sinnvoll?

  • Wenn Sie regelmäßig neue Stellenangebote importieren möchten
  • Wenn Sie mehrere Websites oder Sprachversionen betreuen
  • Wenn Sie das Setup später anpassen oder erweitern wollen

So speichern Sie die Vorlage:

  • Scrollen Sie im letzten Schritt (vor dem Importstart) ganz nach unten
  • Aktivieren Sie das Kästchen „Save settings as a template“
  • Geben Sie der Vorlage einen eindeutigen Namen – z. B. Job-Import DE oder Personio-Stellenanzeigen

Beim nächsten Import können Sie diese Vorlage direkt im ersten Schritt auswählen. Dadurch werden sämtliche Zuordnungen für Felder, Taxonomien und Mappings automatisch geladen – inklusive Importziel, Einstellungen und XML-Struktur.

Tipp: Sie können auch mehrere Vorlagen anlegen – zum Beispiel eine für Deutsch, eine für Englisch oder eine speziell für bestimmte Standorte oder Unternehmensbereiche.

Schritt 9: Import ausführen, prüfen und testen

Nun sind alle Einstellungen abgeschlossen – Zeit, den eigentlichen Importvorgang zu starten. Dabei bestimmt WP All Import, welche Inhalte importiert werden, ob bestehende Einträge aktualisiert oder gelöscht werden und wie neue Inhalte erkannt werden.

Was soll beim Import mit den Datensätzen passieren
Was soll beim Import mit den Datensätzen passieren

1. Eindeutige Zuordnung per „Unique Identifier“
Im Bereich „Record Matching“ legen Sie fest, woran WP All Import erkennen soll, ob ein Job bereits vorhanden ist oder neu angelegt werden muss. Nutzen Sie dafür ein Feld, das für jede Stelle einzigartig ist – am besten:

{id[1]}

2. Verhalten bei erneutem Import definieren
Sie können festlegen, was bei einem erneuten Import mit bereits bestehenden Datensätzen passieren soll. Die wichtigsten Optionen:

  • Update existing posts with changed data in your file
    → Aktualisiert nur Einträge, bei denen sich etwas geändert hat
  • Delete posts that are no longer present in your file
    → Entfernt Einträge aus WordPress, die nicht mehr in der Personio-Datei enthalten sind
  • Create new posts from records newly present in your file
    → Fügt neue Jobs automatisch hinzu

Tipp: Sie können über eine Kombination dieser Optionen auch dafür sorgen, dass Ihre Seite immer 1:1 den aktuellen Stand aus Personio widerspiegelt – inklusive automatischer Löschung abgelaufener Jobs.

3. Import starten
Klicken Sie nun auf „Confirm & Run Import“ oder „Import starten“. Der Prozess läuft nun live durch – je nach Datenmenge kann das wenige Sekunden oder mehrere Minuten dauern.

Import startenWichtig:

  • Schließen Sie das Fenster nicht während des Imports
  • Laden Sie die Seite nicht neu

4. Ergebnisse prüfen
Nach Abschluss finden Sie alle importierten Jobs unter dem Menüpunkt „Jobs“ im WordPress-Backend.

Jeder Eintrag enthält die zugeordneten Inhalte, Taxonomien und – falls eingerichtet – den Bewerbungs-Button mit funktionierendem Link zum jeweiligen Personio-Formular.

Design & Layout
Die Darstellung der Stellenanzeigen hängt von Ihrem Theme ab. Sie können mithilfe von Templates, Block-Editor oder Custom Fields (z. B. mit ACF) die Ausgabe frei gestalten – oder Plugins für Archivseiten, Filter oder Suchfunktionen nutzen.

Mehrsprachigkeit mit WPML

Für mehrsprachige Seiten benötigen Sie zusätzlich das Plugin „WPML All Import“. In Schritt 3 erscheint dann eine Sprachauswahl. Importieren Sie idealerweise zuerst die Hauptsprache.

Sprachauswahl nach Installation von WPML All Import
Sprachauswahl nach Installation von „WPML All Import“

Fazit

Die Integration von Personio in WordPress ist mit den richtigen Tools und ein wenig technischem Know-how gut umsetzbar – und spart langfristig viel Zeit. Mit einem automatisierten Import, passenden Taxonomien und einem individuellen Layout schaffen Sie eine professionelle Karriereseite, die nicht nur optisch überzeugt, sondern auch funktional alles bietet, was moderne Bewerber erwarten.

Tutorials

Wir freuen uns über Ihren Kommentar!

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte geben Sie eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Elbnetz GmbH hat 4,96 von 5 Sternen 56 Bewertungen auf ProvenExpert.com