REST-Schnittstelle für Karriereportale von ontavio
Beschreibungen zum Import von Stellenangeboten
Inhaltsverzeichnis
1. Allgemeine Information zur Nutzung der Schnittstelle
Stellenbörsenname | Kürzel | Basis-URL |
---|---|---|
Karriere Südwestfalen | ksw | https://api.karriere-suedwestfalen.de/ |
Karriere Mittelhessen | kmh | https://api.karriere-mittelhessen.de/ |
Karriere Südniedersachsen | ksn | https://api.karriere-suedniedersachsen.de/ |
Karriere Metropole Ruhr | kmr | https://api.karriere-metropole-ruhr.de/ |
Karriere Bremen | khb | https://api.karriere-bremen.de/ |
Karriere Hamburg | khh | https://api.karriere-hamburg.de/ |
Karriere Nordhessen | knh | https://api.karriere-in-nordhessen.de/ |
Karriere Bergisches Land | kbl | https://api.karriere-bergisches-land.de/ |
Karriereportal Owl | kol | https://api.karriereportal-owl.de/ |
Syntax dieser Dokumentation
Die Routen in dieser REST-Schnittstelle müssen je nach Ziel der Anfrage angepasst werden.
Am Beginn jedes Themenabschnitts befindet sich eine Übersicht über die möglichen Routen. Fügen Sie diese zur jeweiligen Basis-URL hinzu, um die gewünschte Route zu erreichen.
Eckige Klammern bedeuten, dass alles zwischen ihnen optional ist, um einen fehlerfreien Ablauf der Anfrage sicherzustellen.
Geschweifte Klammern zeigen an, dass zwischen Ihnen Daten eingefügt werden müssen.
Allgemeine Information zur Schnittstelle
Wenn keine ID (bzw. Referenz-ID für Stellenangebote) in der URL für PUT- oder DELETE-Requests mitgeliefert wird, muss diese im Request-Body hinzugefügt werden, um das entsprechende Objekt zu bestimmen.
Bei POST- oder PUT-Requests für einzelne Stellenangebote ist es irrelevant, ob diese in einem Array oder als einzelnes Objekt gesendet werden.
Authentifizierung
Sie benötigen ihre Unternehmens-ID und einen unternehmensspezifischen Sicherheitsschlüssel, um einen JSON Web Token (JWT) zu erhalten. Senden sie diese Daten im Body ihrer Anfrage mittels eines form-data kodierten POST-Requests. Der JWT ist 60 Sekunden gültig. To receive test credentials for development, contact our support.
Request | Route | Beschreibung |
---|---|---|
POST | v1/authenticate | Sie erhalten einen JWT, mit dem Sie sich identifizieren können. Senden Sie ihn als Bearer Token im Header jedes Requests. |
Key | Value |
---|---|
companyId | Ihre Unternehmens-ID |
apiKey | Ihr unternehmenseigener Sicherheitsschlüssel |
2. Stellenangebote
Request | Route | Beschreibung |
---|---|---|
GET | v1/import/joboffer[/{referenceId}] | Gibt grundlegende Informationen über das entsprechende Stellenangebot oder über alle aktuellen Stellenangebote des Unternehmens. |
POST | v1/import/joboffer | Erstellt ein oder mehrere Stellenangebote |
PUT | v1/import/joboffer[/{referenceId}] | Aktualisiert ein oder mehrere Stellenangebote |
DELETE | v1/import/joboffer[/{referenceId}] | Löscht ein oder mehrere Stellenangebote |
In POST- und PUT-Requests können folgende Daten als JSON im Request-body gesendet werden.
Tags (* notwendig) | Datentyp | Werte | Standardwert | Beschreibung |
---|---|---|---|---|
ref* | string|int | Importreferenz. Genutzt zur Identifikation der Stelle. | ||
description* | object | Enthält den Stellenangebotstext. Siehe 5.1 | ||
title* | string | Angebotstitel | ||
showReference | bool | true | Soll die Referenznummer im Stellenangebot gezeigt werden? | |
type | int|string|array |
1 oder ‘job’ 2 oder ‘apprenticeship’ – Ausbildung 3 oder ‘dual-study’ – Duales Studium 4 oder ‘internship’ – Praktikum 5 oder ‘thesis’ – Abschlussarbeit |
1 - job | Sets the job type. If you send multiple in an array the first one gets shown, but the following values are recognized in the search. |
contract | int|string|array |
1 oder ‘full time’ 2 oder ‘part time’ 3 oder ‘mini job’ 4 oder ‘holiday job’ |
1 - full time | Sets the contract information. If you send multiple in an array the first one gets shown, but the following values are recognized in the search. |
applyUrl | string | Wenn nicht gegeben, erscheint beim Klick auf “Jetzt bewerben” ein Formular, über das Bewerberdaten erfasst und beim Absenden an die E-Mail des ersten Ansprechpartners gesendet werden. | Link zu einer Website, auf der Bewerber ihre Bewerbungsdaten absenden können. | |
startType | int|string |
1 oder ‘immediately’ – Ab sofort 2 oder ‘date’ – ab gegebenem Datum aus “startFrom” 3 oder ‘agreement’ – nach Vereinbarung |
1 - immediately | Ab wann kann die Stelle besetzt werden? |
startFrom | string | Datum ab dem die Stelle besetzt werden kann (Format YYYY-MM-DD). Nur relevant falls startType den Wert 2 hat. | ||
limitationType | int|string |
1 oder ‘no’ 2 oder ‘date’ – ab gegebenem Datum aus “startFrom” 3 oder ‘yes’ |
1 - no | Ist das Stellenangebot befristet? |
limitationDate | string | Datum, zu dem die Stelle befristet ist (Format YYYY-MM-DD). Nur relevant falls limitationDate den Wert 2 hat. | ||
from | string | Datum zur automatischen Aktivierung (Format YYYY-MM-DD) | ||
to | string | Datum zur automatischen Deaktivierung (Format YYYY-MM-DD) | ||
status | string | ‘active’ or ‘inactive’ | ‘active’ | Sets the status of a job offer |
portals | array|int|string | Alle Portale des Unternehmens | Portale können durch ihre ID oder durch ihre Abkürzung erkannt werden, siehe 3.5 | |
categories | array|string | Sonstiges | Setzt eine oder mehrere Kategorien. siehe 4.1 für weitere Informationen | |
leadership | bool | false | Ist eine Führungskraft gesucht? | |
students | bool | false | Ist die Stelle für Studenten relevant? | |
totalCount | int | Summe der Stellenanzeigen für die einzelnen Standorte, 1 wenn keine gegeben sind | Gesamtanzahl der Stellen über alle Standorte | |
benefits | array | Alle Vorteile des Unternehmens | Vorteile/Benefits der Stelle. siehe 3.4 | |
workAtHome | bool | false | Wird Homeoffice angeboten? | |
workAtHomeDays | int | false | Anzahl der Homeofficetage pro Woche | |
contactPersons | object|array | Hauptansprechpartner des Unternehmens | Setzt einen oder mehrere Ansprechpartner, siehe 5.2 für weitere Informationen | |
locations | object|array | Hauptstandort des Unternehmens | Setzt einen oder mehrere Standorte, siehe 5.3 für weitere Informationen | |
uploads | object|array | Zweites Bild aus dem Unternehmensporträt | Setzt ein oder mehrere Bilder für die Stelle, siehe 5.4 für weitere Informationen | |
temporaryWork | object | Setzt Informationen für Zeitarbeitsstellen, siehe 5.5 für weitere Informationen |
Standorte werden anhand ihrer ID oder ihres Namens identifiziert. Daraus folgt, dass wenn ein Standort gesendet wird, der in einem dieser Punkte übereinstimmt, die weiteren Standortdaten ignoriert werden. Wenn diese Daten geändert werden sollen, muss der Standort aktualisiert werden. Siehe dazu Abschnitt 3.2.
Dasselbe gilt für die Ansprechpartner, die anhand ihrer ID oder der E-Mail identifiziert werden. Hier können die Daten aktualisiert werden wie beschrieben in Abschnitt 3.1.
Beispiel POST oder PUT
[
{
"ref": "1292346-2022",
"title": "Worker in example job",
"description": {
"introHeadline": "Introduction Headline",
"introText": "This is an introduction text.",
"jobProfileText": "Job Profile Text. <strong>You can use HTML here.</strong>",
"applicantProfileText": "Applicant Profile Text",
"offerText": "Offer Text",
"contactText": "Contact Information"
},
"applyUrl": "https:www.examplewebsite.com/apply/for-this-job",
"startType": "date",
"startFrom": "2022-01-19",
"limitationType": "date",
"limitationDate": "2022-03-23",
"from": "2021-03-28",
"to": "2022-03-28",
"contract": 1,
"categories": [
"5d9debaf67a3b775bdc8c927",
"5d9debae67a3b775bdc8c91e"
],
"setReference": true,
"status": "active",
"portals": [
"ksw",
2,
4
],
"type": [
"apprenticeship",
"dual-study"
],
"leadership": false,
"students": true,
"contactPersons": [
{
"email": "contact.person@example.com",
"firstName": "Contact",
"lastName": "Person",
"position": "Leader of Example",
"image": "https://examplewebsite.com/400x300/000/ff0.png",
"salutation": "Herr",
"phone": "0160123456789",
"newsletter": false,
"persistent": true
},
{
"email": "existing.contact.person@example.com"
}
],
"locations": [
{
"name": "Main Location",
"amount": 1
},
{
"name": "New Location",
"street": "Hundemstr. 2",
"zip": "57368",
"city": "Lennestadt",
"logo": "https://linkToExampleImage.com/450x350/000/f0f.png",
"amount": 1,
"persistent": true
}
],
"uploads": {
"images": [
"https://linkToExampleImage.com/1200x600/000/ff0.png",
"https://linkToExampleImage.com/1250x550/000/ff0.jpg"
]
}
},
{
…
}
]
Beispiel DELETE
Fügen Sie für DELETE-Requests entweder die Referenz-ID der Stelle zur URL hinzu oder senden Sie ein Array mit Objekten im JSON-Format entsprechend der folgenden Tabelle im Body mit.
Tags | Datentyp | Beschreibung |
---|---|---|
ref* | string | Referenz-ID der zu löschenden Stelle. |
portals | array |
Array mit Portalen, von denen die Stelle gelöscht werden soll. Wenn nicht gegeben, wird die Stelle von allen Portalen gelöscht. Portale können durch ihre ID oder durch ihre Abkürzung erkannt werden, siehe 3.5 |
Beispiel DELETE-Request, bei dem die erste Stelle von Karriere-Südwestfalen und Karriere-Mittelhessen gelöscht wird, und die zweite von alle Jobbörsen
[
{
"ref": "123456789",
"portals": ["ksw", "kmh"]
},
{
"ref": "123456-2022"
},
{
…
}
]
3. Unternehmensdaten
3.1 Ansprechpartner
Request | Route | Beschreibung |
---|---|---|
GET | v1/import/company/contact-persons[/{contactPersonId}] | Gibt generelle Informationen über den entsprechenden Ansprechpartner zurück, oder über alle, falls keine ID mitgesendet wurde. |
POST | v1/import/company/contact-persons |
Erstellt einen oder mehrere Ansprechpartner. Senden Sie Ansprechpartner wie in 5.2 beschrieben. |
PUT | v1/import/company/contact-persons[/{contactPersonId}] |
Aktualisiert einen oder mehrere Ansprechpartner. Senden Sie Ansprechpartner wie in 5.2 beschrieben. |
DELETE | v1/import/company/contact-persons[/{contactPersonId}] | Löscht einen oder mehrere Ansprechpartner. |
Beispiele
POST/PUT
[
{
"email": "erika@example.com",
"firstName": "Erika",
"lastName": "Mustermann",
"salutation": "Frau",
"position": "Personalleitung",
"phone": "01234 / 123456",
"emailAlias": "e.mustermann@example.com",
"newsletter": false,
"cpCompanyPortrait": true,
"cpEmailCompanyPortrait": false,
"cpPhoneCompanyPortrait": false,
"cpEmailJoboffer": false,
"cpPhoneJoboffer": false
},
...
]
DELETE
[
{
"id": "621f6a03bdef404ecf3b20ca"
},
{
"id": "6220d1a6bdef404ecf3b2172"
},
...
]
3.2 Standorte
Request | Route | Beschreibung |
---|---|---|
GET | v1/import/company/locations[/{locationId}] | Gibt generelle Informationen über den entsprechenden Ansprechpartner zurück, oder über alle, falls keine ID mitgesendet wurde. |
POST | v1/import/company/locations |
Erstellt einen oder mehrere Standorte. Senden Sie Standorte wie in 5.3 beschrieben. |
PUT | v1/import/company/locations[/{locationId}] |
Aktualisiert einen oder mehrere Standorte. Senden Sie Standorte wie in 5.3 beschrieben. |
DELETE | v1/import/company/locations[/{locationId}] | Löscht einen oder mehrere Standorte. |
Beispiele
POST/PUT
[
{
"name": "Example Location",
"city": "ExampleCity",
"zip": 12345,
"street" : "Example street 10",
"region" : "Südwestfalen",
"logo" : "https://example.com/logo/1234.jpg",
}
...
]
DELETE
[
{
"id": "621f6a03bdef404ecfxxxxx"
},
{
"id": "6220d1a6bdef404ecf3xxxxx"
},
...
]
3.3 Unternehmens-Uploads
Request | Route | Beschreibung |
---|---|---|
GET | v1/import/company/uploads | Gibt generelle Informationen über alle Uploads des Unternehmens zurück. Beinhaltet title, slug, type, file extension, ID, file hash und die Zeiten des Erstellens und der letzten Aktualisierung. |
3.4 Standardmäßige Vorteile/Benefits des Unternehmens
Wenn sie nicht alle Unternehmensbenefits für ein bestimmtes Jobangebot anzeigen möchten, senden sie nur die IDs der gewollten Benefits in einem Array im Stellenangebot mit.
Request | Route | Beschreibung |
---|---|---|
GET | v1/import/company/benefits | Gibt ID und Name der Unternehmensbenefits zurück. |
3.5 Jobbörsen des Unternehmens
Request | Route | Beschreibung |
---|---|---|
GET | v1/import/company/jobboards | Gibt ID, label, Abkürzung und URL von allen Jobbörsen des Unternehmens zurück. |
4. Routen für allgemeine Informationen
4.1 Kategorien
Request | Route | Beschreibung |
---|---|---|
GET | v1/import/general/categories | Gibt ID und Name aller möglichen Kategorien zurück. |
Derzeit unterstützen wir folgende Kategorien, die Sie über ihre ID an uns übergeben können:
Name der Kategorie | ID |
---|---|
Büro / Verwaltung / Finanzwesen | 5d9debae67a3b775bdc8c91e |
Handwerk | 5d9debaf67a3b775bdc8c927 |
Industrie / Produktion / Chemie | 5d9debaf67a3b775bdc8c928 |
Logistik | 5d9debaf67a3b775bdc8c929 |
Ingenieurwesen / Entwicklung / Konstruktion | 5d9debae67a3b775bdc8c91c |
Handel / Dienstleistung / Gastronomie | 5d9debaf67a3b775bdc8c926 |
Computer / IT / Technik | 5d9debae67a3b775bdc8c91b |
Marketing / Kommunikation / Design | 5d9debae67a3b775bdc8c91d |
Medizin / Gesundheit / Sozialwesen | 5d9debae67a3b775bdc8c91a |
Vertrieb / Verkauf | 5d9debaf67a3b775bdc8c923 |
Tourismus | 5d9debaf67a3b775bdc8c92a |
Kirche / Diakonie | 61fb9457e87a2cb15549f9c7 |
Sicherheitsdienstleistung / Security | 623d9701f7bad3aacd9ec1bf |
Assistenz / Aushilfen | 5d9debaf67a3b775bdc8c925 |
Aus- und Weiterbildung | 5d9debaf67a3b775bdc8c922 |
Sonstige Berufe | 5d9debaf67a3b775bdc8c924 |
Die in der Stellenbeschreibung erlaubten Tags sind "<h3>", "<ul>", "<ol>", "<li>", "<a>", "<b>", "<strong>", "<br>", "<p>" und "<small>"..
Request | Route | Beschreibung |
---|---|---|
GET | v1/import/general/html-tags | Gibt eine Liste der erlaubten HTML-tags in der Stellenbeschreibung zurück. Alle anderen Tags werden herausgenommen. |
5. Objektstruktur
5.1 Stellenbeschreibung
Sie können die in 4.2 erwähnten HTML-Tags in den Text-Teilen der Beschreibung nutzen.
Wenn Ihnen ein benötigter Teil des Textes fehlt, senden Sie einen leeren String für diesen Teil mit.
Tags (* notwendig) | Datentyp |
---|---|
introHeadline | string |
introText* | string |
jobProfileHeadline | string |
jobProfileText* | string |
applicantProfileHeadline | string |
applicantProfileText* | string |
offerHeadline | string |
offerText* | string |
contactHeadline | string |
contactText* | string |
5.2 Ansprechpartner
Tags
*notwendig **zusätzlich notwendig wenn neu |
Datentyp | Standardwert | Beschreibung |
---|---|---|---|
id | string | Identifizierungszeichenkette | |
email* | string | Email-Adresse | |
firstName** | string | Vorname | |
lastName** | string | Nachname | |
position | string | Funktion | |
image | string | Bild des Ansprechpartners | |
salutation | string | Anrede | |
phone | string | Telefonnummer | |
emailAlias | string | Öffentliche E-Mail-Adresse. Wenn nicht vorhanden, wird die Adresse aus dem Tag “email” gezeigt. | |
newsletter | bool | false | Newsletter erhalten? |
cpCompanyPortrait | bool | true |
Zeigen/Verstecken des Ansprechpartners auf der Unternehmensprofilseite. Nicht relevant im Stellenangebotsimport, wenn “persistent” den Wert “false” hat. |
cpEmailCompanyPortrait | bool | true | Show/hide email of the contact person in the company portrait. Nicht relevant im Stellenangebotsimport, wenn “persistent” den Wert “false” hat. |
cpPhoneCompanyPortrait | bool | true |
Zeigen/Verstecken der Telefonnummer des Ansprechpartners auf der Unternehmensprofilseite. Nicht relevant im Stellenangebotsimport, wenn “persistent” den Wert “false” hat. |
cpPhoneJoboffer | bool | true | Zeigen/Verstecken der Telefonnummer im Stellenangebot |
cpEmailJoboffer | bool | true | Zeigen/Verstecken der E-Mail-Adresse im Stellenangebot |
persistent | bool | false | Speichern des Ansprechpartners im Unternehmen. Wenn der Wert “false” ist, wird er nur für dieses Stellenangebot erstellt. |
5.3 Standort
Tags
*notwendig **zusätzlich notwendig wenn neu |
Datentyp | Standardwert | Beschreibung |
---|---|---|---|
id | string | Identifizierungszeichenkette | |
name* | string | Standortname | |
street | string | Straße | |
zip** | string | PLZ | |
city** | string | Stadt | |
region | string | Region | |
logo | string | Firmenlogo | URL zum Standortlogo. |
amount | int | 1 | Anzahl der Stellenangebote für genau diesen Standort. Nur im Stellenangebotsimport möglich. |
subsidiary | bool | false |
Eigenständiger Standort? Entscheidet darüber, ob der Standortname im Stellenangebot zusätzlich zur Adresse genannt wird. Nicht relevant im Stellenangebotsimport, wenn “persistent” den Wert “false” hat. |
persistent | bool | false | Speichern des Standorts im Unternehmen. Wenn der Wert "false" ist, wird er nur für dieses Stellenangebot erstellt. Nur im Stellenangebotsimport möglich. Wenn der Standort persistent ist und das Feld "subsidiary" auf "true", wird der Standortname zusätzlich zur Adresse im Stellenangebot angezeigt. |
5.4 Uploads
Wenn einem Stellenangebot keine Bilder hinzugefügt werden, wird das zweite Bild aus dem Unternehmensporträt hinzugefügt.
Erlaubte Formate sind: .jpg, .png und .gif.
Das bevorzugte Bildverhältnis für Stellenangebotsbilder ist 2:1 und die standardmäßige Größe ist 1200x600px.
Wenn das Verhältnis kleiner als 1,7 oder größer als 2,3 ist, wird es zugeschnitten. Pro Stellenangebot sind maximal 5 Bilder erlaubt.
Bilder von Ansprechpersonen sollten ein Seitenverhältnis von 1:1 haben, ansonsten werden sie in dieses Format zurechtgeschnitten.
Tags | Datentyp | Beschreibung |
---|---|---|
images | array|string |
Bilder, die dem Stellenangebot hinzugefügt werden sollen. URL oder file hash. |
array|string | URL zu PDFs, die als Bilder zum Jobangebot hinzugefügt werden sollen. |
5.5 Zeitarbeit
Tags | Datentyp | Werte | Beschreibung |
---|---|---|---|
type | int |
1 – Zeitarbeit 2 – Direkte Personalvermittlung |
Art der Zeitarbeit |
zip | int|string | PLZ | |
showZip | bool | PLZ in Stellenangebot kürzen, z.B. 57xxx |