DocumentationResumeRequest → UpdateResumeDto
Richiesta per creare o aggiornare un CV
Usata da POST e PUT /api/v2/resumes. Il contenuto del CV deve essere sempre annidato nella proprietà resume.
La documentazione presenta le API per il parsing CV, il matching, i webhook e i flussi di anonimizzazione configurabili.
Scopri la soluzione API per il parsing dei CVL’interfaccia e le spiegazioni sono tradotte. Gli identificatori API, i campi JSON, i codici HTTP e gli esempi di codice mantengono la forma originale. Apri la documentazione API in inglese
https://cvreaderpro.com Authorization: ApiKey <key>Riepilogo di tutte le risorse API documentate e delle operazioni disponibili.
| Risorsa | Endpoint | Percorso di base | Funzionalità |
|---|---|---|---|
| CV e parsing | 7 | /api/v2/resumes | Parsing esteso, analisi file e gestione CV |
| Offerte | 6 | /api/v2/jobs | Analisi file, filtri e gestione offerte |
| Score recruiter | 4 | /api/v2/recruiter-scores | Matching di risorse salvate e webhook di ranking |
| Generazione PDF | 3 | /api/v2/pdf-generation | Impostazioni, PDF singoli e batch via webhook |
Piano di test Postman
La raccolta backend contiene 27 richieste per 20 route distinte. Tredici route vengono eseguite per impostazione predefinita; sette richieste facoltative restano disabilitate finché non sono disponibili file locali, autorizzazioni del parser o un webhook configurato. Esegui la raccolta nell’ordine previsto affinché funzionino gli ID delle fixture e i passaggi di pulizia.
Questi modelli corrispondono ai DTO backend, alle entità, ai nomi delle proprietà Jackson e agli involucri delle risposte usati in questa pagina.
DocumentationResumeRequest → UpdateResumeDto
Usata da POST e PUT /api/v2/resumes. Il contenuto del CV deve essere sempre annidato nella proprietà resume.
ParserResponseDTO
Restituita da POST /api/v2/resumes/parser. È la risposta normalizzata del parser, non la risorsa CVXml restituita da GET /api/v2/resumes/{resumeId}.
DocumentationService
Creazione e lettura restituiscono CVXml in resume. L’aggiornamento restituisce UpdateResumeDto normalizzato in resume. CVXml usa nomi di campo storici in francese.
Job entity
POST e PUT accettano l’entità Job. PUT sostituisce i campi documentati: invia tutti i valori da conservare. Le risposte possono includere anche id, filePath, pauseReason, jobskills, createdAt e updatedAt.
DocumentationService / DocumentationJobService
Entrambi gli endpoint di elenco usano le stesse chiavi di paginazione. La chiave della raccolta varia in base alla risorsa.
RecruiterScoreDto
Restituita da entrambi gli endpoint di matching sincrono e inclusa nei payload dei webhook di ranking.
ResumeSettings, ColorSettings, SectionSettings, ResumeCanvasImage
Usate da PUT /api/v2/pdf-generation/settings. L’ID della sezione è di sola lettura; l’ID dell’immagine canvas è generato dal server.
WebhookController.WebhookSettingsDto / DocumentationPdfService
La registrazione di un webhook usa l’autenticazione della sessione recruiter. L’endpoint webhook PDF v2 restituisce la risposta di batch accettato mostrata qui sotto.
Analizza, crea, consulta, aggiorna ed elimina i CV dell’utente associato alla chiave API.
Queste sono le forme esatte delle risposte riuscite da deserializzare nel client. I campi dettagliati di CVXml e UpdateResumeDto sono nella sezione Schemi.
POST /api/v2/resumes/parser
Invia:Invia multipart/form-data: file (obbligatorio), parserType (facoltativo).
Ricevi:Leggi la risposta ParserResponseDTO salvata.
POST /api/v2/resumes
Invia:Invia application/json. Il wrapper resume è obbligatorio.
Ricevi:Salva l’id dell’envelope CVXml creato: sarà resumeId per le chiamate successive.
PUT /api/v2/resumes/{resumeId}
Invia:Usa lo stesso wrapper obbligatorio { resume: ... } della creazione.
Ricevi:La risposta contiene l’id e l’UpdateResumeDto salvato.
/api/v2/resumes/parserAnalizza e salva un CV caricato come file multipart.
Richiesta
multipart/form-data · file (file) · parserType? (BASIC | ADVANCED)
Esito positivo
200 · JSON o XML · ParserResponseDTO salvato
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"Schema della risposta
ParserResponseDTO
/api/v2/resumes/extended-parserAnalizza un file CV caricato oppure un campo di testo con il parser esteso. Questa route richiede una chiave API abilitata e consuma crediti premium di parsing.
Richiesta
multipart/form-data · file? (file) o text? (stringa) · fornire esattamente un input
Esito positivo
200 · oggetto JSON con i dati CV estesi
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."Schema della risposta
Oggetto JSON del parser esteso
/api/v2/resumesRestituisce una raccolta paginata che include solo i CV dell’utente associato alla chiave API.
Richiesta
parametri query · page? (numero, predefinito 0) · size? (numero, predefinito 10)
Esito positivo
200 · raccolta paginata { resumes, currentPage, totalItems, totalPages }
curl -X GET "https://cvreaderpro.com/api/v2/resumes?page=0&size=10" \
-H "Authorization: ApiKey YOUR_API_KEY"Schema della risposta
Raccolta CV paginata
/api/v2/resumesCrea un CV strutturato. Inviare DocumentationResumeRequest ({ resume: UpdateResumeDto }); è accettata anche una risorsa CVXml ottenuta da una risposta di lettura.
Richiesta
application/json · DocumentationResumeRequest
Esito positivo
201 · header 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": []}}'Schema della risposta
Envelope del CV creato
/api/v2/resumes/{resumeId}Restituisce il CV se l’UUID esiste e appartiene all’utente della chiave API.
Richiesta
parametro del percorso · resumeId (UUID)
Esito positivo
200 · risorsa CV { id, resume: CVXml }
curl -X GET "https://cvreaderpro.com/api/v2/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY"Schema della risposta
Envelope del CV
/api/v2/resumes/{resumeId}Aggiorna un CV usando lo stesso wrapper DocumentationResumeRequest previsto per la creazione.
Richiesta
parametro del percorso · resumeId (UUID) · application/json · DocumentationResumeRequest
Esito positivo
200 · { id, resume: UpdateResumeDto } aggiornato
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": []}}'Schema della risposta
Envelope del CV aggiornato
/api/v2/resumes/{resumeId}Elimina un CV appartenente all’utente della chiave API.
Richiesta
parametro del percorso · resumeId (UUID)
Esito positivo
204 · nessun contenuto
curl -X DELETE "https://cvreaderpro.com/api/v2/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY"Schema della risposta
Nessun corpo della risposta
Analizza file di offerte e gestisce le offerte strutturate dell’utente autenticato.
/api/v2/jobs/parserAnalizza una descrizione di lavoro caricata come file multipart e crea l’offerta per l’utente autenticato.
Richiesta
multipart/form-data · file (file)
Esito positivo
200 · application/json · offerta creata
curl -X POST "https://cvreaderpro.com/api/v2/jobs/parser" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "file=@job-description.pdf"Schema della risposta
Offerta
/api/v2/jobsRestituisce una raccolta paginata e filtrabile delle offerte appartenenti all’utente della chiave API.
Richiesta
parametri · page? · size? · status? · source? · reference? · title? · postedFrom? · postedTo? (data e ora ISO)
Esito positivo
200 · raccolta paginata { 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"Schema della risposta
Raccolta offerte paginata
/api/v2/jobsCrea un’offerta strutturata dall’entità Job. Il modello JSON completo è nella sezione Schemi; la risposta aggiunge i campi generati dal server.
Richiesta
application/json · oggetto Job
Esito positivo
201 · offerta creata
curl -X POST "https://cvreaderpro.com/api/v2/jobs" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data @job.jsonSchema della risposta
Offerta
/api/v2/jobs/{jobIdOrReference}Cerca un’offerta tramite UUID o riferimento e la restituisce solo se appartiene all’utente della chiave API.
Richiesta
parametro del percorso · jobIdOrReference (UUID o riferimento testuale)
Esito positivo
200 · risorsa offerta
curl "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY"Schema della risposta
Offerta
/api/v2/jobs/{jobIdOrReference}Aggiorna un’offerta identificata da UUID o riferimento. Il backend assegna ogni campo Job modificabile documentato: invia l’oggetto Job completo per evitare di cancellare valori.
Richiesta
parametro del percorso · jobIdOrReference · application/json · oggetto Job
Esito positivo
200 · risorsa offerta aggiornata
curl -X PUT "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data @job.jsonSchema della risposta
Offerta
/api/v2/jobs/{jobIdOrReference}Elimina un’offerta identificata da UUID o riferimento.
Richiesta
parametro del percorso · jobIdOrReference (UUID o riferimento testuale)
Esito positivo
204 · nessun contenuto
curl -X DELETE "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY"Schema della risposta
Nessun corpo della risposta
Calcola matching dettagliati e invia le classifiche migliori tramite webhook.
/api/v2/recruiter-scores/matchCalcola uno score dettagliato per un’offerta e un CV salvati.
Richiesta
application/json · jobId (UUID) · candidateId (UUID)
Esito positivo
200 · RecruiterScoreDto, incluso l’ID dello score finale
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"}'Schema della risposta
RecruiterScoreDto
/api/v2/recruiter-scores/match/filesAnalizza e salva il CV e l’offerta forniti, quindi calcola lo score dettagliato di matching per la coppia creata.
Richiesta
multipart/form-data · resumeFile (file) · jobFile (file)
Esito positivo
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"Schema della risposta
RecruiterScoreDto
/api/v2/recruiter-scores/jobs/{jobId}/top-candidates/webhookAggiorna gli score e accoda i 10 candidati più qualificati, con tutti i dettagli, per un’offerta.
Richiesta
parametro del percorso · jobId (UUID)
Esito positivo
202 · consegna accodata { 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"Schema della risposta
Consegna webhook accodata
/api/v2/recruiter-scores/resumes/{resumeId}/top-jobs/webhookAccoda le 10 offerte dettagliate con lo score più alto per un CV al webhook configurato.
Richiesta
parametro del percorso · resumeId (UUID)
Esito positivo
202 · consegna accodata { 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"Schema della risposta
Consegna webhook accodata
Aggiorna le impostazioni di rendering e genera uno o più PDF dei CV.
/api/v2/pdf-generation/settingsAggiorna le ResumeSettings dell’utente autenticato usate per generare PDF. Per conservare i valori esistenti invia il modello completo: layout, tipografia, margini, colori, sezioni, immagini e branding dell’agenzia.
Richiesta
application/json · oggetto ResumeSettings
Esito positivo
200 · ResumeSettings aggiornate
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.jsonSchema della risposta
ResumeSettings
/api/v2/pdf-generation/resumes/{resumeId}Genera un PDF per un CV dell’utente usando le impostazioni correnti.
Richiesta
parametro del percorso · resumeId (UUID)
Esito positivo
200 · application/pdf · documento 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.pdfSchema della risposta
File PDF
/api/v2/pdf-generation/webhookAccoda la generazione PDF per una lista di UUID di CV dell’utente e invia i file tramite il webhook configurato.
Richiesta
application/json · array di stringhe UUID
Esito positivo
202 · batch accodato { 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"]'Schema della risposta
Batch PDF accodato
Configura l’invio di eventi firmati per parsing asincrono, matching e generazione PDF.
| Operazione | Endpoint | Autenticazione |
|---|---|---|
| Consegna dei candidati migliori | POST /api/v2/recruiter-scores/jobs/{jobId}/top-candidates/webhook | ApiKey |
| Consegna delle offerte migliori | POST /api/v2/recruiter-scores/resumes/{resumeId}/top-jobs/webhook | ApiKey |
| Consegna del batch PDF | POST /api/v2/pdf-generation/webhook | ApiKey |
Le richieste Postman facoltative presuppongono che sia già configurato un webhook HTTPS per il proprietario della chiave API. Iscrivilo a resume.parsed, resume.matched, or pdf.generated. La raccolta backend non registra né rinnova i webhook; configura queste impostazioni prima di abilitare le richieste facoltative di ranking o PDF. Le consegne includono ID, timestamp, header dell’evento e firma 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> con HMAC-SHA256, restituisci una risposta 2xx per confermare la consegna e usa l’ID di consegna per l’idempotenza, perché i tentativi possono ripetere lo stesso evento.Scarica i CV di input e gli output API acquisiti. Tutte le persone, aziende e offerte sono fittizie. I documenti di esempio sono in inglese; i risultati dipendono dal documento e dal parser e richiedono una revisione umana.