DocumentationResumeRequest → UpdateResumeDto
Pedido para criar ou atualizar um CV
Usado por POST e PUT /api/v2/resumes. O conteúdo do CV deve estar sempre dentro da propriedade resume.
A documentação apresenta APIs para parsing de CV, matching, webhooks e fluxos configuráveis de anonimização.
Conheça a solução de API de parsing de CVA interface e as explicações estão traduzidas. Os identificadores da API, os campos JSON, os códigos HTTP e os exemplos de código mantêm a forma original. Abrir a referência da API em inglês
https://cvreaderpro.com Authorization: ApiKey <key>Resumo dos recursos da API documentados e das operações disponíveis.
| Recurso | Endpoints | Caminho base | Funcionalidades |
|---|---|---|---|
| CV e análise | 7 | /api/v2/resumes | Análise estendida, ficheiros e gestão de CV |
| Ofertas | 6 | /api/v2/jobs | Análise de ficheiros, filtros e gestão de ofertas |
| Pontuações | 4 | /api/v2/recruiter-scores | Matching de recursos guardados e webhooks de classificação |
| Geração de PDF | 3 | /api/v2/pdf-generation | Definições, PDFs individuais e lotes por webhook |
Plano de testes do Postman
A coleção backend contém 27 pedidos para 20 rotas distintas. Treze rotas são executadas por predefinição; sete pedidos opcionais ficam desativados até existirem ficheiros locais, permissões do parser ou um webhook configurado. Execute a coleção pela ordem indicada para que os IDs das fixtures e os passos de limpeza funcionem corretamente.
Estes modelos correspondem aos DTOs, entidades, nomes de propriedades Jackson e envelopes de resposta do backend usados nesta página.
DocumentationResumeRequest → UpdateResumeDto
Usado por POST e PUT /api/v2/resumes. O conteúdo do CV deve estar sempre dentro da propriedade resume.
ParserResponseDTO
Devolvida por POST /api/v2/resumes/parser. É a resposta normalizada do parser, não o recurso CVXml devolvido por GET /api/v2/resumes/{resumeId}.
DocumentationService
A criação e a leitura devolvem CVXml em resume. A atualização devolve UpdateResumeDto normalizado em resume. CVXml usa nomes de campos históricos em francês.
Job entity
POST e PUT aceitam a entidade Job. PUT substitui os campos documentados; envie todos os valores que pretende manter. As respostas também podem incluir id, filePath, pauseReason, jobskills, createdAt e updatedAt.
DocumentationService / DocumentationJobService
Ambos os endpoints de lista usam as mesmas chaves de paginação. A chave da coleção varia consoante o recurso.
RecruiterScoreDto
Devolvida por ambos os endpoints de matching síncrono e incluída nos dados dos webhooks de classificação.
ResumeSettings, ColorSettings, SectionSettings, ResumeCanvasImage
Usadas por PUT /api/v2/pdf-generation/settings. O ID da secção é só de leitura; o servidor gera o ID da imagem de fundo.
WebhookController.WebhookSettingsDto / DocumentationPdfService
O registo de webhooks usa autenticação de sessão de recrutador. O endpoint webhook PDF v2 devolve a resposta de lote aceite apresentada abaixo.
Analisa, cria, consulta, atualiza e elimina os CV do utilizador associado à chave API.
Estas são as formas exatas das respostas bem-sucedidas que o cliente deve desserializar. Os campos detalhados de CVXml e UpdateResumeDto estão na secção Esquemas.
POST /api/v2/resumes/parser
Enviar:Envie multipart/form-data: file (obrigatório), parserType (opcional).
Receber:Leia a resposta ParserResponseDTO guardada.
POST /api/v2/resumes
Enviar:Envie application/json. O envelope resume é obrigatório.
Receber:Guarde o id do envelope CVXml criado; será resumeId nos pedidos seguintes.
PUT /api/v2/resumes/{resumeId}
Enviar:Use o mesmo envelope obrigatório { resume: ... } da criação.
Receber:A resposta contém o id e o UpdateResumeDto guardado.
/api/v2/resumes/parserAnalisa e guarda um CV enviado como ficheiro multipart.
Pedido
multipart/form-data · file (ficheiro) · parserType? (BASIC | ADVANCED)
Sucesso
200 · JSON ou XML · ParserResponseDTO guardado
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"Esquema da resposta
ParserResponseDTO
/api/v2/resumes/extended-parserAnalisa um ficheiro de CV carregado ou um campo de texto com o parser estendido. Esta rota requer uma chave API autorizada e consome créditos premium de análise.
Pedido
multipart/form-data · file? (ficheiro) ou text? (cadeia) · indicar exatamente uma entrada
Sucesso
200 · objeto JSON com os dados estendidos do CV
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."Esquema da resposta
Objeto JSON do parser estendido
/api/v2/resumesDevolve uma coleção paginada que inclui apenas os CV do utilizador associado à chave API.
Pedido
parâmetros de consulta · page? (número, predefinição 0) · size? (número, predefinição 10)
Sucesso
200 · coleção paginada { resumes, currentPage, totalItems, totalPages }
curl -X GET "https://cvreaderpro.com/api/v2/resumes?page=0&size=10" \
-H "Authorization: ApiKey YOUR_API_KEY"Esquema da resposta
Coleção paginada de CV
/api/v2/resumesCria um CV estruturado. Envie DocumentationResumeRequest ({ resume: UpdateResumeDto }); também é aceite um recurso em formato CVXml obtido numa resposta de leitura.
Pedido
application/json · DocumentationResumeRequest
Sucesso
201 · cabeçalho 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": []}}'Esquema da resposta
Envelope do CV criado
/api/v2/resumes/{resumeId}Devolve o CV se o UUID existir e pertencer ao utilizador da chave API.
Pedido
parâmetro do caminho · resumeId (UUID)
Sucesso
200 · recurso CV { id, resume: CVXml }
curl -X GET "https://cvreaderpro.com/api/v2/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY"Esquema da resposta
Envelope do CV
/api/v2/resumes/{resumeId}Atualiza um CV com o mesmo wrapper DocumentationResumeRequest usado na criação.
Pedido
parâmetro do caminho · resumeId (UUID) · application/json · DocumentationResumeRequest
Sucesso
200 · { id, resume: UpdateResumeDto } atualizado
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": []}}'Esquema da resposta
Envelope do CV atualizado
/api/v2/resumes/{resumeId}Elimina um CV que pertence ao utilizador da chave API.
Pedido
parâmetro do caminho · resumeId (UUID)
Sucesso
204 · sem conteúdo
curl -X DELETE "https://cvreaderpro.com/api/v2/resumes/RESUME_UUID" \
-H "Authorization: ApiKey YOUR_API_KEY"Esquema da resposta
Sem corpo de resposta
Analisa ficheiros de ofertas e gere as ofertas estruturadas do utilizador autenticado.
/api/v2/jobs/parserAnalisa uma descrição de emprego enviada como ficheiro multipart e cria a oferta para o utilizador autenticado.
Pedido
multipart/form-data · file (ficheiro)
Sucesso
200 · application/json · oferta criada
curl -X POST "https://cvreaderpro.com/api/v2/jobs/parser" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-F "file=@job-description.pdf"Esquema da resposta
Oferta
/api/v2/jobsDevolve uma coleção paginada e filtrável das ofertas que pertencem ao utilizador da chave API.
Pedido
parâmetros · page? · size? · status? · source? · reference? · title? · postedFrom? · postedTo? (data e hora ISO)
Sucesso
200 · coleção paginada { 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"Esquema da resposta
Coleção paginada de ofertas
/api/v2/jobsCria uma oferta estruturada a partir da entidade Job. O modelo JSON completo está em Esquemas; a resposta acrescenta campos gerados pelo servidor.
Pedido
application/json · objeto Job
Sucesso
201 · oferta criada
curl -X POST "https://cvreaderpro.com/api/v2/jobs" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data @job.jsonEsquema da resposta
Oferta
/api/v2/jobs/{jobIdOrReference}Procura uma oferta pelo UUID ou referência e só a devolve se pertencer ao utilizador da chave API.
Pedido
parâmetro do caminho · jobIdOrReference (UUID ou referência de texto)
Sucesso
200 · recurso de oferta
curl "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY"Esquema da resposta
Oferta
/api/v2/jobs/{jobIdOrReference}Atualiza uma oferta identificada por UUID ou referência. O backend define todos os campos Job editáveis documentados; envie o objeto completo para não limpar valores.
Pedido
parâmetro do caminho · jobIdOrReference · application/json · objeto Job
Sucesso
200 · recurso de oferta atualizado
curl -X PUT "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY" \
-H "Content-Type: application/json" \
--data @job.jsonEsquema da resposta
Oferta
/api/v2/jobs/{jobIdOrReference}Elimina uma oferta identificada por UUID ou referência.
Pedido
parâmetro do caminho · jobIdOrReference (UUID ou referência de texto)
Sucesso
204 · sem conteúdo
curl -X DELETE "https://cvreaderpro.com/api/v2/jobs/JAVA-001" \
-H "Authorization: ApiKey YOUR_API_KEY"Esquema da resposta
Sem corpo de resposta
Calcula matching detalhado e envia classificações através de webhooks.
/api/v2/recruiter-scores/matchCalcula uma pontuação detalhada para uma oferta e um CV guardados.
Pedido
application/json · jobId (UUID) · candidateId (UUID)
Sucesso
200 · RecruiterScoreDto, incluindo o ID da pontuação 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"}'Esquema da resposta
RecruiterScoreDto
/api/v2/recruiter-scores/match/filesAnalisa e guarda o CV e a oferta enviados e calcula a pontuação detalhada de matching para o par criado.
Pedido
multipart/form-data · resumeFile (ficheiro) · jobFile (ficheiro)
Sucesso
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"Esquema da resposta
RecruiterScoreDto
/api/v2/recruiter-scores/jobs/{jobId}/top-candidates/webhookAtualiza as pontuações e coloca na fila os 10 candidatos mais bem classificados, com todos os detalhes, para uma oferta.
Pedido
parâmetro do caminho · jobId (UUID)
Sucesso
202 · entrega na fila { 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"Esquema da resposta
Entrega de webhook na fila
/api/v2/recruiter-scores/resumes/{resumeId}/top-jobs/webhookColoca na fila as 10 ofertas detalhadas com melhor classificação para um CV no webhook configurado.
Pedido
parâmetro do caminho · resumeId (UUID)
Sucesso
202 · entrega na fila { 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"Esquema da resposta
Entrega de webhook na fila
Atualiza as definições de apresentação e gera um ou mais PDFs de CV.
/api/v2/pdf-generation/settingsAtualiza as ResumeSettings do utilizador autenticado usadas na geração de PDF. Envie o modelo completo para preservar os valores atuais; inclui layout, tipografia, margens, cores, secções, imagens e identidade da agência.
Pedido
application/json · objeto ResumeSettings
Sucesso
200 · ResumeSettings atualizadas
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.jsonEsquema da resposta
ResumeSettings
/api/v2/pdf-generation/resumes/{resumeId}Gera um PDF de um CV do utilizador com as definições atuais.
Pedido
parâmetro do caminho · resumeId (UUID)
Sucesso
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.pdfEsquema da resposta
Ficheiro PDF
/api/v2/pdf-generation/webhookColoca na fila a geração de PDFs para uma lista de UUID de CV do utilizador e envia os ficheiros pelo webhook configurado.
Pedido
application/json · lista de cadeias UUID
Sucesso
202 · lote na fila { 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"]'Esquema da resposta
Lote PDF na fila
Configure entregas de eventos assinadas para análise assíncrona, matching e geração de PDF.
| Operação | Endpoint | Autenticação |
|---|---|---|
| Entrega dos melhores candidatos | POST /api/v2/recruiter-scores/jobs/{jobId}/top-candidates/webhook | ApiKey |
| Entrega das melhores ofertas | POST /api/v2/recruiter-scores/resumes/{resumeId}/top-jobs/webhook | ApiKey |
| Entrega do lote de PDF | POST /api/v2/pdf-generation/webhook | ApiKey |
Os pedidos opcionais do Postman pressupõem que o utilizador da chave API já tem um webhook HTTPS configurado. Subscreva-o a resume.parsed, resume.matched, or pdf.generated. A coleção backend não regista nem renova webhooks; configure-os antes de ativar pedidos opcionais de classificação ou PDF. As entregas incluem um ID, uma data e hora, um cabeçalho de evento e uma assinatura 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> com HMAC-SHA256, devolva uma resposta 2xx para confirmar a entrega e use o ID da entrega para garantir a idempotência, pois as tentativas podem repetir o mesmo evento.Descarregue os CV de entrada e as saídas API capturadas. Todas as pessoas, empresas e vagas são fictícias. Os documentos de exemplo estão em inglês; os resultados dependem do documento e do parser e exigem revisão humana.