Zum Hauptinhalt springen
Selbstimport mittels API

Wie man einen Datenimport in Teamtailor über die öffentliche API durchführt

Stefan avatar
Verfasst von Stefan
Vor über 2 Monaten aktualisiert

1a. Ist das möglich?

Es ist sicherlich möglich, einen Import selbst durchzuführen, je nachdem, welches technische Verständnis beim Kunden zur Verfügung steht und wie geduldig er dabei vorgeht.

Dies würde so funktionieren, dass ein interner Mitarbeiter ein Skript schreibt, welches Daten aus der vorhandenen Datenbank nimmt, in ein Teamtailor-kompatibles Format umwandelt und es dann an uns senden kann. Dies kann entweder geschehen, indem die Daten aus der bestehenden Datenbank des Kunden über die API oder durch ein Dokument exportiert werden.

Im Grunde ist das Einzige das zählt, dass Personen daran arbeiten, die die Daten und API verstehen.

1b. Soll ich es machen?

Das ist eine schwierigere Frage – es gibt viele Vor- und Nachteile dabei. Normalerweise wäre es eher für größere Unternehmen ratsam, die über mehr Ressourcen verfügen, um dies zu tun, und auch einen größeren Bedarf an einer schnelleren Lösung haben.

Vorteile

  • Kann nach eigenem Zeitplan erledigt werden

  • Du kannst selbst entscheiden, welche Attribute und Parameter importiert werden und wie sie aussehen sollen

  • Es ist komplett kostenlos

  • Wir können Unterstützung dabei anbieten, wie das funktionieren könnte

Nachteile

  • Erfordert das Schreiben eines im Grunde einzigartigen Skripts, das Informationen aus einer Quelle in ein von Teamtailor akzeptiertes Format umwandeln kann

  • Die öffentliche API hat eine Begrenzung – 50 Anfragen alle 10 Sekunden, was bedeutet, dass das Importieren einer großen Datenbank viel Zeit in Anspruch nehmen könnte

  • Erfordert ein gutes Verständnis dafür, wie die Daten und APIs funktionieren

2. Der Prozess

  1. Verständnis der Daten von Teamtailor

  2. Verständnis der öffentlichen API von Teamtailor

  3. Das Schreiben des Skripts

Teamtailor hat ein relationales Datenmodell, was bedeutet, dass Objekte Attribute haben können, die einzigartig für sie sind, und Beziehungen zu anderen Objekten, die es nicht sind. Diese Beziehungen sind entscheidend, um zu verstehen, wie Teamtailor funktioniert.

Werfen wir einen Blick auf das Job Application-model in unserer API-Dokumentation als Beispiel

Wie du sehen kannst, hat es Attribute und Beziehungen.

Attribute enthalten Daten, die einzigartig für diese spezifische Stellenbewerbung sind – wann sie erstellt wurde, ob die den Status "rekrutiert" hat, und so weiter.

Beziehungen enthalten Daten, die nicht einzigartig für diese Jobbewerbung sind, sondern auch unabhängig von ihr existieren. Beispielsweise hat jede Bewerbung eine Kandidat- und Stellen-Beziehung.

Diese werden genutzt, um besser zu verstehen, wer diese Bewerbung erstellt hat und für welche Position sie erstellt wurde.

Dies kann hilfreich sein weil, wenn es Änderungen am Kandidaten oder der Stelle gibt, die Bewerbung immer noch funktionieren wird, da sie nur einen Link dazu hat. Sie ist nicht direkt betroffen von Änderungen an den andern beiden. Dies bedeutet aber auch, dass das Erstellen von bestimmten Objekten in Teamtailor, mehr als einen Request erfordern kann.

Bewerberobjekt

Meistens werden Importe durchgeführt, um Kandidaten zu importieren, daher ist es wichtig zu verstehen, wie das Kandidatenobjekt funktioniert und welche Daten als Attribute des Objekts oder als Beziehungen hinzugefügt werden können.

