API Benutzerdokumentation

Aus Onlinehelp
Zur Navigation springen Zur Suche springen

Kurzanleitung

Die Umantis ATS API bietet eine Sammlung von API Endpunkten, die die Integration zwischen dem Umantis ATS und anderen Anwendungen innerhalb der Infrastruktur unserer Kunden unterstützt.

Um als Kunde die Umantis API grundsätzlich nutzen zu können, müssen Sie sie zunächst aktivieren und unsere Nutzungsbedingungen akzeptieren. Navigieren Sie dazu unter Einstellungen/Grundeinstellungen auf den Reiter „API“ und dort zum Tab „Allgemein“. Unter „Umantis API aktivieren und Nutzungsbestimmungen akzeptieren“ können Sie bestätigen, dass Sie die Nutzungsbedingungen der Umantis API zur Kenntnis genommen haben und die API aktivieren. Sofern Sie als Partner über einen Partner-Account auf die API zugreifen wollen, ist dieser Schritt nicht notwendig.

Allgemeine Informationen

Die technische Dokumentation der API kann über den Endpunkt /openapi abgerufen werden.

Die API bietet die Möglichkeit, verschiedene Ressourcentypen abzurufen, zu erstellen oder zu ändern. Die folgenden Punkte sind für alle Anfragen obligatorisch:

  • Clients MÜSSEN den Accept http-Header bereitstellen, in der Regel mit application/vnd.api+json als Medientypbezeichnung.
    Im Falle des Medientyps application/vnd.api+json sind keine Medientypparameter zulässig.
  • Clients MÜSSEN den Authorization http-Header bereitstellen, wie im Abschnitt „Authentifizierung“ beschrieben.

Die Antwort wird in JSON zurückgegeben, und zwar gemäss der JSON:API-Dokumentstruktur. In den meisten Fällen ist es möglich, die auszugebenden Datensätze zu filtern. Felder, nach denen gefiltert werden kann, sind durch den Tag #filterable gekennzeichnet. Zusätzlich ist es auch möglich, über den Query-Parameter "fields[RELATIONSHIP]" die auszugebenden Felder innerhalb eines Datensatzes zu filtern. Weitere Informationen sind in der technischen Dokumentation (Link) zu finden.

Aufbau Lösungs-URL

Der Aufbau der URL der Umantis Lösungen ist immer gleich:

  • https://recruitingapp-<TenantID>(.de).umantis.com

Die TenantID ist die eindeutige Lösungsnummer jeder Lösung und identifiziert den dahinterliegenden Kunden oder Partner. Lösungen die in Deutschland gehostet werden, enthalten ein zusätzliches ".de" zwischen der TenantID und der Domain .umantis.com. Bei Lösungen, die in der Schweiz gehostet werden, entfällt dieser Zusatz.

Authentifizierung

Für den direkten Zugriff auf die API muss ein spezieller API Benutzer angelegt werden. Dieser muss in den Benutzereinstellungen unter "Rollen und Berechtigungen" als "nicht-interaktiver API-Benutzer" markiert werden. Wir empfehlen dafür in der Benutzerverwaltung einen neuen Administrator-Account zu erstellen. Soll der Zugriff auf die API niederlassungsunabhängig auf alle Daten erfolgen, sollte das Kontrollfeld "Niederlassungsbeschränkung" nicht aktiviert werden. Wird es aktiviert, hat der API Benutzer nur Zugriff auf Daten der Niederlassung, die ihm explizit zugewiesen werden.
Beachten Sie, dass ein Benutzer, bei dem das Kontrollfeld "nicht-interaktiver API-Benutzer" gesetzt ist, ausschliesslich über die API auf die Lösung zugreifen kann. Ein Zugriff über die normale Benutzeroberfläche ist nicht möglich.

Die Authentifizierung folgt dem Client Credentials Flow. Das OAuth Token wird über den Endpunkt /oauth/token generiert. Dazu werden valide Login-Informationen benötigt:

client_id = <Benutzer-Login>
client_secret = <Passwort>
grant_type = "client_credentials"
curl --location 'https://recruitingapp-<TenantID>.umantis.com/api/v1/oauth/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Accept: application/json' \
--data-urlencode 'client_id=max.mustermann' \
--data-urlencode 'client_secret=abc123!' \
--data-urlencode 'grant_type=client_credentials'

Authentifizierung über Partner Account

Für die Authentifizierung gegen eine Kundenlösung über einen Partner Account wird ebenfalls ein OAuth Token benötigt. Die Login-Informationen entsprechen den Partner-Account Informationen:

client_id = <Partner-Konto Login>
client_secret = <Partner API Passwort>
grant_type = "client_credentials"

Mehr Informationen zu Partner Accounts sind im Umantis API Partner Guide zu finden.

API Einstellungen und generelle Informationen

Zugriffe und Rollen
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.

Zugriffe und Rollen

Der Zugriff auf Informationen wird über den authentifizierten Benutzer und dessen Rolle gesteuert. Ist der Benutzer, der zur Erstellung des OAuth Tokens verwendet wurde, beispielsweise ein Vorgesetzter, sind über die API nur Zugriffe auf Felder und Datensätze möglich, die der Benutzer auch eingeloggt in der Lösung sehen kann.

Rollenbeschränkungen

Grundsätzlich sind nicht alle Endpunkte für alle Rollen verfügbar. Die Information, welche Rollen auf einen Endpunkt Zugriff haben, ist am jeweiligen Endpunkt in der Form #role-constraints:<...> dokumentiert.

Beispiel:

Es gibt folgende Rollen:

  • SysAdmin/ReadOnlyAdmin: nicht verfügbar ausserhalb Abacus Umantis
  • Role1: Administrator - diese Rolle hat die breitesten Zugriffsrechte und kann auf alle Funktionen zugreifen
  • ExpertUser: HR Experte - diese Rolle kann in der Regel auf alle Funktionen zugreifen, bestimmte Einstellungen und Daten sind allerdings nicht verfügbar.
  • ExpertAssi: HR Assistent - diese Rolle kann auf ähnliche Funktionen zugreifen wie ein HR Experte, allerdings in eingeschränktem Umfang.
  • MgmtUser: Vorgesetzter - diese Rolle kann nur eingeschränkt auf Funktionen und Daten zugreifen, beispielsweise nur auf Bewerbungen oder Stellen, die dem Benutzer explizit zugewiesen sind.
  • BoardUser: Gremiumsmitglied - ähnlich wie der Vorgesetzte, kann diese Rolle nur stark eingeschränkt auf Funktionen und Daten zugreifen.
  • Role2: Externer Personalvermittler - stark eingeschränkter Zugriff, diese Rolle kann nur auf explizit zugewiesene Stellen zugreifen und auf Bewerbungen, die durch diesen Benutzer angelegt wurden.
  • vSelfService: Bewerber - diese Rolle kann nur auf Informationen aus der eigenen Bewerbung zugreifen

Ein Partner-Konto hat immer die Administratoren-Rolle (Role1) und somit den breitesten Zugriff.

Feldzugriff/CWC Zugriff (/fields-access)

Zusätzlich zu den Rollenbeschränkungen kann der Zugriff auf bestimmte Felder noch weiter eingeschränkt sein, beispielsweise wenn Felder auf der Kundenlösung ausgeblendet sind und damit im Frontend nicht zur Verfügung stehen. Diese Felder sind auch über die API nicht ansprechbar. Dies kann separate für jede Rolle eingestellt werden, so dass beispielsweise Vorgesetzte bestimmte Felder in einer Kundenlösung nicht sehen können, HR hat aber weiterhin Zugriff. Es kann aber auch sein, dass ein Kunde Felder für alle Rollen ausblendet, wenn diese grundsätzlich nicht genutzt werden.

Um die Zugriffsrechte auf Felder zu prüfen, kann der Endpunkt /fields-access verwendet werden. Die folgenden Spezifikationen werden je Feld ausgegeben:

[ ] leer - kein Zugriff auf das Feld erlaubt
read - Leserechte auf das Feld
create - Das Feld darf während der Erstellung eines neuen Datensatzes geschrieben werden.
edit - Das Feld darf upgedated werden

Die Response des Endpunkts bezieht sich immer auf die Rolle des aktuell authentifizierten Benutzers.

Beispiel /fields-access
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location 'https://recruitingapp-<TenantID>.umantis.com/api/v1/fields-access?entities=persons' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>'

Response:
{
    "data": {
        "persons": {
            "access-to-internal-jobmarket": [
                "read",
                "create",
                "edit"
            ],
            "additional-comments": [],
...
            "business-company": [
                "read",
                "create",
                "edit"
            ],
            "business-email-address": [
                "read",
                "create"
            ],
            "business-phone-central": [],
            "business-phone-direct": [
                "read",
                "create",
                "edit"
            ],
            "business-phone-mobile": [
                "read",
                "create",
                "edit"
            ],
            "civil-status": [],
            "creation-datetime": [
                "read"
            ]
...
        }
    }
}

Besonderheiten bei Zugriff über Partner Accounts

Sofern über einen Partner Account lesend auf ein Feld zugegriffen wird, auf das aufgrund der Einstellungen normalerweise kein Zugriff besteht, wird die Anfrage nicht komplett abgelehnt (403 Fehlermeldung) sondern es wird nur der Zugriff auf das Feld verweigert, d.h. das Feld wird in der Antwort nicht zurückgegeben.

Bei direkten Zugriffen, die nicht über einen Partner Account erfolgen, wird die Anfrage auf nicht freigegebene Felder komplett verweigert, d.h. es wird eine Fehlermeldung als Antwort zurückgeliefert.

Niederlassungen und Niederlassungsbeschränkungen (/branch-offices)

Innerhalb des Umantis Bewerbermanagements können vom Kunden ein oder mehrere Niederlassungen angelegt werden, um Zugriffe auf Daten weiter einzuschränken. Bei Niederlassungen kann es sich um unterschiedliche Standorte eines Unternehmens handeln, unterschiedliche Abteilungen oder auch um Tochter- oder Schwesterunternehmen. Allen gemein ist, dass der Zugriff auf Stellen- und Personendaten abhängig von den dem Benutzer zugeordneten Niederlassungen ist.

Informationen zu Niederlassungen können über die Endpunkte /branch-offices abgefragt werden, oder je nach Anwendungsfall als Relation beispielsweise innerhalb der Abfrage von Stellen. Es gibt immer mindestens die Hauptniederlassung (ID 1). Weitere Niederlassungen sind optional. Abgesehen von Zugriffsrechten auf Personen und Stellen, können über die Niederlassung auch andere Zugriffe gesteuert werden, beispielsweise Zugriffe auf einzelne Felder auf dem Bewerbungsformular oder im Bewerberdossier.

