DocumentationResumeRequest → UpdateResumeDto
Anfrage zum Erstellen oder Ändern eines Lebenslaufs
Für POST und PUT /api/v2/resumes. Der Lebenslauf muss immer unter der Eigenschaft resume verschachtelt sein.
Die Dokumentation behandelt APIs für CV-Parsing, Matching, Webhooks und konfigurierbare Anonymisierungsabläufe.
Die Lösung für CV-Parsing per API ansehenOberfläche und Erläuterungen sind übersetzt. API-Bezeichner, JSON-Felder, HTTP-Statuscodes und Codebeispiele bleiben in ihrer ursprünglichen Form. Englische API-Referenz öffnen
https://cvreaderpro.com Authorization: ApiKey <key>Überblick über alle dokumentierten API-Ressourcen und verfügbaren Vorgänge.
| Ressource | Endpunkte | Basispfad | Funktionen |
|---|---|---|---|
| Lebensläufe und Parsing | 7 | /api/v2/resumes | Erweitertes Parsing, Dateianalyse und CV-Verwaltung |
| Stellenangebote | 6 | /api/v2/jobs | Dateianalyse, Filter und Angebotsverwaltung |
| Recruiter-Scores | 4 | /api/v2/recruiter-scores | Matching gespeicherter Ressourcen und Ranking-Webhooks |
| PDF-Erstellung | 3 | /api/v2/pdf-generation | Einstellungen, einzelne PDFs und Webhook-Stapel |
Postman-Testplan
Die Backend-Sammlung enthält 27 Anfragen für 20 eindeutige Routen. Dreizehn Routen werden standardmäßig ausgeführt; sieben optionale Anfragen bleiben deaktiviert, bis lokale Dateien, Parser-Berechtigungen oder ein konfigurierter Webhook verfügbar sind. Führen Sie die Sammlung in der vorgegebenen Reihenfolge aus, damit Fixture-IDs und Bereinigungsschritte funktionieren.
Diese Vorlagen entsprechen den Backend-DTOs, Entitäten, Jackson-Eigenschaftsnamen und Antworthüllen dieser Seite.
DocumentationResumeRequest → UpdateResumeDto
Für POST und PUT /api/v2/resumes. Der Lebenslauf muss immer unter der Eigenschaft resume verschachtelt sein.
ParserResponseDTO
Wird von POST /api/v2/resumes/parser zurückgegeben. Dies ist die normalisierte Parserantwort, nicht die von GET /api/v2/resumes/{resumeId} zurückgegebene CVXml-Ressource.
DocumentationService
Erstellen und Lesen geben CVXml unter resume zurück. Aktualisieren gibt das normalisierte UpdateResumeDto unter resume zurück. CVXml verwendet historische französische Feldnamen.
Job entity
POST und PUT akzeptieren die Job-Entität. PUT ersetzt die dokumentierten Felder; senden Sie daher alle Werte, die erhalten bleiben sollen. Antworten können zusätzlich id, filePath, pauseReason, jobskills, createdAt und updatedAt enthalten.
DocumentationService / DocumentationJobService
Beide Listenrouten verwenden dieselben Paginierungsschlüssel. Der Sammlungsname unterscheidet sich je nach Ressource.
RecruiterScoreDto
Wird von beiden synchronen Matching-Routen zurückgegeben und ist in Ranking-Webhook-Nutzdaten enthalten.
ResumeSettings, ColorSettings, SectionSettings, ResumeCanvasImage
Wird von PUT /api/v2/pdf-generation/settings verwendet. Die Abschnitts-ID ist schreibgeschützt; die ID des Hintergrundbilds wird vom Server erzeugt.
WebhookController.WebhookSettingsDto / DocumentationPdfService
Zum Registrieren eines Webhooks ist eine Recruiter-Sitzung erforderlich. Der v2-PDF-Webhook gibt die unten gezeigte angenommene Stapelantwort zurück.
Lebensläufe des API-Schlüssel-Nutzers parsen, erstellen, abrufen, aktualisieren und löschen.
Dies sind die exakten Erfolgsantworten, die Ihr Client deserialisieren sollte. Die detaillierten CVXml- und UpdateResumeDto-Felder stehen im Abschnitt Schemas.
POST /api/v2/resumes/parser
Senden:multipart/form-data senden: file (erforderlich), parserType (optional).
Empfangen:Die gespeicherte ParserResponseDTO-Antwort auslesen.
POST /api/v2/resumes
Senden:application/json senden. Die resume-Hülle ist erforderlich.
Empfangen:Die id der erstellten CVXml-Hülle speichern; sie ist bei späteren Aufrufen die resumeId.
PUT /api/v2/resumes/{resumeId}
Senden:Dieselbe erforderliche { resume: ... }-Hülle wie beim Erstellen verwenden.
Empfangen:Die Antwort enthält die id und das gespeicherte UpdateResumeDto.
/api/v2/resumes/parserParst einen als Multipart-Datei hochgeladenen CV und speichert das Ergebnis.
Anfrage
multipart/form-data · file (Datei) · parserType? (BASIC | ADVANCED)
Erfolg
200 · JSON oder XML · gespeichertes ParserResponseDTO
curl -X POST "https://cvreaderpro.com/api/v2/resumes/parser" \
-H "Authorization: ApiKey YOUR_API_KEY" -H "Accept: application/json" \
-F "file=@resume.pdf" -F "parserType=ADVANCED"Antwortschema
ParserResponseDTO
/api/v2/resumes/extended-parserParst entweder eine hochgeladene CV-Datei oder ein Textfeld mit dem erweiterten Parser. Diese Route erfordert einen berechtigten API-Schlüssel und verbraucht Premium-Parsing-Credits.
Anfrage
multipart/form-data · file? (Datei) oder text? (Zeichenkette) · genau eine Eingabe angeben
Erfolg
200 · JSON-Objekt mit den erweiterten CV-Daten
file
curl --fail-with-body -X POST "https://cvreaderpro.com/api/v2/resumes/extended-parser" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Accept: application/json" \
-F "file=@resume.pdf"text
curl --fail-with-body -X POST "https://cvreaderpro.com/api/v2/resumes/extended-parser" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Accept: application/json" \
--form-string "text=Alex Sample
QA engineer with API testing experience."Antwortschema
JSON-Objekt des erweiterten Parsers
/api/v2/resumesGibt eine paginierte Liste zurück, die nur Lebensläufe des API-Schlüssel-Nutzers enthält.
Anfrage
Abfrageparameter · page? (Zahl, Standard 0) · size? (Zahl, Standard 10)
Erfolg
200 · paginierte Liste { resumes, currentPage, totalItems, totalPages }
curl -X GET "https://cvreaderpro.com/api/v2/resumes?page=0&size=10" \
-H "Authorization: ApiKey YOUR_API_KEY"Antwortschema
Paginierte Lebenslaufliste
/api/v2/resumesErstellt einen strukturierten Lebenslauf. Senden Sie DocumentationResumeRequest ({ resume: UpdateResumeDto }); eine CVXml-Ressource aus einer Leseantwort wird ebenfalls akzeptiert.
Anfrage
application/json · DocumentationResumeRequest
Erfolg
201 · Location-Header: /api/v2/resumes/{id} · { id, resume: CVXml }
curl -X POST "https://cvreaderpro.com/api/v2/resumes" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"resume": {"candidate": { "firstName": "Ada", "lastName": "Lovelace", "personalEmail": "ada@example.com" },"profile": "Backend engineer","experiences": [], "educations": [], "languages": [], "skills": [],"softSkills": [], "references": []}}'Antwortschema
Hülle des erstellten Lebenslaufs
/api/v2/resumes/{resumeId}Gibt den Lebenslauf zurück, wenn die UUID existiert und er dem Nutzer des API-Schlüssels gehört.
Anfrage
Pfadparameter · resumeId (UUID)
Erfolg
200 · Lebenslauf-Ressource { id, resume: CVXml }
curl -X GET "https://cvreaderpro.com/api/v2/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY"Antwortschema
Lebenslaufhülle
/api/v2/resumes/{resumeId}Aktualisiert einen Lebenslauf mit demselben DocumentationResumeRequest-Wrapper wie beim Erstellen.
Anfrage
Pfadparameter · resumeId (UUID) · application/json · DocumentationResumeRequest
Erfolg
200 · { id, resume: UpdateResumeDto } aktualisiert
curl -X PUT "https://cvreaderpro.com/api/v2/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"resume": {"candidate": { "firstName": "Ada", "lastName": "Lovelace", "personalEmail": "ada@example.com" },"profile": "Backend engineer","experiences": [], "educations": [], "languages": [], "skills": [],"softSkills": [], "references": []}}'Antwortschema
Hülle des aktualisierten Lebenslaufs
/api/v2/resumes/{resumeId}Löscht einen Lebenslauf, der dem Nutzer des API-Schlüssels gehört.
Anfrage
Pfadparameter · resumeId (UUID)
Erfolg
204 · kein Inhalt
curl -X DELETE "https://cvreaderpro.com/api/v2/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY"Antwortschema
Kein Antworttext
Stellendateien parsen und strukturierte Stellenangebote des angemeldeten Nutzers verwalten.
/api/v2/jobs/parserParst eine als Multipart-Datei hochgeladene Stellenbeschreibung und legt das Stellenangebot für den angemeldeten Nutzer an.
Anfrage
multipart/form-data · file (Datei)
Erfolg
200 · application/json · erstelltes Stellenangebot
curl -X POST "https://cvreaderpro.com/api/v2/jobs/parser" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "file=@job-description.pdf"Antwortschema
Stellenangebot
/api/v2/jobsGibt eine paginierte, filterbare Liste der Stellenangebote des API-Schlüssel-Nutzers zurück.
Anfrage
Abfrageparameter · page? · size? · status? · source? · reference? · title? · postedFrom? · postedTo? (ISO-Datum und Uhrzeit)
Erfolg
200 · paginierte Liste { jobs, currentPage, totalItems, totalPages }
curl "https://cvreaderpro.com/api/v2/jobs?page=0&size=20&status=ACTIVE&title=engineer" \
-H "Authorization: ApiKey YOUR_API_KEY"Antwortschema
Paginierte Angebotsliste
/api/v2/jobsErstellt ein strukturiertes Stellenangebot aus der Job-Entität. Die vollständige beschreibbare JSON-Vorlage steht unter Schemata; die Antwort enthält zusätzlich serverseitig erzeugte Felder.
Anfrage
application/json · Job-Objekt
Erfolg
201 · Stellenangebot erstellt
curl -X POST "https://cvreaderpro.com/api/v2/jobs" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data @job.jsonAntwortschema
Stellenangebot
/api/v2/jobs/{jobIdOrReference}Sucht ein Stellenangebot über UUID oder Referenz und gibt es nur zurück, wenn es dem Nutzer des API-Schlüssels gehört.
Anfrage
Pfadparameter · jobIdOrReference (UUID oder Zeichenketten-Referenz)
Erfolg
200 · Stellenangebot-Ressource
curl "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY"Antwortschema
Stellenangebot
/api/v2/jobs/{jobIdOrReference}Aktualisiert ein Stellenangebot über UUID oder Referenz. Das Backend setzt alle dokumentierten beschreibbaren Felder; senden Sie deshalb das vollständige Job-Objekt, damit keine Werte gelöscht werden.
Anfrage
Pfadparameter · jobIdOrReference · application/json · Job-Objekt
Erfolg
200 · aktualisierte Stellenangebot-Ressource
curl -X PUT "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data @job.jsonAntwortschema
Stellenangebot
/api/v2/jobs/{jobIdOrReference}Löscht ein Stellenangebot über UUID oder Referenz.
Anfrage
Pfadparameter · jobIdOrReference (UUID oder Zeichenketten-Referenz)
Erfolg
204 · kein Inhalt
curl -X DELETE "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY"Antwortschema
Kein Antworttext
Detaillierte Matches berechnen und Top-Rankings per Webhook übermitteln.
/api/v2/recruiter-scores/matchBerechnet einen detaillierten Recruiter-Score für ein gespeichertes Stellenangebot und einen gespeicherten Lebenslauf.
Anfrage
application/json · jobId (UUID) · candidateId (UUID)
Erfolg
200 · RecruiterScoreDto einschließlich ID des Endergebnisses
curl -X POST "https://cvreaderpro.com/api/v2/recruiter-scores/match" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"jobId":"JOB_UUID","candidateId":"RESUME_UUID"}'Antwortschema
RecruiterScoreDto
/api/v2/recruiter-scores/match/filesParst und speichert den übermittelten Lebenslauf und die Stellenbeschreibung und berechnet danach den detaillierten Abgleich-Score des erstellten Paars.
Anfrage
multipart/form-data · resumeFile (Datei) · jobFile (Datei)
Erfolg
200 · RecruiterScoreDto
curl -X POST "https://cvreaderpro.com/api/v2/recruiter-scores/match/files" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "resumeFile=@resume.pdf" \
-F "jobFile=@job.pdf"Antwortschema
RecruiterScoreDto
/api/v2/recruiter-scores/jobs/{jobId}/top-candidates/webhookAktualisiert Scores und reiht die zehn detailliert aufbereiteten Top-Kandidaten für ein Stellenangebot beim konfigurierten Webhook ein.
Anfrage
Pfadparameter · jobId (UUID)
Erfolg
202 · Zustellung eingereiht { deliveryId, eventType: "resume.matched", status: "QUEUED", resultCount }
curl -X POST "https://cvreaderpro.com/api/v2/recruiter-scores/jobs/JOB_UUID/top-candidates/webhook" \
-H "Authorization: ApiKey YOUR_API_KEY"Antwortschema
Webhook-Zustellung eingereiht
/api/v2/recruiter-scores/resumes/{resumeId}/top-jobs/webhookReiht die zehn detaillierten Top-Stellenangebote für einen Lebenslauf beim konfigurierten Webhook ein.
Anfrage
Pfadparameter · resumeId (UUID)
Erfolg
202 · Zustellung eingereiht { deliveryId, eventType: "resume.matched", status: "QUEUED", resultCount }
curl -X POST "https://cvreaderpro.com/api/v2/recruiter-scores/resumes/RESUME_UUID/top-jobs/webhook" \
-H "Authorization: ApiKey YOUR_API_KEY"Antwortschema
Webhook-Zustellung eingereiht
Einstellungen für die Darstellung ändern und ein oder mehrere Lebenslauf-PDFs erstellen.
/api/v2/pdf-generation/settingsAktualisiert die ResumeSettings des angemeldeten Nutzers für die PDF-Erstellung. Senden Sie zum Erhalt vorhandener Werte das vollständige Modell mit Layout, Typografie, Rändern, Farben, Abschnitten, Hintergrundbildern und Agenturbranding.
Anfrage
application/json · ResumeSettings-Objekt
Erfolg
200 · aktualisierte ResumeSettings
curl -X PUT "https://cvreaderpro.com/api/v2/pdf-generation/settings" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data @resume-settings.jsonAntwortschema
ResumeSettings
/api/v2/pdf-generation/resumes/{resumeId}Erstellt mit den aktuellen Einstellungen ein PDF für einen Lebenslauf des Nutzers.
Anfrage
Pfadparameter · resumeId (UUID)
Erfolg
200 · application/pdf · PDF-Dokument
curl -X POST "https://cvreaderpro.com/api/v2/pdf-generation/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Accept: application/pdf" \
--fail --show-error -o resume.pdfAntwortschema
PDF-Datei
/api/v2/pdf-generation/webhookReiht die PDF-Erstellung für eine Liste eigener Lebenslauf-UUIDs ein und sendet die Dateien über den konfigurierten Webhook.
Anfrage
application/json · Array von UUID-Zeichenketten
Erfolg
202 · Stapel eingereiht { jobId, status, total, message, webhookSecurity }
curl -X POST "https://cvreaderpro.com/api/v2/pdf-generation/webhook" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '["RESUME_UUID_1", "RESUME_UUID_2"]'Antwortschema
PDF-Stapel eingereiht
Konfigurieren Sie signierte Ereignisübermittlungen für asynchrones Parsing, Matching und PDF-Erstellung.
| Vorgang | Endpunkt | Authentifizierung |
|---|---|---|
| Zustellung der Top-Kandidaten | POST /api/v2/recruiter-scores/jobs/{jobId}/top-candidates/webhook | ApiKey |
| Zustellung der Top-Stellenangebote | POST /api/v2/recruiter-scores/resumes/{resumeId}/top-jobs/webhook | ApiKey |
| PDF-Stapelzustellung | POST /api/v2/pdf-generation/webhook | ApiKey |
Die optionalen Postman-Anfragen setzen voraus, dass für den API-Schlüssel-Nutzer bereits ein HTTPS-Webhook konfiguriert ist. Abonnieren Sie resume.parsed, resume.matched, or pdf.generated. Die Backend-Sammlung registriert oder erneuert keine Webhooks; konfigurieren Sie sie vor optionalen Ranking- oder PDF-Anfragen. Zustellungen enthalten ID, Zeitstempel, Ereignis-Header und HMAC-SHA256-Signatur.
cvFilePath=/path/to/resume.pdf
jobFilePath=/path/to/job-description.pdf
webhookExpectedStatus=202X-CVReader-Event: resume.matched
X-CVReader-Delivery-Id: <uuid>
X-CVReader-Timestamp: <unix-seconds>
X-CVReader-Signature: v1=<hmac-sha256><timestamp>.<raw-json-body> mit HMAC-SHA256, bestätigen Sie den Empfang mit einer 2xx-Antwort und verwenden Sie die Zustellungs-ID für Idempotenz, da Wiederholungen dasselbe Ereignis erneut senden können.Laden Sie die CV-Eingaben und erfassten API-Ausgaben herunter. Alle Personen, Unternehmen und Stellen sind fiktiv. Die Beispieldokumente sind auf Englisch; Ergebnisse hängen von Eingabe und Parser ab und müssen von Menschen geprüft werden.