Candidates API
The Candidates API allows you to bulk upload resumes and retrieve parsed candidate information. Resumes are processed asynchronously, and you can retrieve the parsed candidates using batch operations.Bulk Upload Resumes
Upload multiple resumes for parsing and candidate creation.POST /v1/partner/candidates/bulk/resume
Authentication
Requires API key authentication viaAuthorization: Bearer YOUR_API_KEY header.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
resumeURLs | array of strings | Yes | Array of publicly accessible URLs pointing to resume files (PDF, DOC, DOCX). Maximum 200 resumes per batch. |
Request Body Example
Example Request
Example Response
Response Fields
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates if the request was successful |
data.batchId | string (UUID) | Unique identifier for this batch. Use this to retrieve candidates later. |
data.fileCount | number | Number of resumes in the batch |
Validation Rules
resumeURLsmust be provided and cannot be emptyresumeURLsmust be an array- Each URL must be a non-empty string
- URLs must be publicly accessible
- Maximum 200 resumes per batch
Webhook Events
When you upload resumes, webhook events are triggered:-
resume.bulk_upload_parse.started: Sent when batch processing starts -
resume.bulk_upload_parse.failed: Sent if batch processing fails
Error Responses
Missing resumeURLs:Get Batch Candidates
Retrieve parsed candidates from a batch with pagination.GET /v1/partner/candidates/batch/:batchId
Authentication
Requires API key authentication viaAuthorization: Bearer YOUR_API_KEY header.
Path Parameters
| Parameter | Type | Description |
|---|---|---|
batchId | string (UUID) | The batch ID returned from the bulk upload endpoint |
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
pageNumber | integer | No | Page number (default: 1) |
perPage | integer | No | Items per page. Must be one of: 10, 20, 40, 80, 100 (default: 10) |
Example Request
Example Response
Response Fields
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates if the request was successful |
data.batchId | string (UUID) | The batch ID |
data.batchStatus | string | Batch processing status (e.g., “PROCESSING”, “COMPLETED”, “FAILED”) |
data.total | number | Total number of candidates in the batch |
data.pageNumber | number | Current page number |
data.perPage | number | Number of items per page |
data.hasNextPage | boolean | Indicates if there are more pages |
data.candidates | array | Array of candidate objects |
Candidate Object Fields
| Field | Type | Description |
|---|---|---|
id | string (UUID) | Unique candidate identifier |
name | string | Candidate’s full name |
email | string | Candidate’s email address |
phone | string | Candidate’s phone number |
resumeUrl | string | URL to the stored resume file |
parsedData | object | Parsed resume data (skills, experience, education, etc.) |
createdAt | string (ISO 8601) | Timestamp when candidate was created |
Error Responses
Invalid batchId:Use Cases
Bulk Candidate Ingestion
Upload multiple resumes at once to quickly build your candidate database:- Collect resume URLs from your ATS or other sources
- Upload them in batches (up to 200 per batch)
- Receive webhook notifications when processing starts/completes
- Retrieve parsed candidates using the batch ID
Resume Parsing Pipeline
Integrate TapTalent’s resume parsing into your workflow:- Upload resumes as they come in
- Receive real-time webhook notifications
- Retrieve parsed candidate data programmatically
- Sync with your internal systems
Best Practices
Batch Size
- Use batches of 50-100 resumes for optimal processing time
- Maximum 200 resumes per batch
- Split larger sets into multiple batches
Error Handling
- Handle webhook events for batch status updates
- Implement retry logic for failed uploads
- Monitor batch status and handle failures gracefully
Pagination
- Use appropriate
perPagevalues (10, 20, 40, 80, or 100) - Check
hasNextPageto determine if more data is available - Implement pagination loops to retrieve all candidates
Webhook Integration
- Set up webhook URL to receive batch status updates
- Handle both success and failure webhook events
- Use webhooks to trigger downstream processing
Next Steps
- Set up Webhooks to receive batch status updates
- Review Integration Notes for best practices
- Explore other API endpoints