Data types and file handling
Data types, file attachments, and upload requirements for the Send Candidates API.
legal notice
By using this API and its documentation and building an integration, you agree to the Additional API Terms and Guidelines.
Data types
Applicant details
The applicant object contains comprehensive candidate information.
Required fields
| Field | Type | Description |
|---|---|---|
name | String | Full name of the applicant |
email | EmailAddress | Valid email address for contact |
Location information
| Field | Type | Description |
|---|---|---|
streetAddress | String | Complete address for geolocation |
postalCode | String | Postal/ZIP code |
country | CountryCode | ISO country code |
Professional information
| Field | Type | Description |
|---|---|---|
workExperience | Object | Employment history |
education | List of Objects | Academic background |
skills | List of Objects | Technical and soft skills |
certifications | List of Objects | Professional licenses and certifications |
Supported file attachment types
| Type | Enum value | Description | Processing |
|---|---|---|---|
| Primary Resume | RESUME | Main resume document | Parsed for matching/ranking |
| Additional Resumes | OTHER_RESUME | Secondary resumes | Stored but not parsed |
| Primary Cover Letter | COVER_LETTER | Main cover letter document | Stored |
| Additional Cover Letters | OTHER_COVER_LETTER | Secondary cover letters | Stored |
| Other | OTHER | Other supporting documents | Stored |
Important notes
- Only one attachment of type
RESUMEis allowed per application. It is parsed for candidate matching. - Only one attachment of type
COVER_LETTERis allowed per application.
File upload requirements
Presigned URL constraints
Based on S3 presigned URL validation, uploads must meet these strict requirements:
Required headers
- Content-Type: Must match exactly what was declared during initialization
- Content-Length: Must match the declared size in bytes
- Content-MD5: Base64-encoded MD5 hash of the file content
Upload request example
curl -X PUT \ "https://s3.amazonaws.com/..." \ -H "Content-Type: application/pdf" \ -H "Content-Length: 245123" \ -H "Content-MD5: rL0Y20zC+Fzt72VPzMSk2A==" \ --data-binary @resume.pdfMD5 checksum calculation
JavaScript/Node.js:
const crypto = require('crypto');const fs = require('fs');
function calculateMD5(filePath) { const fileBuffer = fs.readFileSync(filePath); const hash = crypto.createHash('md5'); hash.update(fileBuffer); return hash.digest('base64');}Python:
import hashlibimport base64
def calculate_md5(file_path): with open(file_path, 'rb') as f: file_content = f.read() return base64.b64encode( hashlib.md5(file_content).digest() ).decode('ascii')Upload validation
S3 rejects uploads that fail validation with these error codes:
| Error code | Cause | Solution |
|---|---|---|
SignatureDoesNotMatch | Missing or incorrect headers or content. | Verify that all headers match initialization values. |
BadDigest | File content doesn't match MD5. | Verify file integrity and checksum calculation. |
AccessDenied | URL expired (>5 minutes). | Reinitialize the application. |
Error handling
Common errors include S3 upload validation failures, partner app configuration issues, employer registration errors, and file attachment constraints.
For detailed error descriptions and resolution steps, see Troubleshoot Send Candidates API errors.