Weitere Informationen dazu finden sich in den jeweiligen Kapiteln.

Beispiel /branch-offices
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location --globoff 'https://recruitingapp-<TenantID>.umantis.com/api/v1/branch-offices/1?fields[branch-offices]=name%2Caddress-city%2Caddress-country%2Caddress-street%2Caddress-zip-code%2Cemail-address%2Clogo%2Cphone%2Cprivacy-policy-statement%2Cparent-branch-office&include=parent-branch-office&content-languages=de-ch%2Cen-us%2Ces' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>'
 
Response:
{
    "data": {
        "attributes": {
            "address-city": "St.Gallen",
            "address-country": "22203",
            "address-street": "Unterstrasse 11",
            "address-zip-code": "9000",
            "email-address": "fanergyschweiz@fanergy.net",
            "logo": {
                "file": "<Base64_encoded_file>",
                "filename": "Schweizer-Flagge.png",
                "url": "/api/v1/media/image/2023-12-30-1703944410_126247_8991"
            },
            "name": "Fanergy Global (Schweiz)",
            "phone": null,
            "privacy-policy-statement": {
                "de-ch": "<HTML_enriched_Text>"
            }
        },
        "id": "1",
        "links": {
            "self": "/api/v1/branch-offices/1"
        },
        "relationships": {
            "parent-branch-office": null
        },
        "type": "branch-offices"
    },
    "included": [],
    "jsonapi": {
        "version": "1.0"
    },
    "links": {
        "self": "/api/v1/branch-offices/1?fields%5Bbranch-offices%5D=name%2Caddress-city%2Caddress-country%2Caddress-street%2Caddress-zip-code%2Cemail-address%2Clogo%2Cphone%2Cprivacy-policy-statement%2Cparent-branch-office&include=parent-branch-office&content-languages=de-ch%2Cen-us%2Ces"
    }
}


Sprachen (/settings/languages)
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.

Sprachen (/settings/languages)

Das Umantis Bewerbermanagement wird in einer Vielzahl von Sprachen angeboten. Dabei stehen einige Sprachen voll unterstützt zur Verfügung, d.h. alle Bereiche der Lösung stehen in diesen Sprachen zur Verfügung. Zusätzlich gibt es teilweise unterstützte Sprachen. Diese können nur für die externen Bereiche der Lösung genutzt werden, zum Beispiel den Stellenmarkt, das Bewerbungsformular und das Bewerbercockpit. (Siehe auch Sprachen)

Hinweise:

  • Zu beachten ist, dass es für Deutsch und English jeweils zwei Varianten gibt; Deutsch - DE (de-de/gerger) und Deutsch - CH (de-ch/ger), sowie Englisch - US (en-en/eng) und Englisch UK (en-gb/gbr).
  • Zusätzlich ist zu beachten, dass die Sprach-ID des Benutzers nicht 1:1 mit der generellen Sprach-ID übereinstimmt, sondern über ein Schema gebildet wird: Sprach-ID (z.B. 1 - Deutsch (CH), 2 - Englisch, 31 - Deutsch (DE) ) → ID*10+77000 = Benutzersprache (z.B. 77010 - Deutsch (CH), 77020 - Englisch, 77310 - Deutsch (DE) )
Beispiel: Sprach ID 2 (Englisch) → 2*10+77000 = ID Benutzersprache 77010
  • Welche Sprachen zur Verfügung stehen und genutzt werden ist je Kundenlösung (Tenant) definiert. Bei Sprachen mit zwei Varianten nutzen Kunden entweder die eine oder die andere Variante, es gibt keine Kunden, die beispielsweise sowohl Deutsch - DE als auch Deutsch - CH verwenden.
  • Der Endpunkt /settings/languages liefert die auf der Kundenlösung verwendeten Sprachen zurück.
Nur Sprachen, bei denen der Wert "in-use": true zurück geliefert wird, sind beim Kunden aktiv in Verwendung.
Beispiel /settings/languages
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location 'https://recruitingapp-<TenantID>.umantis.com/api/v1/languages' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>'
 
Response (gekürzt):
{
    "data": [
        {
            "attributes": {
                "available": true,
                "in-use": true,
                "language": "77010",
                "language-iso": "de-ch"
            },
            "id": "77010",
            "links": {
                "self": "/api/v1/languages/77010"
            },
            "type": "languages"
        },
        {
            "attributes": {
                "available": true,
                "in-use": true,
                "language": "77020",
                "language-iso": "en-us"
            },
            "id": "77020",
            "links": {
                "self": "/api/v1/languages/77020"
            },
            "type": "languages"
        },
        {
            "attributes": {
                "available": true,
                "in-use": false,
                "language": "77030",
                "language-iso": "fr"
            },
            "id": "77030",
            "links": {
                "self": "/api/v1/languages/77030"
            },
            "type": "languages"
        },
        {
            "attributes": {
                "available": false,
                "in-use": false,
                "language": "77050",
                "language-iso": "es"
            },
            "id": "77050",
            "links": {
                "self": "/api/v1/languages/77050"
            },
            "type": "languages"
        }
...
    ],
    "jsonapi": {
        "version": "1.0"
    },
    "links": {
        "first": "/api/v1/languages?page-number=1&page-size=10&",
        "last": "/api/v1/languages?page-number=5&page-size=10&",
        "next": "/api/v1/languages?page-number=2&page-size=10&",
        "prev": null,
        "self": "/api/v1/languages"
    },
    "meta": {
        "count": "42"
    }
}


Auswahllisten (/list-entries)
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.

Auswahllisten (/list-entries)

An vielen Stellen innerhalb des Systems werden Auswahllisten verwendet, um die für ein Feld verwendbaren Werte zu definieren. Die Werte dieser Auswahllisten sind bis auf wenige Ausnahmen (zum Beispiel spezielle Einträge in der Auswahlliste "Bewerbungsstatus") individuell vom Kunden definiert.

Es wird zwischen fixen Listen und dynamischen Listen unterschieden:

  • Fixe listen haben fest definierte Werte, die vom Kunden nicht oder nur sehr eingeschränkt angepasst werden können.
  • Dynamische Listen können vom Kunden bis auf wenige Ausnahmen beliebig angepasst werden, es können

Felder die an eine Auswahlliste gekoppelt sind, erlauben nur Einträge aus der definierten Auswahlliste. In der Dokumentation haben Felder, die auf Einträge aus Auswahllisten verwenden, einen Verweis auf die jeweilige Liste in der Form #selection-list:dynamic-list-<ID> oder #selection-list:fixed-list-Salutation

Als Wert muss die ID des entsprechenden Auswahllisteneintrags übergeben werden.

Die Werte, die für eine Auswahlliste zur Verfügung stehen, können über den Endpunkt /list-entries abgefragt werden. Dabei werden die Werte in allen Sprachen ausgegeben, die in der Kundenlösung aktiv genutzt werden. Falls nur bestimmte Sprachen ausgegeben werden sollen, kann das über den Parameter content-languages eingeschränkt werden.

Wir empfehlen, diesen Endpunkt nicht ungefiltert zu nutzen, sondern über den Parameter fields[list-entries]=dynamic-list-<ID> spezifische Listen abzurufen, da das Ergebnis ohne Filterung sehr umfangreich ist.

Beispiel /list-entries
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location --globoff 'https://recruitingapp-<TenantID>.umantis.com/api/v1/list-entries?fields[list-entries]=dynamic-list-2&content-languages=de-ch%2Cen-us' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>'
 
Response:
{
   "data": {
       "attributes": {
           "dynamic-list-2": {
               "de-ch": [
                   {
                       "entry-id": 2200,
                       "external-code": null,
                       "order": 1,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Bewerbung unvollständig"
                   },
                   {
                       "entry-id": 2010,
                       "external-code": null,
                       "order": 10,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Bewerbungseingang"
                   },
                   {
                       "entry-id": 2020,
                       "external-code": null,
                       "order": 20,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Unterlagen nachgefordert"
                   },
                   {
                       "entry-id": 2050,
                       "external-code": null,
                       "order": 50,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Bewertung durch Vorgesetzte"
                   },
                   {
                       "entry-id": 2160,
                       "external-code": null,
                       "order": 60,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Warteliste"
                   },
                   {
                       "entry-id": 20000068,
                       "external-code": null,
                       "order": 110,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Eingeladen zum Telefoninterview"
                   },
                   {
                       "entry-id": 2090,
                       "external-code": null,
                       "order": 130,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Eingeladen für 1. Gespräch"
                   },
                   {
                       "entry-id": 20000002,
                       "external-code": null,
                       "order": 180,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Eingeladen für 2. Gespräch"
                   },
                   {
                       "entry-id": 2150,
                       "external-code": null,
                       "order": 200,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Warten auf Rückmeldung"
                   },
                   {
                       "entry-id": 2130,
                       "external-code": null,
                       "order": 210,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Vertrag erstellt und versendet"
                   },
                   {
                       "entry-id": 2140,
                       "external-code": null,
                       "order": 220,
                       "parent-id": null,
                       "special-code": null,
                       "text": "----------------------------"
                   },
                   {
                       "entry-id": 2180,
                       "external-code": null,
                       "order": 230,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Eingestellt"
                   },
                   {
                       "entry-id": 2170,
                       "external-code": null,
                       "order": 350,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Abgesagt"
                   },
                   {
                       "entry-id": 2190,
                       "external-code": null,
                       "order": 360,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Bewerbung zurückgezogen"
                   }
               ],
               "en-us": [
                   {
                       "entry-id": 2200,
                       "external-code": null,
                       "order": 1,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Application incomplete"
                   },
                   {
                       "entry-id": 2010,
                       "external-code": null,
                       "order": 10,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Application received"
                   },
                   {
                       "entry-id": 2020,
                       "external-code": null,
                       "order": 20,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Request documentation"
                   },
                   {
                       "entry-id": 2050,
                       "external-code": null,
                       "order": 50,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Evaluation by manager"
                   },
                   {
                       "entry-id": 2160,
                       "external-code": null,
                       "order": 110,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Waiting list"
                   },
                   {
                       "entry-id": 20000068,
                       "external-code": null,
                       "order": 370,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Invited for telephone interview"
                   },
                   {
                       "entry-id": 2090,
                       "external-code": null,
                       "order": 90,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Invited for 1st interview"
                   },
                   {
                       "entry-id": 20000002,
                       "external-code": null,
                       "order": 370,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Invited for 2nd interview"
                   },
                   {
                       "entry-id": 2150,
                       "external-code": null,
                       "order": 150,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Waiting for feedback"
                   },
                   {
                       "entry-id": 2130,
                       "external-code": null,
                       "order": 180,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Create and send contract"
                   },
                   {
                       "entry-id": 2140,
                       "external-code": null,
                       "order": 360,
                       "parent-id": null,
                       "special-code": null,
                       "text": "----------------------------"
                   },
                   {
                       "entry-id": 2180,
                       "external-code": null,
                       "order": 210,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Hired"
                   },
                   {
                       "entry-id": 2170,
                       "external-code": null,
                       "order": 220,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Declined"
                   },
                   {
                       "entry-id": 2190,
                       "external-code": null,
                       "order": 230,
                       "parent-id": null,
                       "special-code": null,
                       "text": "Application withdrawn"
                   }
               ]
           }
       },
       "type": "list-entries"
   },
   "jsonapi": {
       "version": "1.0"
   },
   "links": {
       "self": "/api/v1/list-entries?fields%5Blist-entries%5D=dynamic-list-2&content-languages=de-ch%2Cen-us"
   }
}

