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 Ihren unternehmensspezifischen API-Schlüssel, um ein JSON Web Token (JWT) zu erhalten. Senden Sie beide Werte als Form-Data im Request-Body. Das JWT ist 180 Sekunden gültig. To receive test credentials for development, contact our support.
| Anfrage | 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
| Anfrage | 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 | Setzt die Art der Stelle. Wenn mehrere in einem Array gesendet werden, wird das erste im Angebot gezeigt, aber auch die anderen werden in der Suche erkannt. |
| contract | int|string|array |
1 oder ‘full time’ 2 oder ‘part time’ 3 oder ‘mini job’ 4 oder ‘holiday job’ |
1 - full time | Setzt die Art des Vertrags. Wenn mehrere in einem Array gesendet werden, wird das erste im Angebot gezeigt, aber auch die anderen werden in der Suche erkannt. |
| 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’ | Legt den Status eines Stellenangebots fest |
| 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 | Veraltet: Übergibt eine oder mehrere Kategorie-IDs. Kategoriedaten werden weiterhin akzeptiert und einem Berufsfeld zugeordnet. Wenn sowohl categories als auch occupationalField gesendet werden, wird occupationalField für die Anzeige in Stellenangeboten verwendet. 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 | ||
| occupationalField | object | Occupational field of the offer. Accepts id or name as input. idMainCategory is derived from the database and returned in responses only. Preferred over deprecated categories for display. If both occupationalField and categories are sent, occupationalField is displayed in job offers. siehe 5.6 für weitere Informationen | ||
| wage | object | Gehaltsdetails. type muss hourly, monthly oder annual sein. min, max und minWeeklyHours müssen Ganzzahlen sein. siehe 5.7 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.
2.1 Antwortschema
Alle Stellenangebot-Endpunkte geben ein Array von Antwortobjekten zurück. Um das Schema übersichtlich zu halten, sind die Antwortfelder unten in ein generisches Schema und operationsspezifische Schemata aufgeteilt.
Alle Datums-/Zeitfelder in der Antwort werden als ISO-8601-Strings zurückgegeben (zum Beispiel 2026-06-17T10:15:00+00:00), mit Ausname von Legac-Feldern.
Während der Übergangsphase bleiben Legacy-Zeitstempelfelder dort verfügbar, wo sie zutreffen.
2.1.1 Antwortschema (alle Operationen)
Felder können je nach Ergebnis der Operation und verfügbaren Daten entfallen.| Feld | Typ | Beschreibung |
|---|---|---|
| type | string | Antworttyp, zum Beispiel success, info oder error. |
| time | datetime | Legacy-Zeitstempel der Antwort. |
| timeIso8601 | string | Kanonischer Zeitstempel der Antwort im ISO-8601-Format. |
| message | string | Menschenlesbare Status- oder Fehlermeldung. |
| referenceId | string|int | Importreferenz oder Referenznummer des Stellenangebots. |
| title | string | Angebotstitel. |
| id | int | Interne ID des Stellenangebots. |
| mainUrl | string | Primäre URL des veröffentlichten Stellenangebots. |
| additionalJobBoardUrls | array | Zusätzliche URLs auf anderen Jobbörsen. |
2.1.2 GET-Antwortschema
“Felder können je nach Ergebnis der Operation und verfügbaren Daten entfallen.”.| Feld | Typ | Beschreibung |
|---|---|---|
| createdAt | datetime | Creation timestamp. |
| lastRefresh | datetime | Zeitstempel der letzten Aktualisierung. |
| slug | string | Slug des Stellenangebots. |
| status | string | Status des Stellenangebots. |
| referenceNumber | string|int | Angezeigte Referenznummer. |
| importReference | string|int | Wert der internen Importreferenznummer. |
| startType | string | Starttyp. |
| startFrom | datetime|string|null | Startdatum, falls zutreffend. |
| limitationType | string | Art der Befristung. |
| limitationDate | datetime|string|null | Befristungsdatum, falls zutreffend. |
| jobOfferTypes | array | Stellenart-Werte (z. B. job, apprenticeship). |
| contract | array | Vertragswerte. |
| applyUrl | string|null | Bewerbungs-URL. |
| totalCount | int | Gesamtanzahl der zu besetzenden Stellen für dieses Angebot. |
| students | bool | Flag für Studierenden-Relevanz. |
| leadership | bool | Flag für Führungsposition. |
| chiffre | bool | Flag für Chiffre. |
| mainPortal | int | ID des Hauptportals. |
| portals | array | Portal-IDs. |
| benefits | array | Benefit-IDs. |
| description | object | Gemapptes Beschreibungsobjekt. |
| scheduled | object | Geplante Von-/Bis-Daten zur automatischen Aktivierung und Deaktivierung. |
| temporaryWork | object | Daten zur Zeitarbeit. |
| workAtHome | object | Homeoffice-Daten. |
| occupationalField | object | Daten zum Berufsfeld. |
| wage | object | Gehaltsdaten. |
| categories | array | Gemappte Kategorieobjekte. |
| locations | array | Gemappte Standortobjekte. |
| contactPersons | array | Gemappte Ansprechpartnerobjekte. |
| updatedAt | datetime | Zeitstempel der letzten Aktualisierung. |
| refreshedAt | datetime | Zeitstempel der letzten Auffrischung. |
2.1.3 Schema für POST/PUT/DELETE-Antworten
| Feld | Typ | Used by | Beschreibung |
|---|---|---|---|
| type | string | POST, PUT, DELETE | success, info oder error |
| message | string | POST, PUT, DELETE | Ergebnisnachricht der Operation |
| time | datetime | POST, PUT, DELETE | Legacy-Zeitstempel der Antwort. |
| timeIso8601 | string | POST, PUT, DELETE | Kanonischer Zeitstempel der Antwort im ISO-8601-Format. |
| referenceId | string|int | POST, PUT, DELETE | Referenznummer des Stellenangebots |
| title | string | POST, PUT, DELETE | Titel des Stellenangebots (falls verfügbar) |
| id | int | POST, PUT | Interne Stellenangebots-ID |
| mainUrl | string | POST, PUT | Haupt-URL des veröffentlichten Stellenangebots |
| additionalJobBoardUrls | array | POST, PUT | Zusätzliche veröffentlichte URLs |
| remainingPortals | array | DELETE (partial) | Verbleibende Portale nach teilweiser Löschung |
Beispiel für eine erfolgreiche Antwort
[
{
"type": "success",
"time": {
"date": "2026-03-25 10:15:00.000000",
"timezone_type": 1,
"timezone": "+00:00"
},
"timeIso8601": "2026-03-25T10:15:00+00:00",
"referenceId": "1292346-2022",
"id": 12345,
"mainUrl": "https://example.com/stellenangebot/worker-in-example-job",
"additionalJobBoardUrls": [
"https://jobs.example.com/stellenangebot/worker-in-example-job"
],
"message": "The offer with title \"Worker in example job\" was saved successfully."
}
]
Beispiel für eine GET-Antwort
[
{
"type": "success",
"title": "Software Developer (m/w/d)",
"referenceId": "1292346-2022",
"time": {
"date": "2026-03-25 10:15:00.000000",
"timezone_type": 1,
"timezone": "+00:00"
},
"timeIso8601": "2026-03-25T10:15:00+00:00",
"id": 12345,
"mainUrl": "https://example.com/stellenangebot/software-developer-m-w-d-12345",
"additionalJobBoardUrls": [
"https://jobs.example.com/stellenangebot/software-developer-m-w-d-12345"
],
"createdAt": "2026-06-10T08:00:00+00:00",
"lastRefresh": "2026-06-17T10:00:00+00:00",
"slug": "software-developer-m-w-d-12345",
"status": "active",
"referenceNumber": "1292346-2022",
"importReference": "1292346-2022",
"startType": "date",
"startFrom": "2026-07-01T00:00:00+00:00",
"limitationType": "no",
"limitationDate": null,
"jobOfferTypes": [
"job"
],
"contract": [
"full time"
],
"applyUrl": "https://example.com/apply/1292346-2022",
"totalCount": 2,
"students": false,
"leadership": false,
"chiffre": false,
"mainPortal": 1,
"portals": [
1,
2
],
"benefits": [
"5d9debaf67a3b775bdc8c927",
"5d9debae67a3b775bdc8c91e"
],
"description": {
"input": true,
"fullText": null,
"introHeadline": "Einstieg bei uns",
"introText": "<p>Wir suchen Verstärkung.</p>",
"jobProfileHeadline": "Aufgaben",
"jobProfileText": "<ul><li>Entwicklung</li><li>Tests</li></ul>",
"applicantProfileHeadline": "Profil",
"applicantProfileText": "<p>Typescript, React, Graphql</p>",
"offerHeadline": "Wir bieten",
"offerText": "<p>Flexible Arbeitszeiten</p>",
"contactHeadline": "Kontakt",
"contactText": "<p>HR Team</p>"
},
"scheduled": {
"from": "2026-06-20T00:00:00+00:00",
"to": "2026-09-30T00:00:00+00:00"
},
"temporaryWork": {},
"workAtHome": {
"allowed": true,
"days": 3
},
"occupationalField": {
"id": "5fabc1234567890abcde0001",
"name": "Engineering"
},
"wage": {
"type": "annual",
"min": 40000,
"max": 52000,
"minWeeklyHours": 35
},
"categories": [
{
"id": "5d9debaf67a3b775bdc8c927",
"name": "IT / Software",
"slug": "it-software"
}
],
"locations": [
{
"id": "621f6a03bdef404ecf3b20ca",
"name": "HQ Siegen",
"street": "Musterstraße 10",
"zip": "57072",
"city": "Siegen",
"region": "Südwestfalen",
"country": "Deutschland",
"mainLocation": true,
"countOffers": 1
}
],
"contactPersons": [
{
"id": "6220d1a6bdef404ecf3b2172",
"salutation": "Herr",
"firstName": "Max",
"lastName": "Mustermann",
"position": "HR Manager",
"email": "max.mustermann@example.com",
"emailAlias": "karriere@example.com",
"phone": "+49 271 123456",
"show": true,
"main": true,
"notify": true,
"showEmail": true,
"showPhone": true
}
],
"updatedAt": "2026-06-17T10:00:00+00:00",
"refreshedAt": "2026-06-17T10:00:00+00:00"
}
]
Beispiel für eine Fehlerantwort
[
{
"type": "error",
"time": {
"date": "2026-03-25 10:15:00.000000",
"timezone_type": 1,
"timezone": "+00:00"
},
"timeIso8601": "2026-03-25T10:15:00+00:00",
"message": "The offer with the reference-Id \"1292346-2022\" could not be found in the database.",
"referenceId": "1292346-2022",
"title": "Worker in example job"
}
]
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
],
"jobOfferTypes": [
"apprenticeship",
"dual-study"
],
"occupationalField": {
"id": "5fabc1234567890abcde0001",
"idMainCategory": "5fabc1234567890abcde0002",
"name": "Engineering"
},
"wage": {
"type": "annual",
"min": 40000,
"max": 48000,
"minWeeklyHours": 35
},
"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
| Anfrage | 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"
},
...
]
Beispielantwort für einen Ansprechpartner
[
{
"time": "2026-03-25T10:15:00+00:00",
"message": "New Contact person with email \"erika@example.com\" created.",
"type": "success",
"id": "621f6a03bdef404ecf3b20ca",
"email": "erika@example.com"
}
]
3.2 Standorte
| Anfrage | 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"
},
...
]
Beispielantwort für einen Standort
[
{
"time": "2026-03-25T10:15:00+00:00",
"message": "Location with id 621f6a03bdef404ecfxxxxx updated successfully",
"type": "success",
"id": "621f6a03bdef404ecfxxxxx",
"name": "Example Location"
}
]
3.3 Unternehmens-Uploads
| Anfrage | 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.
| Anfrage | Route | Beschreibung |
|---|---|---|
| GET | v1/import/company/benefits | Gibt ID und Name der Unternehmensbenefits zurück. |
3.5 Jobbörsen des Unternehmens
| Anfrage | 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
Hinweis zur Abkündigung: Kategorien sind veraltet und können in einer zukünftigen Version entfernt werden. Bitte verwenden Sie stattdessen Berufsfelder (occupationalField).
| Anfrage | 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 / Öffentl. Dienst / 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>"..
| Anfrage | 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. |
4.3 Berufsfelder
| Anfrage | Route | Beschreibung |
|---|---|---|
| GET | v1/import/general/occupational-fields | Gibt id, idMainCategory und name aller Berufsfelder zurück. |
Beispielantwort:
[
{
"id": "5fabc1234567890abcde0001",
"idMainCategory": "5fabc1234567890abcde0002",
"name": "Engineering"
},
{
"id": "5fabc1234567890abcde0003",
"idMainCategory": "5fabc1234567890abcde0004",
"name": "Logistics"
}
]
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 | 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 | Zeigen/Verstecken der E-Mail des Ansprechpartners im Unternehmensportrait. 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 | false | 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 |
5.6 Berufsfeld
Kategorien sind veraltet. Wenn Kategoriedaten gesendet werden, werden sie einem Berufsfeld zugeordnet. Wenn sowohl categories als auch occupationalField gesendet werden, wird occupationalField als angezeigter Wert im Stellenangebot verwendet.
| Tags | Datentyp | Beschreibung |
|---|---|---|
| id | string | Berufsfeld-ID. |
| name | string | Anzeigename des Berufsfelds. |
The idMainCategory field is not accepted as input. It is derived from the database and returned in GET responses.
5.7 Gehalt
| Tags | Datentyp | Beschreibung |
|---|---|---|
| type | string | Gehaltstyp. Erlaubte Werte: hourly, monthly, annual. |
| min | int | Mindestgehalt. |
| max | int | Höchstgehalt. |
| minWeeklyHours | int | Mindestanzahl der Wochenstunden. Optional. |
6. Antwortschema
Alle Import-Endpunkte geben ein Array von Antwortobjekten zurück. Jedes Objekt enthält generische Antwort-Metadaten und kann je nach Endpunkt und Operation zusätzliche entitätsspezifische Felder enthalten.
6.1 Generische Antwortfelder
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| type | string | yes | Antworttyp: „success“, „info“ oder „error“. |
| time | datetime | yes | Zeitstempel des Antworteintrags. |
| message | string | no | Menschenlesbare Status- oder Fehlermeldung. |
6.2 Stellenangebotsspezifische Felder
6.3 Ansprechpartnerspezifische Felder
| Feld | Typ | Beschreibung |
|---|---|---|
| id | string | ID des Ansprechpartners. |
| string | E-Mail-Adresse des Ansprechpartners. |
6.4 Standortspezifische Felder
| Feld | Typ | Beschreibung |
|---|---|---|
| id | string | ID des Standorts. |
| name | string | Name des Standorts. |