Wie bereits erwähnt, wird ein Kandidatenobjekt eine Beziehung zu einer Bewerbung haben, wenn es zuvor eine Bewerbung gegeben hat, aber es gibt noch viele weitere solcher Beziehungen. Immerhin ist das Kandidatenobjekt das wichtigste Objekt in der Plattform.

Attribute

Die grundlegendsten Kandidatendaten sind hier zu finden – am wichtigsten sind der Name, die Kontaktinformationen, Einwilligungsdaten und andere Informationen, die dort aufbewahrt werden sollen.

Einige andere Daten können hier allerdings nicht gefunden werden - zum Beispiel gibt es kein Feld für 'Geschlecht' oder 'Alter'. Das liegt daran, dass Teamtailor mit einem open-ended Datenmodell arbeitet. Die Grundlagen liegen hier in den Attributen, aber zusätzliche Daten müssen entweder als benutzerdefinierte Felder oder Antworten hinzugefügt werden.

Beziehungen

Wie du anhand dieser Tabelle erkennen kannst, kann der Kandidat viele verschiedene Beziehungen haben.

Für den Import relevant:

Fragen und Antworten enthalten Daten darüber, welche Fragen der Bewerber beantwortet hat und welche Antworten gegeben wurden. Beide existieren als einzelne Objekte außerhalb des Bewerbers.

Benutzerdefinierte Feldwerte enthalten Antworten zu allen zuvor eingerichteten benutzerdefinierten Feldern. Zum Beispiel, wenn es ein benutzerdefiniertes Feld namens 'parent' gibt, dann wird der Wert des Bewerbers 'Yes' oder 'No' sagen. Das benutzerdefinierte Feld wird genauso verwendet, aber der Wert wird einzigartig für den Kandidaten sein. Der benutzerdefinierte Feldwert (Ja oder Nein) wird sich auf den Kandidaten und das benutzerdefinierte Feld (Geschlecht) beziehen.

Notizen (Kommentare) können beliebige Freitextinformationen enthalten, die der Recruiter eingetragen hat und können auch über die API hinzugefügt werden. Das kann auch Informationen enthalten, die sonst nirgends passen, zum Beispiel ein Lebenslauf-Transkript.

Für den Import nicht relevant:

Activities enthalten Informationen zu jeder Aktion, die in Verbindung mit dem Kandidaten durchgeführt wurde.

Uploads enthalten alle zusätzlichen Dokumente, die der Bewerber hochgeladen hat.

Partner results enthalten alle Daten, die wir von anderen Integrationen erhalten, die ihr möglicherweise verwendet, zum Beispiel Testergebnisse von Assessment Tests.

Department, role, regions und locations enthalten verschiedene Daten, wohin der Bewerber sich bewirbt - diese werden automatisch von jedem Job, auf den sie sich beworben haben, übernommen und sind nicht direkt mit dem Standort des Bewerbers verbunden.

2. Teamtailors öffentliche API verstehen

Die öffentliche API von Teamtailor ist entsprechend der JSON:API-Spezifikation konzipiert. Das bedeutet, dass wir hauptsächlich JSON nutzen, wenn wir über die API kommunizieren. Die Dokumentation enthält bei Bedarf Beispiele und eine hilfreiche Bibliothek, die auch in Postman importiert werden kann.

Anzeigen der Daten

Wie bereits erwähnt, hat Teamtailor ein relationales Datenmodell, was bedeutet, dass viele der Objekte in Relation zueinander stehen, einschließlich Bewerber und ihrer benutzerdefinierten Feldwerte und Antworten. Da pro Request nur ein neues Objekt erstellt werden kann, erfordert dies eine bestimmte Anzahl von Anfragen für jeden Kandidaten.