API Personen und Bewerbungen

Personen (/persons)
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.

Personen (/persons)

Alle Daten, die einer natürlichen Person zuzuordnen sind, beispielsweise Kontaktdaten, Geburtsdatum, Login, können über die Endpunkte unter /persons abgefragt oder manipuliert werden. Das umfasst Daten, die zu internen und externen Benutzern gehören, wie beispielsweise Administratoren, HR Experten oder externen Recruitern. Einschränkungen, welche Daten abgerufen werden können, werden über die Rolle des authentifizierten Nutzers und ggf. weitere Beschränkungen wie Zugehörigkeit zu einer Niederlassung definiert.

Personendaten sind immer mindestens einer Niederlassung zugeordnet. Bei internen Benutzern (Rollen: Administrator, HR Benutzer, Vorgesetzte, Gremiumsmitglieder) und Personalvermittlern erfolgt das durch direkte Zuordnung der Niederlassung(en) zur Person. Diese Benutzer haben immer eine Niederlassung zugeordnet, die als primäre Niederlassung definiert ist, sowie gegebenenfalls weitere Niederlassungszuordnungen.

Sofern keine Parameter bei der Abfrage der Person mitgegeben werden, wird ein vordefiniertes Set an Feldern ausgegeben. Bei Benutzern wird die primäre Niederlassung über das Element "relationships/primary-branch-office" ausgegeben.

Es ist nicht möglich, über die API neue Benutzer in Umantis anzulegen, also beispielsweise neue HR-Experten, Vorgesetzte oder Gremienmitglieder. Neue Bewerberprofile können über den /persons-Endpunkt angelegt werden, dies sollte in der Regel als Include mit der Anlage einer neuen Bewerbung erfolgen (siehe dort).

Beispiel Lesen einer Person ohne Parameter
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location 'https://recruitingapp-<TenantID>.umantis.com/api/v1/persons/1053' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>'

Response:
{
   "data": {
       "attributes": {
           "business-email-address": "katja.egli@fanergy.net",
           "data-release": null,
           "first-name": "Katja",
           "last-name": "Egli",
           "private-email-address": "katja.egli@fanergy.net",
           "reference-number": "1053",
           "salutation": "Salutation_F",
           "subtype": "PersonType_Experts",
           "user-language": "77010"
       },
       "id": "1053",
       "links": {
           "self": "/api/v1/persons/1053"
       },
       "relationships": {
           "primary-branch-office": {
               "data": {
                   "id": "1",
                   "type": "branch-offices"
               },
               "links": {
                   "related": "/api/v1/branch-offices/1",
                   "self": "/api/v1/persons/1053/relationships/primary-branch-office"
               }
           }
       },
       "type": "persons"
   },
   "jsonapi": {
       "version": "1.0"
   },
   "links": {
       "self": "/api/v1/persons/1053"
   }
}

Die Abfrage weiterer Felder und zusätzlicher Niederlassungszuordnungen muss explizit über den Parameter ?fields[persons] erfolgen, siehe Beispiel.

Beispiel Lesen einer Person mit Parameter
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location --globoff 'https://recruitingapp-<TenantID>.umantis.com/api/v1/persons/1053?fields[persons]=first-name%2Clast-name%2Csubtype%2Cbusiness-email-address%2Clogin-name%2Creference-number%2Ccustomer-defined-person-list-1%2Cbranch-offices' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>'

Response:
{
   "data": {
       "attributes": {
           "business-email-address": "katja.egli@fanergy.net",
           "customer-defined-person-list-1": null,
           "first-name": "Katja",
           "last-name": "Egli",
           "login-name": "umantismanager5",
           "reference-number": "1053",
           "subtype": "PersonType_Experts"
       },
       "id": "1053",
       "links": {
           "self": "/api/v1/persons/1053"
       },
       "relationships": {
           "branch-offices": {
               "data": [
                   {
                       "id": "1",
                       "type": "branch-offices"
                   },
                   {
                       "id": "22",
                       "type": "branch-offices"
                   }
               ],
               "links": {
                   "self": "/api/v1/persons/1053/relationships/branch-offices"
               },
               "meta": {
                   "count": "2"
               }
           }
       },
       "type": "persons"
   },
   "jsonapi": {
       "version": "1.0"
   },
   "links": {
       "self": "/api/v1/persons/1053?fields%5Bpersons%5D=first-name%2Clast-name%2Csubtype%2Cbusiness-email-address%2Clogin-name%2Creference-number%2Ccustomer-defined-person-list-1%2Cbranch-offices"
   }
}


Bewerbungen (/applications)
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.

Bei Bewerbern existiert keine direkte Relation zu einer Niederlassung, statt dessen erfolgt diese indirekt über die Verbindung zu der Stelle, auf die die Bewerbung erfolgt ist. Sofern ein Bewerber sich auf mehr als eine Stelle beworben hat, kann auch hier eine Verbindung zu mehreren Niederlassungen bestehen.

Bewerbungen (/applications)

Eine Bewerbung besteht aus zwei Elementen, zum einen aus der Person die sich bewirbt, zum anderen aus der eigentlichen Bewerbung, die sich auf eine konkrete Stelle bezieht.

Bewerbung mit Bewerberkonto (Regelfall)

Im Normalfall (für Ausnahmen siehe Bewerbung ohne Login) kann eine Person zu mehreren Bewerbungen verknüpft sein, beispielsweise wenn sich der Bewerber auf mehr als eine Stelle bewirbt.

Pro Stelle ist nur eine Bewerbung möglich, der Versuch eine weitere Bewerbung zum selben Bewerber und der selben Stelle zu erstellen wird abgelehnt.

Über den Endpunkt /persons-ids kann über die E-Mail-Adresse oder den Login-Namen geprüft werden, ob die Person schon im System existiert. Sofern die Person bereits im System existiert, müssen weitere Bewerbungen an diese Person angehängt werden, statt eine neue Person anzulegen.

Bewerbung ohne Login

Die Funktion "Bewerbung ohne Login" erlaubt die Bewerbung ohne Anlage eines Bewerberkontos. In diesem Fall muss für jede Bewerbung ein neuer Personendatensatz angelegt werden, unabhängig davon, ob für die selbe E-Mail-Adresse bereits ein Personendatensatz existiert.

Dies kann je Niederlassung aktiviert werden, d.h. Kunden können sowohl Niederlassungen haben, bei denen im Fall einer Bewerbung auch ein Bewerberkonto angelegt wird, als auch Niederlassungen, bei denen das nicht der Fall ist. In aller Regel entscheiden sich Kunden allerdings niederlassungsübergreifend dafür, ob sie Bewerbungen mit oder ohne Login verwenden wollen.

Grundlegendes

  • Unabhängig davon, ob die Bewerbung mit oder ohne Anlage eines Benutzerkontos erfolgen soll, muss die Relation zur Person immer mitgeliefert werden. Entweder durch den Verweis auf einen bestehenden Personen-Datensatz oder durch die inkludierte Anlage einer neuen Person.
  • Zusätzlich muss die Relation zu einer bereits existierenden Stelle (/positions, /positions-publications) mitgeliefert werden. Falls für die Stelle Fragen zum Bewerbungsprozess hinterlegt wurden, müssen die Antworten zu diesen Fragen über das Element "application-questions" ebenfalls inkludiert mitgeliefert werden.
  • Handelt es sich um eine Initiativbewerbung, muss der Endpunkt /applications/unsolicited verwendet werden. In dem Fall entfällt die Relation zur Stelle, allerdings muss die Relation zur Niederlassung übergeben werden.
  • Dokumente wie Anschreiben und Lebenslauf müssen als Base64-codierte Information übergeben werden.
Beispiel Schreiben einer neuen Bewerbung inkl. Bewerber
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location --globoff 'https://recruitingapp-<TenantID>.umantis.com/api/v1/applications?fields[applications]=is-active%2Capplicant%2Cposition%2Ccurrent-status&include=applicant%2Ccurrent-status&fields[application-statuses]=status%2Ccomment%2Ccreation-datetime%2Ccreator-full-name&fields[persons]=first-name%2Clast-name%2Cprivate-email-address%2Ccustomer-defined-text-1' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>' \
--header 'Content-Type: application/vnd.api+json' \
--data-raw '{
  "included":[
     {
       "type":"persons",
        "relationship":"applicant",
        "attributes":{
           "subtype":"PersonType_Applicants",
           "salutation":"Salutation_M",
           "user-language":"77010",
           "first-name":"Max",
           "last-name":"Mustermann",
           "private-email-address":"max.mustermann@fanergy.net",
           "login-name":"max.mustermann@fanergy.net",
           "data-release":"DataAgree_Yes",
           "private-phone-direct":"01239876543",
           "private-phone-mobile":"01239876543",
           "private-address-city":"München",
           "private-address-country":"22103",
           "private-address-street":"Testallee 121",
           "private-address-zip-code":"80123"
        }
     }
  ],
  "data":{
     "relationships":{
        "applicant":{
           "data":{
              "type":"persons"
           }
        },
       "position":{
           "data":{
              "id":"274",
              "type":"positions"
           }
        }
     },
     "type":"applications",
     "attributes":{
        "source-of-information":[
           "14040"
        ],
        "documents":{
           "cv":{
              "file":"<Base64_encoded_file>",
              "filename":"test-cv.pdf"
           },
           "motivation-letter":{
              "file":"<Base64_encoded_file>",
              "filename":"Testanschreiben.docx"
           }
        },
        "application-questions-language":"77010",
        "privacy-policy-accepted":true,
        "send-welcome-email-to-applicant":true
     }
  }
}
'

