Skip to main content
POST
/
bulk-upload-resumes
Bulk Upload Candidates
curl --request POST \
  --url https://api.example.com/bulk-upload-resumes \
  --header 'Content-Type: application/json' \
  --data '
{
  "files": [
    null
  ],
  "jobId": "<string>",
  "recruiterId": "<string>",
  "organizationId": "<string>",
  "userType": "<string>",
  "resumeScoreBreakdown": "<string>"
}
'
{
  "status": 1,
  "message": "Candidates created",
  "created": 5,
  "duplicates": 1,
  "skipped": 0,
  "candidates": [
    {
      "candidate_unique_id": "CAN-6E75E9",
      "email": "alice@example.com",
      "jobId": "688767b8477f8d30dc51b6d5"
    },
    {
      "candidate_unique_id": "CAN-7F86FA",
      "email": "bob@example.com",
      "jobId": "688767b8477f8d30dc51b6d5"
    }
  ]
}

Overview

Bulk upload candidate resumes in PDF, DOC, or DOCX format. The system automatically parses resumes, extracts candidate information, and scores them against job requirements.

Endpoint

POST /bulk-upload-resumes
Content-Type: multipart/form-data

Request Parameters

files
file[]
required
Array of resume files (PDF/DOC/DOCX format)
jobId
string
required
Job ID to associate candidates with
recruiterId
string
required
Recruiter’s unique identifier
organizationId
string
required
Organization’s unique identifier
userType
string
required
User role (Admin/Recruiter)
resumeScoreBreakdown
string
required
JSON string containing scoring criteria for resume evaluation

Request Example

curl -X POST https://api.exterview.ai/ats/candidates/bulk-upload \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -F "files=@resume1.pdf" \
  -F "files=@resume2.pdf" \
  -F "files=@resume3.pdf" \
  -F "jobId=688767b8477f8d30dc51b6d5" \
  -F "recruiterId=68a5b11168f3d6ccd1a" \
  -F "organizationId=68a595060754e2425" \
  -F "userType=Admin" \
  -F 'resumeScoreBreakdown={"experience": 40, "skills": 35, "education": 25}'

Response

status
integer
Status code: 1 for success, 0 for failure
message
string
Response message describing the result
created
integer
Number of candidates successfully created
duplicates
integer
Number of duplicate candidates skipped
skipped
integer
Number of resumes skipped due to errors
candidates
array
Array of created candidate objects

Response Example

{
  "status": 1,
  "message": "Candidates created",
  "created": 5,
  "duplicates": 1,
  "skipped": 0,
  "candidates": [
    {
      "candidate_unique_id": "CAN-6E75E9",
      "email": "alice@example.com",
      "jobId": "688767b8477f8d30dc51b6d5"
    },
    {
      "candidate_unique_id": "CAN-7F86FA",
      "email": "bob@example.com",
      "jobId": "688767b8477f8d30dc51b6d5"
    }
  ]
}