1. Guides
CVViZ API Documentation
  • Start here
    • Quickstart
    • Authentication & permissions
  • Guides
    • API concepts
    • Create a job
    • Find candidates and download resumes
    • Pagination & filtering
    • Rate limits & usage
    • Errors & troubleshooting
    • Safe retries & idempotency
  • Jobs
    • Create a job
      POST
    • List jobs
      GET
    • Get a job
      GET
    • Update a job
      PATCH
    • List candidates for a job
      GET
    • List job benchmark resumes
      GET
    • List candidate job offers
      GET
    • Update a candidate application stage
      PATCH
    • Update job status
      PATCH
  • Candidates
    • List candidates
      GET
    • Get a candidate
      GET
    • Update a candidate
      PATCH
    • List applications for a candidate
      GET
    • List candidate events
      GET
    • List candidate documents
      GET
    • Download a candidate resume
      GET
  • Tasks
    • List tasks
    • Create a task
    • Update a task
    • Update task completion
  • Notes & tags
    • List job notes
    • Add a job note
    • List tags for a job
    • Add tags to a job
    • List tags for a candidate
    • Add tags to a candidate
    • List candidate notes
    • Add a candidate note
    • List candidate tags
  • Screening & interviews
    • List job pre-screening questions
    • List candidate screening answers
    • List candidate interview feedback
  • Organization & lookup data
    • List candidate stages for a job
    • Get job creation options
    • List industries
    • List job functions
    • List employer types
    • List client companies
    • List account users
    • List departments
    • List hiring managers
    • List candidate grades
  1. Guides

Find candidates and download resumes

A candidate is a person in your database. An application connects that
person to a particular job and its hiring stage. One candidate can have multiple applications.

Find the candidate#

Use GET /candidates with candidates.read. To narrow results to a job, use
job_id; a stage status filter requires job_id. Discover stage codes
with GET /jobs/{jobId}/candidate-stages (candidates.read).
See Pagination & filtering.
Retrieve a profile with GET /candidates/{candidateId}. Read job associations
with GET /candidates/{candidateId}/applications and the permission documented
on that endpoint. Do not confuse a candidate's application stage with a job's lifecycle status.

Access a candidate's resume#

GET /candidates/{candidateId} includes the original resume metadata:
{
  "data": {
    "id": 501,
    "resume": {
      "fileName": "Asha_Sharma_Resume.pdf",
      "downloadUrl": "https://api.cvviz.com/v1/candidates/501/resume/download"
    }
  }
}
This is a partial response example. resume is null when no usable original
resume is attached. Candidate responses also include current company and job
title, phone country code, LinkedIn/GitHub links and notice period where known.
Call downloadUrl with your API credential, which must have
resumes.download. The API checks access and redirects (302) to a
five-minute file URL. Follow the redirect without forwarding the API
Authorization header to the file host. The API link requires authentication;
it is not a public link for embedding in a web page.
For an integration that needs a direct file URL, request
GET /candidates/{candidateId}?include=resume_download_url with both
candidates.read and resumes.download. The resume object then also contains
directDownloadUrl and expiresAt. Never log or persist the temporary URL.
Anyone possessing it can download the file until it expires, even if the
credential is revoked in the meantime. Obtain a fresh URL when needed.
All API resume access respects the account's existing content-access limits.
Previous
Create a job
Next
Pagination & filtering
Built with