Response:
{
   "data": {
       "attributes": {
           "is-active": true
       },
       "id": "340",
       "links": {
           "self": "/api/v1/applications/340"
       },
       "relationships": {
           "applicant": {
               "data": {
                   "id": "1064",
                   "type": "persons"
               },
               "links": {
                   "related": "/api/v1/persons/1064",
                   "self": "/api/v1/applications/340/relationships/applicant"
               }
           },
           "current-status": {
               "data": {
                   "id": "340-1",
                   "type": "application-statuses"
               },
               "links": {
                   "self": "/api/v1/applications/340/relationships/current-status"
               }
           },
           "position": {
               "data": {
                   "id": "274",
                   "type": "positions"
               },
               "links": {
                   "related": "/api/v1/positions/274",
                   "self": "/api/v1/applications/340/relationships/position"
               }
           }
       },
       "type": "applications"
   },
   "included": [
       {
           "attributes": {
               "customer-defined-text-1": null,
               "first-name": "Max",
               "last-name": "Mustermann",
               "private-email-address": "max.mustermann@fanergy.net"
           },
           "id": "1064",
           "links": {
               "self": "/api/v1/persons/1064"
           },
           "type": "persons"
       },
       {
           "attributes": {
               "comment": null,
               "creation-datetime": "2024-12-23T15:44:19Z",
               "creator-full-name": "Mustermann, Max",
               "status": "2010"
           },
           "id": "340-1",
           "relationships": {},
           "type": "application-statuses"
       }
   ],
   "jsonapi": {
       "version": "1.0"
   },
   "links": {
       "self": "/api/v1/applications?fields%5Bapplications%5D=is-active%2Capplicant%2Cposition%2Ccurrent-status&include=applicant%2Ccurrent-status&fields%5Bapplication-statuses%5D=status%2Ccomment%2Ccreation-datetime%2Ccreator-full-name&fields%5Bpersons%5D=first-name%2Clast-name%2Cprivate-email-address%2Ccustomer-defined-text-1"
   }
}

Willkommens-E-Mail für neue Bewerbungen

Sofern für die über die API erzeugten Bewerbungen eine "Willkommens-E-Mail" an den Bewerber ausgelöst werden soll, so kann dies über das Element "send-welcome-email-to-applicant":true getriggert werden.


API Stellen und Bewerbungsformular

Stellen
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.

Stellen

Über den Endpunkt /positions können Informationen zu allen im System vorhandenen Stellen abgerufen werden.

Über den Endpunkt /position-publications werden nur Stellen zurückgegeben, die aktuell ausgeschrieben sind. Dieser Endpunkt beinhaltet Informationen zu Ausschreibungsinhalten, also beispielsweise die Stellenbeschreibung in verschiedenen Sprachen, sowie weitere Informationen die speziell für die Ausschreibung relevant sind.

Ausschreibungsinhalte von Stellen können in verschiedenen Sprachen hinterlegt sein, abhängig davon, in welcher Sprache die Publikation der Stelle erfolgt (siehe auch Abschnitt Sprachen unter Einstellungen und generelle Informationen). Sofern beim Request nicht eingeschränkt wird, welche Sprache ausgegeben werden soll, werden alle in der Lösung verfügbaren Sprachen in der Response ausgegeben, unabhängig davon, ob es für diese Sprache Inhalte gibt oder nicht.

Der Apply-Link gibt an, über welche URL das Bewerbungsformular für die Stelle erreichbar ist, z.B. https://recruitingapp-<TenantID>.umantis.com/Vacancies/274/Application/CheckLogin/1.

Interne und externe Ausschreibung

Stellen können auf dem internen oder externen Stellenmarkt ausgeschrieben werden, oder auch auf beiden Stellenmärkten gleichzeitig. Der interne Stellenmarkt ist nur für die eigene Firma oder Unternehmensgruppe vorgesehen. In der Regel ist er nur über das Intranet des Unternehmens erreichbar.

Für die meisten Anwendungsfälle über die API ist die externe Ausschreibung bzw. der externe Stellenmarkt relevant. Dabei handelt es sich um die Stellen, die auf der Karriereseite des Unternehmens erscheinen oder auch Ausschreibungen über weitere Ausschreibungsplattformen (z.B. Stellenmärkte wie Stepstone, Jobcloud oder ähnliche).

Die Ausschreibungsinhalte für die beiden Ausschreibungsarten werden separat ausgegeben. Wird im Request nicht explizit eingeschränkt, ob die internen oder externen Ausschreibungsinhalte ausgegeben werden sollen, werden alle Felder ausgegeben, auch wenn sie gegebenenfalls leer sind.

Über die Elemente "published-on-external-website", "published-on-internal-website" und "published-on-platforms" wird ausgegeben wo und in welcher Sprache die Stelle publiziert ist.

Beispiel Ausschreibung
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location 'https://recruitingapp-<TenantID>.umantis.com/api/v1/position-publications/274' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>'

