Sidequests
Google zeigt Stellenanzeigen prominent in der Jobsuche,
aber nur, wenn die Seite strukturierte Daten nach
schema.org/JobPosting liefert, und zwar fehlerfrei. Dafür habe
ich die Extension Jobs für TYPO3 gebaut: Stellenanzeigen als eigene
Datensätze, eine filterbare Liste und eine Detailseite mit fertigem Design
und JSON-LD, das den Rich-Results-Test von Google besteht.
Eine Stellenanzeige ist ein Datensatz mit Level, Fachbereich, Standorten, Ansprechpersonen und Firmenprofil. Die Liste filtert nach Level, Fachbereich, Standort, Beschäftigungsart, „nur Remote“ und Freitext. Ist ein Ablaufdatum gesetzt, verschwindet die Anzeige am Folgetag von selbst.
Die Auswahlwerte für Beschäftigungsart, Gehaltseinheit oder Bildungsabschluss sind PHP-Enums mit den exakten Werten aus schema.org, die Auswahlfelder im Backend werden daraus erzeugt. Ein ungültiger Wert lässt sich gar nicht erst eintragen. Nicht gepflegte optionale Eigenschaften fehlen in der Ausgabe, statt leer zu erscheinen, denn Google wertet leere Werte als Fehler. Abgedeckt sind Pflichtfelder und empfohlene Felder wie Gehalt, Gültigkeit und Anforderungen, ebenso Remote-Stellen. Erfahrungsmonate kommen vom Level, Branche und Berufskategorie vom Fachbereich, so dass die Redaktion sie nicht pro Anzeige pflegt.
Das mitgelieferte Design kommt ohne externe Assets aus und ist über CSS Custom Properties mit wenigen Zeilen an die Site angepasst. Wer lieber selbst gestaltet, schaltet das Stylesheet ab. Jobs zählt Aufrufe, Klicks auf „Jetzt bewerben“ und abgeschickte Filterkombinationen, speichert dabei aber nur einen Hash der Session-ID und lässt sich komplett abschalten. Ein Backend-Modul zeigt die Zahlen pro Job und die Top 5 nach Aufrufen und Bewerbungen.
Lizenz GPL-2.0-or-later, Installation per Composer:
composer require bastianschwabe/jobs
Code und Dokumentation: