Interiware

Geben Sie ein paar Buchstaben ein — z. B. « Swissdec », « QR-Rechnung », « revDSG ».

Entwickler · Kandidaten-API v1

API für den Kandidatenimport

Wie sich eine Drittsoftware mit SAM ULTIMATE verbindet, um Kandidaten anzulegen und ihre Dokumente abzulegen: Authentifizierung, Abfolge der Aufrufe und ausgetauschte Datenstrukturen.

Version 1.0.0 · OpenAPI 3.1 · Basis /external/candidate/v1OpenAPI-Spezifikation (JSON)

Zweck

Dieses Dokument beschreibt, wie sich eine Drittsoftware mit SAM ULTIMATE verbindet, um Kandidaten und ihre Dokumente zu importieren. Es stellt die Authentifizierung, die Abfolge der Aufrufe und die ausgetauschten Datenstrukturen vor.

Die Serveradressen (Authentifizierung und API) sowie Ihre Zugangsdaten werden Ihnen von Interiware separat mitgeteilt.

Anwendungsfälle aus der Praxis

Drei konkrete Wege, Ihren Kandidatenpool ohne Neuerfassung zu speisen. In jedem Fall landen Kandidat und Lebenslauf in Sekunden in SAM ULTIMATE, und der Lebenslauf wird von der künstlichen Intelligenz analysiert, wenn die Option CV-Analyse aktiv ist.

Fall 1

Die Kandidatin bewirbt sich über Ihre Karriereseite

Ihre Website bietet eine Spontanbewerbung oder die Antwort auf ein Inserat an, mit Upload des Lebenslaufs.

  1. Die Kandidatin füllt das Formular aus und lädt ihren Lebenslauf auf Ihrer Website hoch.

  2. Ihre Website legt das Kandidatendossier an: Identität, Kontaktdaten, Beruf aus der Berufsliste.

    POST /external/candidate/v1
  3. Sie hängt den Lebenslauf in der Kategorie CV an.

    POST /external/candidate/v1/{id}/documents
  4. SAM ULTIMATE analysiert den Lebenslauf und erstellt das Profil: Zusammenfassung, Kompetenzen, Erfahrungen, Ausbildungen, Sprachen mit Niveau, Fahrausweise.

  5. Das Matching nutzt alle Informationen des Lebenslaufs: Die Kandidatin erscheint bei den offenen Aufträgen mit einem Relevanzscore.

  6. Aus dem Dossier heraus stellt der Berater das Bewerbungsdossier zusammen - Profilblatt auf der Agenturvorlage, angehakte Beilagen, Notiz - und sendet es mit wenigen Klicks an die nach Beruf vorgeschlagenen Kunden.

Ergebnis : Keine Neuerfassung auf Seiten der Agentur. Die Kandidatin ist in SAM ULTIMATE sichtbar, noch bevor der Berater sein Postfach geöffnet hat, und kann den Kunden noch am selben Tag vorgeschlagen werden.

Fall 2

Sie wählen ein Profil aus Ihrem ATS oder Intranet aus

Sie sourcen in einem Drittwerkzeug: ATS, Konzern-Intranet, geteilte Talentdatenbank. Nur die ausgewählten Profile sollen nach SAM ULTIMATE gelangen.

  1. Ein Recruiter entdeckt ein Profil in Ihrem Werkzeug und klickt auf « An SAM ULTIMATE senden ».

  2. Ihr Konnektor legt den Kandidaten in der Zielverwaltung an, zugeordnet zu Niederlassung und Berater (agenceId, advisorId).

    POST /external/candidate/v1
  3. Er übermittelt den Lebenslauf und gegebenenfalls Diplome oder Zertifikate, jedes in seiner Kategorie.

    POST /external/candidate/v1/{id}/documents
  4. Der Lebenslauf landet in der CV-Datenbank und wird analysiert; das strukturierte Profil fliesst sofort ins Matching ein, das alle Informationen des Lebenslaufs nutzt.

  5. Mit wenigen Klicks geht das Kandidatendossier an alle potenziell interessierten Kunden. Danach macht der Berater weiter: Einsatz, Vertrag, Stunden, Lohn.

Ergebnis : Ihr Sourcing-Werkzeug bleibt das Schaufenster, SAM ULTIMATE bleibt das Verwaltungssystem. Die beiden widersprechen sich nie.

Fall 3

Registrierung an einer Messe oder einem Recruiting-Tag

Am Stand ersetzt ein Tablet oder ein QR-Code den Stapel Papierlebensläufe und die Tabelle vom nächsten Tag.

  1. Der Kandidat registriert sich am Tablet oder scannt den QR-Code des Stands: Name, Telefon, Beruf, Foto seines Lebenslaufs.

  2. Die Anwendung legt den Kandidaten sofort an, mit einer Importnotiz zur Messe (webimpnote).

    POST /external/candidate/v1
  3. Foto oder PDF des Lebenslaufs wird angehängt; bei einem Papierscan übernimmt die Texterkennung.

    POST /external/candidate/v1/{id}/documents
  4. Zurück in der Agentur sind alle Profile der Messe im Pool, analysiert, über die Importnotiz filterbar und mit wenigen Klicks den Kunden vorschlagbar.

Ergebnis : Eine Messe endet mit verwertbaren Profilen am selben Abend, nicht mit einer Woche Erfassung.

Authentifizierung

Die API verwendet den Standard OpenID Connect (OAuth 2.0) mit dem Client-Credentials-Flow: Ihre Software tauscht ihre Zugangsdaten gegen ein Zugriffstoken und gibt dieses Token bei jedem Aufruf mit.

A. Zugriffstoken beziehen

Senden Sie eine POST-Anfrage an den Token-Endpunkt des Authentifizierungsservers, im Format application/x-www-form-urlencoded:

POST {Authentifizierungsserver}/auth/realms/SAM/protocol/openid-connect/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&client_id=YOUR_LOGIN&client_secret=YOUR_PASSWORD

Die Antwort enthält das Token im Feld access_token sowie seine Gültigkeitsdauer in Sekunden (expires_in). Fordern Sie ein neues Token an, wenn es abläuft.

B. Header bei jedem Aufruf

HeaderWert
AuthorizationBearer {access_token}
X-SUBTENANT-IDKennung der Zielverwaltung (Niederlassung), von Interiware mitgeteilt. Bei allen Aufrufen obligatorisch.

Integrationsablauf

Wir empfehlen folgende Abfolge:

  1. Verbindung testen

    Rufen Sie GET /external/candidate/v1/ping auf. Eine Antwort 200 bestätigt, dass Token und Header X-SUBTENANT-ID akzeptiert werden.

  2. Referenzwerte laden

    Holen Sie die Liste der Berufe (GET /external/candidate/v1/occupations) und, falls Sie Dokumente senden, die Liste der Kategorien (GET /external/candidate/v1/document-categories). Tun Sie das vor jedem Import: Ein Kandidat muss mindestens einen bestehenden Beruf referenzieren.

  3. Kandidat anlegen

    POST /external/candidate/v1. Die Antwort liefert den angelegten Kandidaten; bewahren Sie seine id auf.

  4. Dokumente anhängen

    Für jede Datei POST /external/candidate/v1/{id}/documents?category={code}, wobei {id} die Kennung des Kandidaten ist und {code} eine Kategorie mit parentType EMPLOYEE. Ein in der Kategorie CV abgelegtes Dokument wird wie ein direkt in SAM ULTIMATE geladener Lebenslauf analysiert, sofern die CV-Analyse für Ihre Verwaltung aktiviert ist.

Endpunkte

Die folgenden Pfade sind relativ zur Ihnen mitgeteilten API-Adresse. Klicken Sie auf einen Endpunkt, um die Details zu sehen.

GET/external/candidate/v1/pingVerbindungstest

Liefert 200, wenn Token und Header X-SUBTENANT-ID akzeptiert werden.

Parameter

NameOrtTypBeschreibung
X-SUBTENANT-ID*HeaderstringSub-tenant identifier

Antworten

CodeBeschreibungInhalt
200OK*/* · string
GET/external/candidate/v1/occupationsListe der Berufe

Berufsverzeichnis der Verwaltung. Ein Kandidat muss mindestens einen Beruf über seine id referenzieren. Bevorzugen Sie aktive Berufe.

Parameter

NameOrtTypBeschreibung
X-SUBTENANT-ID*HeaderstringSub-tenant identifier

Antworten

CodeBeschreibungInhalt
200OK*/* · Occupation[]
POST/external/candidate/v1Kandidat anlegen

Legt ein Kandidatendossier an. Die Antwort liefert den angelegten Kandidaten mit der von SAM ULTIMATE vergebenen id, die in den folgenden Aufrufen zu verwenden ist.

Parameter

NameOrtTypBeschreibung
X-SUBTENANT-ID*HeaderstringSub-tenant identifier

Anfragekörper*application/json

Typ : CandidatePflichtfelder : firstName, gender, lastName, occupationIds

Antworten

CodeBeschreibungInhalt
200OK*/* · Candidate
GET/external/candidate/v1/document-categoriesDokumentkategorien

Die Kategorien, unter denen ein Kandidatendokument abgelegt werden kann. Für einen Kandidaten ist der parentType EMPLOYEE.

Parameter

NameOrtTypBeschreibung
X-SUBTENANT-ID*HeaderstringSub-tenant identifier

Antworten

CodeBeschreibungInhalt
200OK*/* · DocumentCategory[]
POST/external/candidate/v1/{id}/documentsDokument an einen Kandidaten anhängen

Versand als multipart/form-data, Feld file. Ein Dokument der Kategorie CV wird wie ein direkt in SAM ULTIMATE geladener Lebenslauf analysiert, sofern die CV-Analyse aktiviert ist.

Parameter

NameOrtTypBeschreibung
id*PfadstringID of the candidate
category*QuerystringCode of a category from /document-categories
X-SUBTENANT-ID*HeaderstringSub-tenant identifier

Anfragekörpermultipart/form-data

FeldTypEinschränkungenBeschreibung
file*string (binary)DateiFile to upload

Antworten

CodeBeschreibungInhalt
200OK*/* · Document

Ein Kandidat wird in SAM ULTIMATE als Mitarbeitendendossier gespeichert: Die von /document-categories gelieferten Kategorien sind daher jene der Mitarbeitendendokumente (parentType = EMPLOYEE).

Datenmodelle

Die angegebenen Längen sind Maximalwerte. Mit einem Stern markierte Felder sind Pflichtfelder.

CandidateobjectPflichtfelder : firstName, gender, lastName, occupationIds
FeldTypEinschränkungenBeschreibung
idstringVon SAM ULTIMATE vergebene Kennung (bei der Erstellung zurückgegeben, nicht mitsenden).
agenceIdstringZugehörige Niederlassung (von Interiware mitgeteilte Kennung).
advisorIdstringZuständiger Berater (von Interiware mitgeteilte Kennung).
gender*enumGeschlecht.
  • FEMALE – Frau
  • MALE – Mann
firstName*stringmax. 60 ZeichenVorname.
lastName*stringmax. 60 ZeichenName.
addressAddressPostadresse.
phonestringmax. 20 ZeichenFestnetz.
mobilestringmax. 20 ZeichenMobiltelefon.
emailstringmax. 50 Zeichen, Format: ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$|^\s*$Gültige E-Mail-Adresse.
avsNumberstringmax. 16 ZeichenAHV-Nummer, Format 756.XXXX.XXXX.XX.
nationalitystringmax. 3 ZeichenNationalität, ISO-Ländercode (z. B. CH).
birthDatestring (date)Datum (JJJJ-MM-TT)Geburtsdatum.
birthPlacestringmax. 30 ZeichenGeburtsort.
workPermitTypeenumArt der Arbeitsbewilligung.
  • SHORT_TERM_L – Ausweis L – Kurzaufenthalt
  • ANNUAL_B – Ausweis B – Aufenthalt
  • SETTLED_C – Ausweis C – Niederlassung
  • CROSS_BORDER_G – Ausweis G – Grenzgänger
  • ASYLUM_SEEKER_N – Ausweis N – Asylsuchende
  • NEED_FOR_PROTECTION_S – Ausweis S – Schutzbedürftige
  • NOTIFICATION_PROCEDURE_FOR_SHORTTERM_WORK_90_DAYS – Meldeverfahren – 90 Tage
  • NOTIFICATION_PROCEDURE_FOR_SHORTTERM_WORK_120_DAYS – Meldeverfahren – 120 Tage
  • PROVISIONALLY_ADMITTED_FOREIGNERS_F – Ausweis F – vorläufig Aufgenommene
  • RESIDENT_FOREIGN_NATIONAL_WITH_GAINFUL_EMPLOYMENT_CI – Ausweis Ci – Erwerbstätigkeit
  • OTHERS_NOT_SWISS – Andere (nicht Schweizer)
partnerNationalitystringmax. 3 ZeichenNationalität des Partners, ISO-Ländercode.
partnerWorksInCHbooleanDer Partner arbeitet in der Schweiz.
numberOfChildreninteger (int32)GanzzahlAnzahl Kinder.
primaryMotherTonguestringErste Muttersprache (von Interiware mitgeteilter Sprachcode).
secondaryMotherTonguestringZweite Muttersprache (gleiches Verzeichnis).
ownsCarbooleanBesitzt ein Auto.
ownsMotorbikebooleanBesitzt ein Motorrad.
ownsBicyclebooleanBesitzt ein Fahrrad.
hasCarLicensebooleanFührerausweis Auto.
hasMotorbikeLicensebooleanFührerausweis Motorrad.
hasHeavyVehicleLicensebooleanFührerausweis Lastwagen.
hasTrailerLicensebooleanFührerausweis Anhänger.
hasConstructionMachineLicensebooleanFührerausweis Baumaschinen.
commentstringFreier Kommentar.
evaluationCommentstringBeurteilungskommentar.
webimpnotestringImportnotiz.
occupationIds*string[]mindestens 1 ElementBerufskennungen aus /occupations.
AddressobjectKeine Pflichtfelder
FeldTypEinschränkungenBeschreibung
line1stringmax. 50 ZeichenAdresszeile 1.
line2stringmax. 50 ZeichenAdresszeile 2.
line3stringmax. 50 ZeichenAdresszeile 3.
postalCodestringmax. 8 ZeichenPostleitzahl.
citystringmax. 30 ZeichenOrt.
countrystringmax. 3 ZeichenLand, ISO-Code (z. B. CH).
OccupationobjectKeine Pflichtfelder
FeldTypEinschränkungenBeschreibung
idstringKennung, die in occupationIds zu übernehmen ist.
nameFrstringBezeichnung auf Französisch.
nameDestringBezeichnung auf Deutsch.
activebooleanAktiver Beruf. Bevorzugen Sie aktive Berufe.
suvaMappedbooleanBeruf der SUVA-Nomenklatur zugeordnet.
DocumentCategoryobjectKeine Pflichtfelder
FeldTypEinschränkungenBeschreibung
codestringCode, der im Parameter category des Uploads zu übergeben ist.
parentTypeenumBetroffener Entitätstyp. Für einen Kandidaten: EMPLOYEE.
  • EMPLOYEE – Mitarbeitende (Kandidat)
  • MISSION
  • SALARIED_EMPLOYEE
  • CLIENT
  • DEBTOR
  • BOOKING
  • PERMANENT_ASSIGNMENT
  • TEMPORARY_ASSIGNMENT
  • CCT
  • BANK_TRANSFER_ORDER
  • WORK_REPORT
descriptionstringBezeichnung der Kategorie.
DocumentobjectKeine Pflichtfelder
FeldTypEinschränkungenBeschreibung
idstringKennung des Dokuments.
lastModifiedBystringUrheber der letzten Änderung.
dateTrackstring (date-time)Datum und Uhrzeit (ISO 8601)Datum der letzten Änderung.
deletedbooleanDokument gelöscht.
entityTypeenumEntität, an die das Dokument angehängt ist (EMPLOYEE für einen Kandidaten).
  • EMPLOYEE – Mitarbeitende (Kandidat)
  • MISSION
  • SALARIED_EMPLOYEE
  • CLIENT
  • DEBTOR
  • BOOKING
  • PERMANENT_ASSIGNMENT
  • TEMPORARY_ASSIGNMENT
  • CCT
  • BANK_TRANSFER_ORDER
  • WORK_REPORT
entityIdstringKennung dieser Entität (id des Kandidaten).
categoryCodestringKategorie des Dokuments.
descriptionstringBeschreibung.
fileNamestringDateiname.
contentTypestringMIME-Typ der Datei.
documentIdstringKennung der gespeicherten Datei.

Beispiel: Kandidat anlegen

Realistische Minimalanfrage: Identität, Kontaktdaten, Adresse und mindestens ein Beruf.

POST /external/candidate/v1
Authorization: Bearer {access_token}
X-SUBTENANT-ID: {Verwaltungskennung}
Content-Type: application/json

{
  "gender": "FEMALE",
  "firstName": "Anna",
  "lastName": "Beispiel",
  "email": "anna.beispiel@example.com",
  "mobile": "+41 79 000 00 00",
  "birthDate": "1990-05-14",
  "nationality": "CH",
  "address": {
    "line1": "Beispielstrasse 1",
    "postalCode": "8000",
    "city": "Zürich",
    "country": "CH"
  },
  "occupationIds": ["{id aus /occupations}"]
}

Interaktive Dokumentation und Support

Die Swagger-Oberfläche der Kandidaten-API enthält alle diese Informationen und erlaubt das Testen der Aufrufe. Ihre Adresse wird Ihnen mit Ihren Zugangsdaten mitgeteilt.

Bei technischen Fragen schreiben Sie an support@interiware.com.

OpenAPI-Spezifikation herunterladen (JSON)