Response:
{
   "data": {
       "attributes": {
           "external-publication-texts": {
               "de-ch": {
                   "apply-link": "/Vacancies/274/Application/CheckLogin/1",
                   "contact-information": null,
                   "last-publication-datetime": "2024-10-23T11:05:46Z",
                   "publication-customer-defined-list-1": [
                       "1007006"
                   ],
                   "publication-customer-defined-list-2": null,
                    "short-description": "Damit wir nicht nur unseren, sondern auch den Erfolg unserer Kunden sicherstellen können, suchen wir dich als Client Manager:in / CRM ",
                    "textblock-1": "Seit dem Jahr 2000 gilt Umantis als Pionier für webbasierte  Talentmanagement-Lösungen. Rund 90 Mitarbeitende sorgen an den  Standorten St.Gallen & Freiburg dafür, dass die Abacus Umantis AG  durch digitalisierte Prozesse und Betreuungskonzepte ihren Kundinnen und  Kunden Mehrwert bringt. Seit Sommer 2023 ist Umantis teil der Abacus  Gruppe.<br><br>Für unser CRM-Team sind wir auf der Suche nach einer/einem <br>",
                    "textblock-2": "<ul><li>Du bist zentrale:r Ansprech­partner:in für Bestandskunden im DACH Raum bei Anfragen zu unserem Produkt und übernimmst die entsprechende E-Mail-Korrespondenz</li><li>Du suchst proaktiv den telefonischen Kontakt zu Deinen Kunden und entwickelst Lösungen für ihre aktuellen Bedarfe oder jene Themen</li><li>Intensive und zielgerichtete Betreuung von Bestandskunden, indem Du diese für unsere Software begeisterst</li><li>Schnelle und lösungsorientierte Beantwortung von Kundenanfragen – ob im direkten Gespräch, am Telefon oder per E-Mail.</li><li>Du ergreifst gezielte Maßnahmen zur Erschließung neuer Kundenpotenziale.</li><li>Eigenständige Abwicklung der Kundenanfragen, gewissenhafte Dokumentation und Weiterleitung an den entsprechenden Teilbereich (Vertrieb, technischer Support, Consulting…)</li><li>Du arbeitest eng mit Schnittstellen in Support und Consulting zusammen</li><li>Neben der Pflege und Bearbeitung von Kundendaten gehören weitere BackOffice-Tätigkeiten zu den täglichen Aufgaben</li></ul>",
                    "textblock-3": "<ul><li>Du bist selbstorganisiert und verfügst über erste Berufserfahrung in gleicher oder ähnlich starker kundenorientierter Funktion</li><li>Du bringst Leidenschaft für Vertriebsaufgaben mit</li><li>Du bist IT-affin, bringst gute analytische Fähigkeiten mit und schaffst es dich schnell in neue Software einzuarbeiten</li><li>Du bist      kommunikationsstark und hast ein sicheres Auftreten nach innen und aussen</li><li>Außerdem zeichnet dich deine proaktive und lösungsorientierte Arbeitsweise aus</li><li>Auf  sich verändernde Situationen kannst du dich flexibel einstellen und  bleibst in einem anspruchsvollen Arbeitsalltag fokussiert.</li><li>Dir gelingt es      leicht vertrauensvolle Beziehungen aufzubauen (sowohl intern als auch zum      Kunden)</li><li>Ein Know-how in HR- und/oder Recruiting-Prozessen sind von Vorteil</li><li>Dein Profil rundest du mit sehr guten Englisch Kenntnissen ab</li></ul>",
                    "textblock-4": "Wir glauben daran, dass wir genau dort am besten arbeiten können, wo  wir uns am wohlsten fühlen. Deshalb bieten wir dir ein hybrides  Arbeitsmodell mit flexiblen Arbeitszeiten, welches die Vorteile aus  mobiler, ortsunabhängiger Arbeit und persönlichem Austausch vor Ort  vereint. Ausserdem erwartet dich folgendes:<br><br><ul><li>Viel kreativer Freiraum mit entsprechender unternehmerischer Verantwortung</li><li>Moderne  Soft- und Hardware, top ausgestattete Arbeitsplätze und die Möglichkeit onsite und remote zu arbeiten – so, dass produktivem Arbeiten nichts im  Wege steht.</li><li>Umfangreiche Benefits von Events über Sport- und  Gesundheitsangebote bis zur gesunden Work-Life-Balance (6 Wochen Ferien,  Workation, Gratis Bahncard 25 Abo, kostenloser Kaffee/Obst & Müsli,  Teamevents uvm.)</li><li>Viele Weiterentwicklungsmöglichkeiten (on- & off the job)</li></ul>",
                    "textblock-5": "Hast du Interesse, in einem hoch motivierten Team zu arbeiten, wo  die Kultur geprägt ist von Verantwortung, Freiraum und einem  Miteinander? Dann bewirb dich jetzt! Wir freuen uns, dich  kennenzulernen!",
                    "textblock-6": null,
                    "textblock-7": null,
                    "textblock-8": null,
                    "title": "Client Manager:in / CRM Kundenbetreuer:in",
                    "title-textblock-1": "80 - 100%",
                    "title-textblock-2": "Das erwartet dich",
                    "title-textblock-3": "Das bringst du mit",
                    "title-textblock-4": "Das bieten wir dir",
                    "title-textblock-5": null,
                    "title-textblock-6": null,
                    "title-textblock-7": null,
                    "title-textblock-8": null
                },
                "en-us": {
                    "apply-link": "/Vacancies/274/Application/CheckLogin/2",
                    "contact-information": null,
                    "last-publication-datetime": null,
                    "publication-customer-defined-list-1": null,
                    "publication-customer-defined-list-2": null,
                    "short-description": null,
                    "textblock-1": null,
                    "textblock-2": null,
                    "textblock-3": null,
                    "textblock-4": null,
                    "textblock-5": null,
                    "textblock-6": null,
                    "textblock-7": null,
                    "textblock-8": null,
                    "title": null,
                    "title-textblock-1": null,
                    "title-textblock-2": null,
                    "title-textblock-3": null,
                    "title-textblock-4": null,
                    "title-textblock-5": null,
                    "title-textblock-6": null,
                    "title-textblock-7": null,
                    "title-textblock-8": null
                }
            },
            "internal-publication-texts": {
                "de-ch": {
                    "apply-link": "/VacanciesIntraxData/274/Application/CheckLogin/1",
                    "contact-information": null,
                    "last-publication-datetime": null,
                    "publication-customer-defined-list-1": [
                        "1007006"
                    ],
                    "publication-customer-defined-list-2": null,
                    "short-description": "Damit wir nicht nur unseren, sondern auch den Erfolg unserer Kunden sicherstellen können, suchen wir dich als Client Manager:in / CRM ",
                    "textblock-1": "Seit dem Jahr 2000 gilt Umantis als Pionier für webbasierte  Talentmanagement-Lösungen. Rund 90 Mitarbeitende sorgen an den  Standorten St.Gallen & Freiburg dafür, dass die Abacus Umantis AG  durch digitalisierte Prozesse und Betreuungskonzepte ihren Kundinnen und  Kunden Mehrwert bringt. Seit Sommer 2023 ist Umantis teil der Abacus  Gruppe.<br><br>Für unser CRM-Team sind wir auf der Suche nach einer/einem <br>",
                    "textblock-2": "<ul><li>Du bist zentrale:r Ansprech­partner:in für Bestandskunden im DACH Raum bei Anfragen zu unserem Produkt und übernimmst die entsprechende E-Mail-Korrespondenz</li><li>Du suchst proaktiv den telefonischen Kontakt zu Deinen Kunden und entwickelst Lösungen für ihre aktuellen Bedarfe oder jene Themen</li><li>Intensive und zielgerichtete Betreuung von Bestandskunden, indem Du diese für unsere Software begeisterst</li><li>Schnelle und lösungsorientierte Beantwortung von Kundenanfragen – ob im direkten Gespräch, am Telefon oder per E-Mail.</li><li>Du ergreifst gezielte Maßnahmen zur Erschließung neuer Kundenpotenziale.
 </li><li>Eigenständige Abwicklung der Kundenanfragen, gewissenhafte Dokumentation und Weiterleitung an den entsprechenden Teilbereich (Vertrieb, technischer Support, Consulting…)</li><li>Du arbeitest eng mit Schnittstellen in Support und Consulting zusammen</li><li>Neben der Pflege und Bearbeitung von Kundendaten gehören weitere BackOffice-Tätigkeiten zu den täglichen Aufgaben</li></ul>",
                    "textblock-3": "<ul><li>Du bist selbstorganisiert und verfügst über erste Berufserfahrung in gleicher oder ähnlich starker kundenorientierter Funktion</li><li>Du bringst Leidenschaft für Vertriebsaufgaben mit</li><li>Du bist IT-affin, bringst gute analytische Fähigkeiten mit und schaffst es dich schnell in neue Software einzuarbeiten</li><li>Du bist      kommunikationsstark und hast ein sicheres Auftreten nach innen und aussen</li><li>Außerdem zeichnet dich deine proaktive und lösungsorientierte Arbeitsweise aus</li><li>Auf  sich verändernde Situationen kannst du dich flexibel einstellen und  bleibst in einem anspruchsvollen Arbeitsalltag fokussiert.</li><li>Dir gelingt es      leicht vertrauensvolle Beziehungen aufzubauen (sowohl intern als auch zum      Kunden)</li><li>Ein Know-how in HR- und/oder Recruiting-Prozessen sind von Vorteil</li><li>Dein Profil rundest du mit sehr guten Englisch Kenntnissen ab</li></ul>",
                    "textblock-4": "Wir glauben daran, dass wir genau dort am besten arbeiten können, wo  wir uns am wohlsten fühlen. Deshalb bieten wir dir ein hybrides  Arbeitsmodell mit flexiblen Arbeitszeiten, welches die Vorteile aus  mobiler, ortsunabhängiger Arbeit und persönlichem Austausch vor Ort  vereint. Ausserdem erwartet dich folgendes:<br><br><ul><li>Viel kreativer Freiraum mit entsprechender unternehmerischer Verantwortung</li><li>Moderne  Soft- und Hardware, top ausgestattete Arbeitsplätze und die Möglichkeit onsite und remote zu arbeiten – so, dass produktivem Arbeiten nichts im  Wege steht.</li><li>Umfangreiche Benefits von Events über Sport- und  Gesundheitsangebote bis zur gesunden Work-Life-Balance (6 Wochen Ferien,  Workation, Gratis Bahncard 25 Abo, kostenloser Kaffee/Obst & Müsli,  Teamevents uvm.)</li><li>Viele Weiterentwicklungsmöglichkeiten (on- & off the job)</li></ul>",
                    "textblock-5": "Hast du Interesse, in einem hoch motivierten Team zu arbeiten, wo  die Kultur geprägt ist von Verantwortung, Freiraum und einem  Miteinander? Dann bewirb dich jetzt! Wir freuen uns, dich  kennenzulernen!",
                    "textblock-6": null,
                    "textblock-7": null,
                    "textblock-8": null,
                    "title": "Client Manager:in / CRM Kundenbetreuer:in",
                    "title-textblock-1": "80 - 100%",
                    "title-textblock-2": "Das erwartet dich",
                    "title-textblock-3": "Das bringst du mit",
                    "title-textblock-4": "Das bieten wir dir",
                    "title-textblock-5": null,
                    "title-textblock-6": null,
                    "title-textblock-7": null,
                    "title-textblock-8": null
                },
                "en-us": {
                    "apply-link": "/VacanciesIntraxData/274/Application/CheckLogin/2",
                    "contact-information": null,
                    "last-publication-datetime": null,
                    "publication-customer-defined-list-1": null,
                    "publication-customer-defined-list-2": null,
                    "short-description": null,
                    "textblock-1": null,
                    "textblock-2": null,
                    "textblock-3": null,
                    "textblock-4": null,
                    "textblock-5": null,
                    "textblock-6": null,
                    "textblock-7": null,
                    "textblock-8": null,
                    "title": null,
                    "title-textblock-1": null,
                    "title-textblock-2": null,
                    "title-textblock-3": null,
                    "title-textblock-4": null,
                    "title-textblock-5": null,
                    "title-textblock-6": null,
                    "title-textblock-7": null,
                    "title-textblock-8": null
                }
            },
            "published-on-external-website": {
                "de-ch": true,
                "en-us": false
            },
            "published-on-internal-website": {
                "de-ch": false,
                "en-us": false
            },
            "published-on-platforms": null,
            "reference-number": "274"
        },
        "id": "274",
        "links": {
            "self": "/api/v1/position-publications/274"
        },
        "relationships": {
            "branch-office": {
                "data": {
                    "id": "22",
                    "type": "branch-offices"
                },
                "links": {
                    "related": "/api/v1/branch-offices/22",
                    "self": "/api/v1/position-publications/274/relationships/branch-office"
                }
            },
            "hr-manager": {
                "data": {
                    "id": "798",
                    "type": "persons"
                },
                "links": {
                    "related": "/api/v1/persons/798",
                    "self": "/api/v1/position-publications/274/relationships/hr-manager"
                }
            },
            "manager": null
        },
        "type": "position-publications"
    },
    "jsonapi": {
        "version": "1.0"
    },
    "links": {
        "self": "/api/v1/position-publications/274"
   }
}

Fragen (Bewerbungsprozess)

Auf einer Stelle können zusätzlich zu den Ausschreibungsinhalten auch Fragen hinterlegt werden, die ein potentieller Bewerber während des Bewerbungsprozesses beantworten muss. Sofern das Bewerbungsformular des umantis Bewerbermanagements nicht verwendet wird, müssen die Antworten auf diese Frage bei Erstellung einer neuen Bewerbung ebenfalls über die API übermittelt werden.

Es gibt die folgenden Arten von Fragen:

  • Freitextfragen (QuestionType_Freetext) - hier besteht die Antwortmöglichkeit aus einem Freitextfeld, in das der Bewerber seine Antwort eintragen kann
  • Single-Choice-Fragen (QuestionType_GivenSingleText) - hier wird eine Liste von Antwortmöglichkeiten angezeigt, von denen der Bewerber eine Antwort auswählen kann.
  • Multiple-Choice-Fragen (QuestionType_GivenMultipleText) - hier wird ebenfalls eine Liste von Antwortmöglichkeiten angezeigt, der Bewerber kann mehrere Antworten wählen

Fragen können als Pflichtfragen (mandatory) definiert sein, wenn sie nicht beantwortet werden, kann der Bewerbungsprozess nicht abgeschlossen werden.

Fragen können in denselben Sprachen hinterlegt werden, die auch für die Ausschreibungsinhalte zur Verfügung stehen. Für Single- und Multiple-Choice-Fragen können bis zu 20 Antwortoptionen erfasst werden, sowie die mit einer Antwort erreichten Punkte.

Beispiel Fragen zur Stelle auslesen
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location 'https://recruitingapp-<TenantID>.umantis.com/api/v1/position-publications/274' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>'

