DocumentationResumeRequest → UpdateResumeDto
Requête de création ou modification d’un CV
Utilisé par POST et PUT /api/v2/resumes. Le contenu du CV doit toujours se trouver dans la propriété resume.
La documentation présente les API, le parsing CV, le matching, les webhooks et les options d’anonymisation configurables.
Découvrir la solution API de parsing CVL’interface et les explications sont traduites. Les identifiants API, champs JSON, codes HTTP et exemples de code conservent leur forme d’origine. Ouvrir la référence API en anglais
https://cvreaderpro.com Authorization: ApiKey <key>Présentation des ressources API documentées et des opérations disponibles.
| Ressource | Endpoints | Chemin de base | Fonctionnalités |
|---|---|---|---|
| CV et parsing | 7 | /api/v2/resumes | Parsing étendu, analyse de fichiers et gestion des CV |
| Offres | 6 | /api/v2/jobs | Analyse de fichiers, filtres et gestion des offres |
| Scores recruteur | 4 | /api/v2/recruiter-scores | Matching de ressources enregistrées et webhooks de classement |
| Génération PDF | 3 | /api/v2/pdf-generation | Paramètres, PDF individuels et lots via webhook |
Plan de test Postman
La collection backend contient 27 requêtes couvrant 20 routes distinctes. Treize routes s’exécutent par défaut; sept requêtes facultatives restent désactivées tant que vous ne fournissez pas de fichiers locaux, les droits d’accès au parser ou un webhook configuré. Exécutez la collection dans l’ordre pour que les identifiants de fixtures et les étapes de nettoyage fonctionnent correctement.
Ces modèles correspondent aux DTO, entités, noms de propriétés Jackson et enveloppes de réponse utilisés par cette page.
DocumentationResumeRequest → UpdateResumeDto
Utilisé par POST et PUT /api/v2/resumes. Le contenu du CV doit toujours se trouver dans la propriété resume.
ParserResponseDTO
Renvoyée par POST /api/v2/resumes/parser. Il s’agit de la réponse normalisée du parser, et non de la ressource CVXml renvoyée par GET /api/v2/resumes/{resumeId}.
DocumentationService
La création et la lecture renvoient CVXml sous resume. La mise à jour renvoie UpdateResumeDto normalisé sous resume. CVXml utilise des noms de champs historiques en français.
Job entity
POST et PUT acceptent l’entité Job. PUT remplace les champs documentés : envoyez toutes les valeurs à conserver. Les réponses peuvent aussi inclure id, filePath, pauseReason, jobskills, createdAt et updatedAt.
DocumentationService / DocumentationJobService
Les deux endpoints de liste utilisent les mêmes clés de pagination. La clé de collection varie selon la ressource.
RecruiterScoreDto
Renvoyée par les deux endpoints de matching synchrone et incluse dans les données des webhooks de classement.
ResumeSettings, ColorSettings, SectionSettings, ResumeCanvasImage
Utilisé par PUT /api/v2/pdf-generation/settings. L’identifiant de section est en lecture seule; l’identifiant de l’image de fond est généré par le serveur.
WebhookController.WebhookSettingsDto / DocumentationPdfService
L’enregistrement d’un webhook utilise l’authentification de la session recruteur. L’endpoint webhook PDF v2 renvoie la réponse de lot acceptée présentée ci-dessous.
Analyser, créer, consulter, modifier et supprimer les CV appartenant à l’utilisateur de la clé API.
Voici les formes exactes des réponses réussies à désérialiser côté client. Les champs détaillés de CVXml et UpdateResumeDto figurent dans la section Schémas.
POST /api/v2/resumes/parser
Envoyer :Envoyez multipart/form-data : file (obligatoire), parserType (facultatif).
Recevoir :Lisez la réponse ParserResponseDTO enregistrée.
POST /api/v2/resumes
Envoyer :Envoyez application/json. L’enveloppe resume est obligatoire.
Recevoir :Conservez l’id de l’enveloppe CVXml créée : il devient resumeId pour les appels suivants.
PUT /api/v2/resumes/{resumeId}
Envoyer :Utilisez la même enveloppe { resume: ... } obligatoire que pour la création.
Recevoir :La réponse contient l’id et le UpdateResumeDto enregistré.
/api/v2/resumes/parserAnalyse et enregistre un CV envoyé sous forme de fichier multipart.
Requête
multipart/form-data · file (fichier) · parserType? (BASIC | ADVANCED)
Réponse réussie
200 · JSON ou XML · ParserResponseDTO enregistré
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"Schéma de réponse
ParserResponseDTO
/api/v2/resumes/extended-parserAnalyse un fichier CV envoyé ou un champ texte avec le parser étendu. Cette route exige une clé API autorisée et consomme des crédits de parsing premium.
Requête
multipart/form-data · file? (fichier) ou text? (chaîne) · fournir exactement une entrée
Réponse réussie
200 · objet JSON contenant les données CV étendues
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."Schéma de réponse
Objet JSON du parser étendu
/api/v2/resumesRenvoie une collection paginée contenant uniquement les CV de l’utilisateur associé à la clé API.
Requête
paramètres de requête · page? (nombre, défaut 0) · size? (nombre, défaut 10)
Réponse réussie
200 · collection paginée { resumes, currentPage, totalItems, totalPages }
curl -X GET "https://cvreaderpro.com/api/v2/resumes?page=0&size=10" \
-H "Authorization: ApiKey YOUR_API_KEY"Schéma de réponse
Collection paginée de CV
/api/v2/resumesCrée un CV structuré. Envoyez DocumentationResumeRequest ({ resume: UpdateResumeDto }); une ressource au format CVXml provenant d’une réponse de lecture est également acceptée.
Requête
application/json · DocumentationResumeRequest
Réponse réussie
201 · en-tête Location: /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": []}}'Schéma de réponse
Enveloppe du CV créé
/api/v2/resumes/{resumeId}Renvoie le CV si l’UUID existe et si le CV appartient à l’utilisateur associé à la clé API.
Requête
paramètre de chemin · resumeId (UUID)
Réponse réussie
200 · ressource CV { id, resume: CVXml }
curl -X GET "https://cvreaderpro.com/api/v2/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY"Schéma de réponse
Enveloppe du CV
/api/v2/resumes/{resumeId}Met à jour un CV avec le même objet DocumentationResumeRequest que celui utilisé pour sa création.
Requête
paramètre de chemin · resumeId (UUID) · application/json · DocumentationResumeRequest
Réponse réussie
200 · { id, resume: UpdateResumeDto } mis à jour
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": []}}'Schéma de réponse
Enveloppe du CV mis à jour
/api/v2/resumes/{resumeId}Supprime un CV appartenant à l’utilisateur associé à la clé API.
Requête
paramètre de chemin · resumeId (UUID)
Réponse réussie
204 · aucun contenu
curl -X DELETE "https://cvreaderpro.com/api/v2/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY"Schéma de réponse
Aucun corps de réponse
Analyser des fichiers d’offres et gérer les offres structurées de l’utilisateur authentifié.
/api/v2/jobs/parserAnalyse une description de poste envoyée comme fichier multipart et crée l’offre pour l’utilisateur authentifié.
Requête
multipart/form-data · file (fichier)
Réponse réussie
200 · application/json · offre créée
curl -X POST "https://cvreaderpro.com/api/v2/jobs/parser" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "file=@job-description.pdf"Schéma de réponse
Offre
/api/v2/jobsRenvoie une collection paginée et filtrable des offres de l’utilisateur associé à la clé API.
Requête
paramètres · page? · size? · status? · source? · reference? · title? · postedFrom? · postedTo? (date-heure ISO)
Réponse réussie
200 · collection paginée { 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"Schéma de réponse
Collection paginée d’offres
/api/v2/jobsCrée une offre structurée à partir de l’entité Job. Le modèle JSON complet est dans la section Schémas; la réponse ajoute les champs générés par le serveur.
Requête
application/json · objet Job
Réponse réussie
201 · offre créée
curl -X POST "https://cvreaderpro.com/api/v2/jobs" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data @job.jsonSchéma de réponse
Offre
/api/v2/jobs/{jobIdOrReference}Recherche une offre par UUID ou référence et ne la renvoie que si elle appartient à l’utilisateur associé à la clé API.
Requête
paramètre de chemin · jobIdOrReference (UUID ou référence texte)
Réponse réussie
200 · ressource offre
curl "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY"Schéma de réponse
Offre
/api/v2/jobs/{jobIdOrReference}Met à jour une offre identifiée par UUID ou référence. Le backend remplace tous les champs modifiables documentés; envoyez donc l’objet Job complet pour éviter de vider des valeurs.
Requête
paramètre de chemin · jobIdOrReference · application/json · objet Job
Réponse réussie
200 · ressource offre mise à jour
curl -X PUT "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data @job.jsonSchéma de réponse
Offre
/api/v2/jobs/{jobIdOrReference}Supprime une offre identifiée par UUID ou référence.
Requête
paramètre de chemin · jobIdOrReference (UUID ou référence texte)
Réponse réussie
204 · aucun contenu
curl -X DELETE "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY"Schéma de réponse
Aucun corps de réponse
Calculer des matchings détaillés et transmettre les meilleurs classements par webhook.
/api/v2/recruiter-scores/matchCalcule un score détaillé entre une offre enregistrée et un CV enregistré.
Requête
application/json · jobId (UUID) · candidateId (UUID)
Réponse réussie
200 · RecruiterScoreDto, avec l’identifiant du score final
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"}'Schéma de réponse
RecruiterScoreDto
/api/v2/recruiter-scores/match/filesAnalyse et enregistre le CV et l’offre fournis, puis calcule leur score de matching détaillé.
Requête
multipart/form-data · resumeFile (fichier) · jobFile (fichier)
Réponse réussie
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"Schéma de réponse
RecruiterScoreDto
/api/v2/recruiter-scores/jobs/{jobId}/top-candidates/webhookActualise les scores et met en file les 10 candidats les mieux classés, avec leurs détails complets, pour l’offre indiquée.
Requête
paramètre de chemin · jobId (UUID)
Réponse réussie
202 · livraison mise en file { 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"Schéma de réponse
Livraison webhook mise en file
/api/v2/recruiter-scores/resumes/{resumeId}/top-jobs/webhookMet en file les 10 offres détaillées les mieux classées pour le CV indiqué.
Requête
paramètre de chemin · resumeId (UUID)
Réponse réussie
202 · livraison mise en file { 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"Schéma de réponse
Livraison webhook mise en file
Modifier les paramètres de rendu et générer un ou plusieurs CV au format PDF.
/api/v2/pdf-generation/settingsMet à jour les ResumeSettings de l’utilisateur authentifié utilisées pour générer les PDF. Pour conserver les valeurs existantes, envoyez le modèle complet : mise en page, typographie, marges, couleurs, sections, images de fond et identité de l’agence.
Requête
application/json · objet ResumeSettings
Réponse réussie
200 · objet ResumeSettings mis à jour
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.jsonSchéma de réponse
ResumeSettings
/api/v2/pdf-generation/resumes/{resumeId}Génère le PDF d’un CV appartenant à l’utilisateur avec les paramètres actuels.
Requête
paramètre de chemin · resumeId (UUID)
Réponse réussie
200 · application/pdf · document PDF
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.pdfSchéma de réponse
Fichier PDF
/api/v2/pdf-generation/webhookMet en file la génération de PDF pour une liste d’UUID de CV appartenant à l’utilisateur, puis transmet les fichiers via le webhook configuré.
Requête
application/json · tableau de chaînes UUID
Réponse réussie
202 · lot mis en file { 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"]'Schéma de réponse
Lot PDF mis en file
Configurez des notifications d’événements signées pour l’analyse asynchrone, le matching et la génération PDF.
| Opération | Endpoint | Authentification |
|---|---|---|
| Livraison des meilleurs candidats | POST /api/v2/recruiter-scores/jobs/{jobId}/top-candidates/webhook | ApiKey |
| Livraison des meilleures offres | POST /api/v2/recruiter-scores/resumes/{resumeId}/top-jobs/webhook | ApiKey |
| Livraison du lot PDF | POST /api/v2/pdf-generation/webhook | ApiKey |
Les requêtes Postman facultatives supposent qu’un webhook HTTPS est déjà configuré pour le propriétaire de la clé API. Abonnez-le à resume.parsed, resume.matched, or pdf.generated. La collection backend n’enregistre ni ne renouvelle les webhooks; configurez-les avant d’activer les requêtes facultatives de classement ou de PDF. Chaque livraison contient un identifiant, un horodatage, un en-tête d’événement et une signature HMAC-SHA256.
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> avec HMAC-SHA256, renvoyez une réponse 2xx pour accuser réception et utilisez l’identifiant de livraison pour garantir l’idempotence en cas de nouvelle tentative.Téléchargez les CV sources et les sorties API enregistrées. Les personnes, entreprises et offres sont fictives. Les documents exemples sont en anglais ; les résultats dépendent du document et du parser et nécessitent une revue humaine.