Um dies zu vereinfachen, ist es möglich, einige dieser Beziehungen in der Antwort zu "öffnen", indem ein Include-Parameter hinzugefügt wird. Zum Beispiel, wenn du wissen möchtest, was die benutzerdefinierten Feldwerte für einen Kandidaten sind, kannst du in der Anfrage ?include=custom-field-values hinzufügen, was unter den Daten einen zusätzlichen Abschnitt namens included hinzufügt, der alle Daten zu den einzelnen benutzerdefinierten Feldwerten enthält, die unter dieser Beziehung gefunden wurden.

Das bedeutet auch, dass für jeden benutzerdefinierten Feldwert, jede Antwort oder jede Notiz (Kommentar), die zum Kandidaten hinzugefügt wird, eine separate Anfrage durchgeführt werden müsste.

Rate Limit

Das Limit beträgt 50 Anfragen pro 10 Sekunden, somit muss das Skript abkühlen, wenn diese Grenze erreicht wird, oder die Anfragen sollten so verteilt werden, dass diese Grenze nicht erreicht wird. Normalerweise ist es eine gute Idee, jeweils 300 ms Verzögerung zwischen den Anfragen hinzuzufügen, um zu verhindern, dass das rate Limit erreicht wird.

3. Das Skript schreiben

Hier ist der Ablauf für einen grundlegenden benutzerdefinierten Import:

  1. Post Candidate-Endpunkt - verwende dies, um einen brandneuen Kandidaten zu erstellen. Wenn es Duplikate gibt, werden sie standardmäßig zusammengeführt (wenn das Attribut "merge" auf "true" gesetzt ist). Dies sollte die grundlegenden Informationen des Kandidaten enthalten - Name, E-Mail, Telefonnummer, Bild und Lebenslauf.

  2. Wenn ein Lebenslauf erforderlich ist, musst du diesen zunächst für mindestens 30 Sekunden auf einem öffentlichen Server hochladen und dann die URL als Lebenslauf angeben. Wir werden die Lebenslaufdatei innerhalb dieser 30 Sekunden hochladen, damit du sie anschließend entfernen kannst.

  3. Post Custom-field-value endpoint - benutze dies, um benutzerdefinierte Felddaten zum Kandidaten hinzuzufügen. Du benötigst die Kandidaten-ID und die benutzerdefinierte Feld-ID, bevor du dies tust. Benutzerdefinierte Felder können über ihren eigenen Endpoint erstellt oder zur Plattform hinzugefügt werden, je nachdem, was einfacher ist.

  4. Post Answer endpoint - verwende dies, um Antworten zum Kandidatenprofil hinzuzufügen. Antworten können auch eine Beziehung zu einem Job haben, wenn die Frage spezifisch für diesen Job ist. Antworten sind ähnlich wie benutzerdefinierte Felddaten, sie sind jedoch dazu gedacht, dass der Kandidat sie während der Bewerbung selbst ausfüllt, anstatt dass der Recruiter sie eingibt.

  5. Notes (Comments) endpoint - benutze dies, wenn du eine große Menge an Daten hochladen möchtest und nicht vollständig sicher bist, wie viel von diesen Daten existiert. Dies landet auf der Kandidatenkarte, unter dem Tab Kommentare, als Feed. Notizen (Kommentare) erfordern einen Benutzer und einen Kandidaten.

Sobald der Upload abgeschlossen ist, kannst du die Informationen auf der Plattform überprüfen, indem du die Anzahl der Kandidaten kontrollierst und ob sie die gewünschten Daten haben.

Unterstützung

Solltest du auf Probleme wie Fehlermeldungen stoßen, oder etwas nicht so funktioniert, wie es sollte, kannst du unseren Support kontaktieren, indem du auf das Chat-Feld in der Plattform klickst oder eine E-Mail an support@teamtailor.com sendest

Wenn du Hilfe bei allgemeineren Fragen benötigst, um z. B. ein besseres Verständnis des Prozesses oder der Datenstruktur zu bekommen, wende dich an unsere Kontaktperson im Sales Team oder an euren CSM, und sie werden dich mit jemandem in Kontakt bringen, der damit helfen kann.

Hat dies deine Frage beantwortet?