Response (gekürzt):
{
   "data": {
       "attributes": {
           "application-questions": {
               "de-ch": [
                   {
                       "answer-1": "weniger als 1 Jahr",
                       "answer-1-points": "QuestionScore_Score1",
                       "answer-10": null,
                       "answer-10-points": null,
                       "answer-11": null,
                       "answer-11-points": null,
                       "answer-12": null,
                       "answer-12-points": null,
                       "answer-13": null,
                       "answer-13-points": null,
                       "answer-14": null,
                       "answer-14-points": null,
                       "answer-15": null,
                       "answer-15-points": null,
                       "answer-16": null,
                       "answer-16-points": null,
                       "answer-17": null,
                       "answer-17-points": null,
                       "answer-18": null,
                       "answer-18-points": null,
                       "answer-19": null,
                       "answer-19-points": null,
                       "answer-2": "1-3 Jahre",
                       "answer-2-points": "QuestionScore_Score2",
                       "answer-20": null,
                       "answer-20-points": null,
                       "answer-3": "3-5 Jahre",
                       "answer-3-points": "QuestionScore_Score3",
                       "answer-4": "mehr als 5 Jahre",
                       "answer-4-points": "QuestionScore_Score4",
                       "answer-5": null,
                       "answer-5-points": null,
                       "answer-6": null,
                       "answer-6-points": null,
                       "answer-7": null,
                       "answer-7-points": null,
                       "answer-8": null,
                       "answer-8-points": null,
                       "answer-9": null,
                       "answer-9-points": null,
                       "answering-type": "QuestionType_GivenSingleText",
                       "knock-out": false,
                       "mandatory": true,
                       "order": 1,
                       "question": "Wie viele Jahre Berufserfahrung haben Sie in diesem Bereich?",
                       "question-helptext": null,
                       "question-id": 465
                   },
                   {
                       "answer-1": "Deutsch",
                       "answer-1-points": "QuestionScore_Score1",
                       "answer-10": null,
                       "answer-10-points": null,
                       "answer-11": null,
                       "answer-11-points": null,
                       "answer-12": null,
                       "answer-12-points": null,
                       "answer-13": null,
                       "answer-13-points": null,
                       "answer-14": null,
                       "answer-14-points": null,
                       "answer-15": null,
                       "answer-15-points": null,
                       "answer-16": null,
                       "answer-16-points": null,
                       "answer-17": null,
                       "answer-17-points": null,
                       "answer-18": null,
                       "answer-18-points": null,
                       "answer-19": null,
                       "answer-19-points": null,
                       "answer-2": "Englisch",
                       "answer-2-points": "QuestionScore_Score1",
                       "answer-20": null,
                       "answer-20-points": null,
                       "answer-3": "Französisch",
                       "answer-3-points": "QuestionScore_Score1",
                       "answer-4": "Spanisch",
                       "answer-4-points": "QuestionScore_Score1",
                       "answer-5": "Italienisch",
                       "answer-5-points": "QuestionScore_Score1",
                       "answer-6": null,
                       "answer-6-points": null,
                       "answer-7": null,
                       "answer-7-points": null,
                       "answer-8": null,
                       "answer-8-points": null,
                       "answer-9": null,
                       "answer-9-points": null,
                       "answering-type": "QuestionType_GivenMultipleText",
                       "knock-out": false,
                       "mandatory": false,
                       "order": 2,
                       "question": "Welche Sprachen sprechen Sie?",
                       "question-helptext": "Bitte wählen Sie nur Sprachen, in denen Sie mindestens das Level B2 haben.",
                       "question-id": 466
                   },
                   {
                       "answer-1": null,
                       "answer-1-points": null,
                       "answer-10": null,
                       "answer-10-points": null,
                       "answer-11": null,
                       "answer-11-points": null,
                       "answer-12": null,
                       "answer-12-points": null,
                       "answer-13": null,
                       "answer-13-points": null,
                       "answer-14": null,
                       "answer-14-points": null,
                       "answer-15": null,
                       "answer-15-points": null,
                       "answer-16": null,
                       "answer-16-points": null,
                       "answer-17": null,
                       "answer-17-points": null,
                       "answer-18": null,
                       "answer-18-points": null,
                       "answer-19": null,
                       "answer-19-points": null,
                       "answer-2": null,
                       "answer-2-points": null,
                       "answer-20": null,
                       "answer-20-points": null,
                       "answer-3": null,
                       "answer-3-points": null,
                       "answer-4": null,
                       "answer-4-points": null,
                       "answer-5": null,
                       "answer-5-points": null,
                       "answer-6": null,
                       "answer-6-points": null,
                       "answer-7": null,
                       "answer-7-points": null,
                       "answer-8": null,
                       "answer-8-points": null,
                       "answer-9": null,
                       "answer-9-points": null,
                       "answering-type": "QuestionType_Freetext",
                       "knock-out": false,
                       "mandatory": true,
                       "order": 3,
                       "question": "Wann ist Ihr frühester Eintrittstermin?",
                       "question-helptext": null,
                       "question-id": 468
                   }
               ],
               "en-us": [
                   {
                       "answer-1": "less than one year",
                       "answer-1-points": "QuestionScore_Score1",
                       "answer-10": null,
                       "answer-10-points": null,
                       "answer-11": null,
                       "answer-11-points": null,
                       "answer-12": null,
                       "answer-12-points": null,
                       "answer-13": null,
                       "answer-13-points": null,
                       "answer-14": null,
                       "answer-14-points": null,
                       "answer-15": null,
                       "answer-15-points": null,
                       "answer-16": null,
                       "answer-16-points": null,
                       "answer-17": null,
                       "answer-17-points": null,
                       "answer-18": null,
                       "answer-18-points": null,
                       "answer-19": null,
                       "answer-19-points": null,
                       "answer-2": "1-3 years",
                       "answer-2-points": "QuestionScore_Score2",
                       "answer-20": null,
                       "answer-20-points": null,
                       "answer-3": "3-5 years",
                       "answer-3-points": "QuestionScore_Score3",
                       "answer-4": "more than 5 years",
                       "answer-4-points": "QuestionScore_Score4",
                       "answer-5": null,
                       "answer-5-points": null,
                       "answer-6": null,
                       "answer-6-points": null,
                       "answer-7": null,
                       "answer-7-points": null,
                       "answer-8": null,
                       "answer-8-points": null,
                       "answer-9": null,
                       "answer-9-points": null,
                       "answering-type": "QuestionType_GivenSingleText",
                       "knock-out": false,
                       "mandatory": true,
                       "order": 1,
                       "question": "How many years of experience do you have in this area?",
                       "question-helptext": null,
                       "question-id": 465
                   },
                   {
                       "answer-1": "German",
                       "answer-1-points": "QuestionScore_Score1",
                       "answer-10": null,
                       "answer-10-points": null,
                       "answer-11": null,
                       "answer-11-points": null,
                       "answer-12": null,
                       "answer-12-points": null,
                       "answer-13": null,
                       "answer-13-points": null,
                       "answer-14": null,
                       "answer-14-points": null,
                       "answer-15": null,
                       "answer-15-points": null,
                       "answer-16": null,
                       "answer-16-points": null,
                       "answer-17": null,
                       "answer-17-points": null,
                       "answer-18": null,
                       "answer-18-points": null,
                       "answer-19": null,
                       "answer-19-points": null,
                       "answer-2": "English",
                       "answer-2-points": "QuestionScore_Score1",
                       "answer-20": null,
                       "answer-20-points": null,
                       "answer-3": "French",
                       "answer-3-points": "QuestionScore_Score1",
                       "answer-4": "Spanish",
                       "answer-4-points": "QuestionScore_Score1",
                       "answer-5": "Italian",
                       "answer-5-points": "QuestionScore_Score1",
                       "answer-6": null,
                       "answer-6-points": null,
                       "answer-7": null,
                       "answer-7-points": null,
                       "answer-8": null,
                       "answer-8-points": null,
                       "answer-9": null,
                       "answer-9-points": null,
                       "answering-type": "QuestionType_GivenMultipleText",
                       "knock-out": false,
                       "mandatory": false,
                       "order": 2,
                       "question": "Which languages do you speak?",
                       "question-helptext": "Please list only languages where you have a level of at least B2.",
                       "question-id": 466
                   },
                   {
                       "answer-1": null,
                       "answer-1-points": null,
                       "answer-10": null,
                       "answer-10-points": null,
                       "answer-11": null,
                       "answer-11-points": null,
                       "answer-12": null,
                       "answer-12-points": null,
                       "answer-13": null,
                       "answer-13-points": null,
                       "answer-14": null,
                       "answer-14-points": null,
                       "answer-15": null,
                       "answer-15-points": null,
                       "answer-16": null,
                       "answer-16-points": null,
                       "answer-17": null,
                       "answer-17-points": null,
                       "answer-18": null,
                       "answer-18-points": null,
                       "answer-19": null,
                       "answer-19-points": null,
                       "answer-2": null,
                       "answer-2-points": null,
                       "answer-20": null,
                       "answer-20-points": null,
                       "answer-3": null,
                       "answer-3-points": null,
                       "answer-4": null,
                       "answer-4-points": null,
                       "answer-5": null,
                       "answer-5-points": null,
                       "answer-6": null,
                       "answer-6-points": null,
                       "answer-7": null,
                       "answer-7-points": null,
                       "answer-8": null,
                       "answer-8-points": null,
                       "answer-9": null,
                       "answer-9-points": null,
                       "answering-type": "QuestionType_Freetext",
                       "knock-out": false,
                       "mandatory": true,
                       "order": 3,
                       "question": "What is your earliest entry date?",
                       "question-helptext": null,
                       "question-id": 468
                   }
               ]
           },
...
       "type": "position-publications"
   },
   "jsonapi": {
       "version": "1.0"
   },
   "links": {
       "self": "/api/v1/position-publications/274"
   }
}


Beispiel neue Bewerbung mit Beantwortung Fragen
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
curl --location 'https://recruitingapp-<TenantID>.umantis.com/api/v1/applications' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token> \
--header 'Content-Type: application/vnd.api+json' \
--data '{
   "data": {
       "type": "applications",
       "attributes": {
           "application-questions-language": "de-ch",
           "application-questions": [
               {
                   "answer-freetext": "01. April 2025",
                   "question-id": 468
               },
               {
                   "answer-1-chosen": false,
                   "answer-2-chosen": true,
                   "answer-3-chosen": true,
                   "answer-4-chosen": false,
                   "answer-5-chosen": true,
                   "question-id": 466
               },
                               {
                   "answer-2-chosen": true,
                   "question-id": 465
               }
           ],
           "privacy-policy-accepted": true
       },
       "relationships": {
           "applicant": {
               "data": {
                   "id": "825",
                   "type": "persons"
               }
           },
           "position": {
               "data": {
                   "id": "274",
                   "type": "positions"
               }
           }
       }
   }
}



Bewerbungsformular
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.

Bewerbungsformular

Sofern das Standard-Bewerbungsformular des Umantis Bewerbermanagements ersetzt werden soll, müssen die vom Bewerber auszufüllenden Felder gelesen werden.

Feldsichtbarkeit (/fields-settings)

