REST-Schnittstelle für Karriereportale von ontavio

Beschreibungen zum Import von Stellenangeboten

Inhaltsverzeichnis

  1. Allgemeine Information zur Nutzung der Schnittstelle
  2. Stellenangebote
  3. Unternehmensdaten
    1. Ansprechpartner
    2. Standorte
    3. Unternehmens-Uploads
    4. Standardmäßige Vorteile/Benefits des Unternehmens
    5. Jobbörsen des Unternehmens
  4. Routen für allgemeine Informationen
    1. Kategorien
    2. HTML-Tags
  5. Objektstruktur
    1. Stellenbeschreibung
    2. Ansprechpartner
    3. Standort
    4. Uploads
    5. Zeitarbeit

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

4.2 HTML-Tags

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.
pdf 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
Last Updated: 2024-07-17 © ontavio.de