Über den Endpunkt /fields-settings kann die Sichtbarkeit von Feldern auf dem Bewerbungsformular abgefragt werden, d.h. ob dieses Feld durch den Kunden als verfügbar definiert wurde, oder nicht. Dabei ist zu beachten, dass es unterschiedliche Formulare mit ggfs. unterschiedlichen Feldeinstellungen gibt, für Bewerber ohne Bewerberkonto und Bewerber, für die bereits ein Bewerberkonto existiert (siehe Kapitel Bewerbungen). Über den Parameter app-urls kann definiert werden, welches Formular abgefragt werden soll.

  • Formular für Bewerber ohne Konto (externer Stellenmarkt): /Vacancies/ID/Application/New/ID
  • Formular für Bewerber mit existierendem Personenkonto (externer Stellenmarkt): /Vacancies/ID/FurtherApplication/ID

Zusätzlich steuert die Zuordnung einer Stelle zur Niederlassung, welche Felder im Bewerbungsformular zur Verfügung stehen. Daher muss bei der Abfrage des Endpunkts der Parameter "branch-office-id" mit der ID Niederlassung übergeben werden, der die Stelle zugeordnet ist auf die die Bewerbung erfolgen soll.

Folgende Informationen können je Feld übergeben werden:

  • "enabled": true/false - Definiert, ob das Feld über die Niederlassungseinstellungen für Stellen dieser Niederlassung aktiv ist. Nur Felder die "enabled": true übergeben, werden auf dem Bewerbungsformular für den Bewerber angezeigt.
  • "hidden": true/false - Definiert, ob das Feld über die Ansichtseinstellungen grundsätzlich sichtbar sein kann (zusätzlich abhängig von den Niederlassungseinstellungen, "enabled"). Sofern das Feld "hidden": true übergibt, wird das Feld nicht angezeigt, die Information "enabled" spielt dann keine Rolle mehr. Wird "hidden": false übergeben, definiert die Information "enabled" ob das Feld angezeigt wird oder nicht.
  • "data-type" - Definiert den Datentyp eines Felds, beispielsweise 'string', 'array'
  • "data-format" - Definiert das Format eines Felds, beispielsweise 'date', 'dynamic-list'
  • "default-label" - die Umantis Original-Feldbezeichnung des Felds in den verfügbaren Sprachen (Felder können je Kunde individuell umbenannt werden siehe "label")
  • "default-help-text" - der Umantis Original-Hilfetext des Felds (Hilfetexte können je Kunde individuell umbenannt werden siehe "help-text")
  • "label" - kundenindividuelle Umbenennung des Felds. Wenn ein Kunde ein Feld umbenannt hat, hat dies Vorrang vor der Umantis Original-Feldbezeichnung.
  • "help-text" - kundenindividuelle Umbenennung des Felds. Wenn ein Kunde ein Feld umbenannt hat, hat dies Vorrang vor dem Umantis Original-Hilfetext.
  • "order" - Reihenfolge des Feld auf dem Bewerbungsformular
  • "static-constraints" - Standardmäßige Einschränkungen der Werte, die in diesem Feld gespeichert werden können, z.B. 'removeHtmlTags' (HTML Tags werden aus Eingabe entfernt), 'errorMaxLength[1000]' (maximale Eingabelänge)
  • "dynamic-constraints" - kundenindividuelle Einschränkungen der Werte, die in diesem Feld gespeichert werden können, z.B. 'must' (Pflichtfeld)
  • "ui-type" - Art des Eingabefelds, z.B. 'textarea' (mehrzeiliges Textfeld), 'select' (Auswahlliste)
  • "selection-field-type" - Art der Auswahlliste, nur in Kombination mit "ui-type" = 'select', z.B. 'DropDownCWCMSL' (Multiselect Dropdown)
  • "list-entries-id" - ID der dynamischen oder statischen Auswahlliste, aus der die auswählbaren Werte stammen, z.B. 'dynamic-list-30'

Bitte beachten:
Speziell auf dem Bewerbungsformular gibt es mehrere Felder, die mehrfach vorkommen, zum Beispiel "private-address-city" . Hier ist es wichtig, über die Kombination der Felder "enabled" und "hidden" zu prüfen, welches der beiden Felder tatsächlich aktiv ist. Es sollte nie vorkommen, dass beide Felder sowohl "enabled"='true' als auch "hidden"='false' sind.

Beispiel /fields-settings
>> Klicken Sie auf "Expand" bzw. "Aufklappen", um die Inhalte zu sehen.
Request:
curl --location 'https://recruitingapp-<TenantID>.umantis.com/api/v1/fields-settings?api-endpoint=POST%20%2Fapplications&app-urls=%2FVacancies%2FID%2FApplication%2FNew%2FID&branch-office-id=22&content-languages=de-ch' \
--header 'Accept: application/vnd.api+json' \
--header 'Authorization: Bearer <Token>'

Response (gekürzt):
{
   "data": {
       "attributes": {
           "additional-comments": {
               "data-type": "string",
               "default-help-text": {
                   "de-ch": " "
               },
               "default-label": {
                   "de-ch": "Anmerkungen zur Bewerbung"
               },
               "dynamic-constraints": null,
               "enabled": true,
               "help-text": {
                   "de-ch": null
               },
               "hidden": false,
               "label": {
                   "de-ch": null
               },
               "order": 133,
               "static-constraints": [
                   "removeHtmlTags"
               ],
               "ui-type": "textarea"
           },
               "birthdate": {
                   "data-format": "date",
                   "data-type": "string",
                   "default-help-text": {
                       "de-ch": " "
                   },
                   "default-label": {
                       "de-ch": "Geburtsdatum"
                   },
                   "dynamic-constraints": null,
                   "enabled": true,
                   "help-text": {
                       "de-ch": null
                   },
                   "hidden": true,
                   "label": {
                       "de-ch": null
                   },
                   "order": 20,
                   "static-constraints": [
                       "noFutureDate"
                   ],
                   "ui-type": "date"
               },
               "civil-status": {
                   "data-format": "dynamic-list",
                   "data-type": "array",
                   "default-help-text": {
                       "de-ch": " "
                   },
                   "default-label": {
                       "de-ch": "Zivilstand"
                   },
                   "dynamic-constraints": null,
                   "enabled": true,
                   "help-text": {
                       "de-ch": null
                   },
                   "hidden": true,
                   "label": {
                       "de-ch": null
                   },
                   "list-entries-id": "dynamic-list-30",
                   "order": 52,
                   "selection-field-type": "DropDownCWCMSL",
                   "ui-type": "select"
               },
               "customer-defined-list-1": {
                   "data-format": "dynamic-list",
                   "data-type": "array",
                   "default-help-text": {
                       "de-ch": " "
                   },
                   "default-label": {
                       "de-ch": "Benutzerdefiniert Liste Stammdaten 1"
                   },
                   "dynamic-constraints": null,
                   "enabled": false,
                   "help-text": {
                       "de-ch": null
                   },
                   "hidden": true,
                   "label": {
                       "de-ch": null
                   },
                   "list-entries-id": "dynamic-list-1018",
                   "order": 39,
                   "selection-field-type": "MultiSelect",
                   "ui-type": "select"
               },
               "data-release": {
                   "data-format": "fixed-list",
                   "data-type": "string",
                   "default-help-text": {
                       "de-ch": " "
                   },
                   "default-label": {
                       "de-ch": "Datenfreigabe"
                   },
                   "dynamic-constraints": null,
                   "enabled": true,
                   "help-text": {
                       "de-ch": null
                   },
                   "hidden": false,
                   "label": {
                       "de-ch": null
                   },
                   "list-entries-id": "fixed-list-DataAgree",
                   "order": 135,
                   "selection-field-type": "RadioButton",
                   "ui-type": "radio"
               },
               "first-name": {
                   "data-type": "string",
                   "default-help-text": {
                       "de-ch": " "
                   },
                   "default-label": {
                       "de-ch": "Vorname"
                   },
                   "dynamic-constraints": null,
                   "enabled": true,
                   "help-text": {
                       "de-ch": null
                   },
                   "hidden": false,
                   "label": {
                       "de-ch": null
                   },
                   "order": 15,
                   "static-constraints": [
                       "removeHtmlTags"
                   ],
                   "ui-type": "text"
               },
               "last-name": {
                   "data-type": "string",
                   "default-help-text": {
                       "de-ch": " "
                   },
                   "default-label": {
                       "de-ch": "Nachname"
                   },
                   "dynamic-constraints": null,
                   "enabled": true,
                   "help-text": {
                       "de-ch": null
                   },
                   "hidden": false,
                   "label": {
                       "de-ch": null
                   },
                   "order": 17,
                   "static-constraints": [
                       "removeHtmlTags"
                   ],
                   "ui-type": "text"
               },
               "login-name": [
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": "Die hier angegebene E-Mail-Adresse wird als Korrespondenz-E-Mail und als Login verwendet. Bitte stellen Sie sicher, dass die E-Mail-Adresse korrekt geschrieben ist."
                       },
                       "default-label": {
                           "de-ch": "E-Mail-Adresse/Login"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": " "
                       },
                       "hidden": false,
                       "label": {
                           "de-ch": null
                       },
                       "order": 22,
                       "static-constraints": [
                           "errorEmail",
                           "errorNoSpace",
                           "errorMaxLength[250]",
                           "must",
                           "errorUniqueCheck"
                       ],
                       "ui-type": "text"
                   },
               "password": [
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": "Das Passwort muss mindestens [PasswordLength] Zeichen lang sein "
                       },
                       "default-label": {
                           "de-ch": "Passwort"
                       },
                       "dynamic-constraints": [
                           "must"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": false,
                       "label": {
                           "de-ch": null
                       },
                       "order": 24,
                       "ui-type": "password"
                   },
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": "Das Passwort muss mindestens [PasswordLength] Zeichen lang sein "
                       },
                       "default-label": {
                           "de-ch": "Passwort"
                       },
                       "dynamic-constraints": [
                           "must"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": false,
                       "label": {
                           "de-ch": null
                       },
                       "order": 25,
                       "ui-type": "password"
                   }
               ],
               "private-address-city": [
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Ort"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "order": 31,
                       "static-constraints": [
                           "errorMaxLength[1000]",
                           "removeHtmlTags"
                       ],
                       "ui-type": "text"
                   },
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Ort"
                       },
                       "dynamic-constraints": [
                           "must"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "order": 32,
                       "static-constraints": [
                           "errorMaxLength[1000]",
                           "removeHtmlTags"
                       ],
                       "ui-type": "text"
                   }
               ],
               "private-address-country": [
                   {
                       "data-format": "dynamic-list",
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Land"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "list-entries-id": "dynamic-list-22",
                       "order": 33,
                       "selection-field-type": "DropDown",
                       "ui-type": "select"
                   },
                   {
                       "data-format": "dynamic-list",
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Land"
                       },
                       "dynamic-constraints": [
                           "must"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "list-entries-id": "dynamic-list-22",
                       "order": 34,
                       "selection-field-type": "DropDown",
                       "ui-type": "select"
                   }
               ],
               "private-address-street": [
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Strasse"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "order": 27,
                       "static-constraints": [
                           "errorMaxLength[1000]",
                           "removeHtmlTags"
                       ],
                       "ui-type": "text"
                   },
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Strasse"
                       },
                       "dynamic-constraints": [
                           "must"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "order": 28,
                       "static-constraints": [
                           "errorMaxLength[1000]",
                           "removeHtmlTags"
                       ],
                       "ui-type": "text"
                   }
               ],
               "private-address-zip-code": [
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "PLZ"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "order": 29,
                       "static-constraints": [
                           "errorMaxLength[250]",
                           "removeHtmlTags"
                       ],
                       "ui-type": "text"
                   },
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "PLZ"
                       },
                       "dynamic-constraints": [
                           "must"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "order": 30,
                       "static-constraints": [
                           "errorMaxLength[250]",
                           "removeHtmlTags"
                       ],
                       "ui-type": "text"
                   }
               ],
               "private-email-address": [
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "E-Mail-Adresse"
                       },
                       "dynamic-constraints": [
                           "must"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "order": 35,
                       "static-constraints": [
                           "errorEmail",
                           "errorMaxLength[250]"
                       ],
                       "ui-type": "text"
                   },
                   {
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "E-Mail-Adresse"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "order": 36,
                       "static-constraints": [
                           "errorEmail",
                           "errorMaxLength[250]"
                       ],
                       "ui-type": "text"
                   }
               ],
               "profile-picture": {
                   "file": {
                       "data-format": "picture-base64",
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Foto"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": false,
                       "label": {
                           "de-ch": null
                       },
                       "order": 11,
                       "ui-type": "file"
                   }
               },
               "salutation": [
                   {
                       "data-format": "fixed-list",
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Anrede"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "list-entries-id": "fixed-list-Salutation",
                       "order": 12,
                       "selection-field-type": "RadioButtonHorizontal",
                       "ui-type": "radio"
                   },
                   {
                       "data-format": "fixed-list",
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Anrede"
                       },
                       "dynamic-constraints": [
                           "must"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": false,
                       "label": {
                           "de-ch": null
                       },
                       "list-entries-id": "fixed-list-Salutation",
                       "order": 13,
                       "selection-field-type": "RadioButtonHorizontal",
                       "ui-type": "radio"
                   }
               ],
               "source-of-information": [
                   {
                       "data-format": "dynamic-list",
                       "data-type": "array",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Wie sind Sie auf uns aufmerksam geworden?"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": false,
                       "label": {
                           "de-ch": null
                       },
                       "list-entries-id": "dynamic-list-14",
                       "order": 91,
                       "selection-field-type": "DropDown",
                       "ui-type": "select"
                   },
                   {
                       "data-format": "dynamic-list",
                       "data-type": "array",
                       "default-help-text": {
                           "de-ch": " "
                       },
                       "default-label": {
                           "de-ch": "Wie sind Sie auf uns aufmerksam geworden?"
                       },
                       "dynamic-constraints": [
                           "must"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "list-entries-id": "dynamic-list-14",
                       "order": 107,
                       "selection-field-type": "DropDown",
                       "ui-type": "select"
                   }
               ],
               "user-language": {
                   "data-format": "dynamic-list",
                   "data-type": "string",
                   "default-help-text": {
                       "de-ch": "Bitte geben Sie hier an, in welcher Sprache Sie die Lösung benutzen möchten."
                   },
                   "default-label": {
                       "de-ch": "Benutzersprache"
                   },
                   "dynamic-constraints": null,
                   "enabled": true,
                   "help-text": {
                       "de-ch": " "
                   },
                   "hidden": false,
                   "label": {
                       "de-ch": null
                   },
                   "list-entries-id": "dynamic-list-77",
                   "order": 38,
                   "selection-field-type": "RadioButton",
                   "ui-type": "radio"
               },
           "documents": {
               "additional-1": {
                   "file": {
                       "data-format": "document-base64",
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": "Maximal 50 MB"
                       },
                       "default-label": {
                           "de-ch": "Weitere Dokumente"
                       },
                       "dynamic-constraints": [
                           "errorMimeTypeRestriction"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": false,
                       "label": {
                           "de-ch": null
                       },
                       "order": 79,
                       "static-constraints": [
                           "errorGeneralFileSize[50]"
                       ],
                       "ui-type": "file"
                   }
               },
               "additional-10": {
                   "file": {
                       "data-format": "document-base64",
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": "Maximal 50 MB"
                       },
                       "default-label": {
                           "de-ch": "Weitere Dokumente 10"
                       },
                       "dynamic-constraints": null,
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": true,
                       "label": {
                           "de-ch": null
                       },
                       "order": 88,
                       "static-constraints": [
                           "errorGeneralFileSize[50]"
                       ],
                       "ui-type": "file"
                   }
               },
...
               "additional-2": {
                   "file": {
                       "data-format": "document-base64",
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": "Maximal 50 MB"
                       },
                       "default-label": {
                           "de-ch": "Weitere Dokumente 2"
                       },
                       "dynamic-constraints": [
                           "errorMimeTypeRestriction"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": false,
                       "label": {
                           "de-ch": null
                       },
                       "order": 80,
                       "static-constraints": [
                           "errorGeneralFileSize[50]"
                       ],
                       "ui-type": "file"
                   }
               },
               "additional-3": {
                   "file": {
                       "data-format": "document-base64",
                       "data-type": "string",
                       "default-help-text": {
                           "de-ch": "Maximal 50 MB"
                       },
                       "default-label": {
                           "de-ch": "Weitere Dokumente 3"
                       },
                       "dynamic-constraints": [
                           "errorMimeTypeRestriction"
                       ],
                       "enabled": true,
                       "help-text": {
                           "de-ch": null
                       },
                       "hidden": false,
                       "label": {
                           "de-ch": null
                       },
                       "order": 81,
                       "static-constraints": [
                           "errorGeneralFileSize[50]"
                       ],
                       "ui-type": "file"
                   }
               },
...
               "cv": {
                   "file": [
                       {
                           "data-format": "document-base64",
                           "data-type": "string",
                           "default-help-text": {
                               "de-ch": "Maximal 50 MB"
                           },
                           "default-label": {
                               "de-ch": "Lebenslauf"
                           },
                           "dynamic-constraints": [
                               "errorMimeTypeRestriction"
                           ],
                           "enabled": true,
                           "help-text": {
                               "de-ch": null
                           },
                           "hidden": false,
                           "label": {
                               "de-ch": null
                           },
                           "order": 74,
                           "static-constraints": [
                               "errorGeneralFileSize[50]"
                           ],
                           "ui-type": "file"
                       },
                       {
                           "data-format": "document-base64",
                           "data-type": "string",
                           "default-help-text": {
                               "de-ch": "Maximal 50 MB"
                           },
                           "default-label": {
                               "de-ch": "Lebenslauf"
                           },
                           "dynamic-constraints": null,
                           "enabled": true,
                           "help-text": {
                               "de-ch": null
                           },
                           "hidden": true,
                           "label": {
                               "de-ch": null
                           },
                           "order": 76,
                           "static-constraints": [
                               "errorGeneralFileSize[50]"
                           ],
                           "ui-type": "file"
                       }
                   ]
               },
               "motivation-letter": {
                   "file": [
                       {
                           "data-format": "document-base64",
                           "data-type": "string",
                           "default-help-text": {
                               "de-ch": "Maximal 50 MB"
                           },
                           "default-label": {
                               "de-ch": "Bewerbungsschreiben"
                           },
                           "dynamic-constraints": [
                               "must"
                           ],
                           "enabled": true,
                           "help-text": {
                               "de-ch": null
                           },
                           "hidden": true,
                           "label": {
                               "de-ch": null
                           },
                           "order": 73,
                           "static-constraints": [
                               "errorGeneralFileSize[50]"
                           ],
                           "ui-type": "file"
                       },
                       {
                           "data-format": "document-base64",
                           "data-type": "string",
                           "default-help-text": {
                               "de-ch": "Maximal 50 MB"
                           },
                           "default-label": {
                               "de-ch": "Bewerbungsschreiben"
                           },
                           "dynamic-constraints": [
                               "errorMimeTypeRestriction"
                           ],
                           "enabled": true,
                           "help-text": {
                               "de-ch": null
                           },
                           "hidden": false,
                           "label": {
                               "de-ch": null
                           },
                           "order": 75,
                           "static-constraints": [
                               "errorGeneralFileSize[50]"
                           ],
                           "ui-type": "file"
                       }
                   ]
               }
           },
       },
       "id": "L2FwcGxpY2F0aW9uc3wvVmFjYW5jaWVzL0lEL0FwcGxpY2F0aW9uL05ldy9JRHwyMg==",
       "type": "fields-settings"
   },
   "jsonapi": {
       "version": "1.0"
   },
   "links": {
       "self": "/api/v1/fields-settings?api-endpoint=POST+%2Fapplications&app-urls=%2FVacancies%2FID%2FApplication%2FNew%2FID&branch-office-id=22&content-languages=de-ch"
   },
   "meta": {
       "security-settings": {
           "file-type-restrictions": [
               "MimeTypeRestriction_doc",
               "MimeTypeRestriction_docx",
               "MimeTypeRestriction_odt",
               "MimeTypeRestriction_rtf",
               "MimeTypeRestriction_pptx",
               "MimeTypeRestriction_pdf",
               "MimeTypeRestriction_xls",
               "MimeTypeRestriction_xlsx",
               "MimeTypeRestriction_zip",
               "MimeTypeRestriction_jpg",
               "MimeTypeRestriction_jpeg",
               "MimeTypeRestriction_gif",
               "MimeTypeRestriction_png",
               "MimeTypeRestriction_bmp"
           ],
           "forbidden-mime-types": [
               "image/svg+xml",
               "application/x-dosexec",
               "application/x-shockwave-flash"
           ]
       }
   }
}

Verwandte Themen