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
Application processing errors
After submission, applications may encounter processing errors:
type AtsSyncCandidateSyncApplicationVersionStatus { # ... other fields ... processingStatus: AtsSyncCandidateSyncApplicationProcessingStatusType errors: [AtsSyncCandidateSyncApplicationErrorType!]}Monitor the processingStatus and errors fields to identify and resolve any issues with submitted applications.
Common integration errors
| Scenario | Error | Resolution |
|---|---|---|
| Invalid Partner App | Invalid partner app configuration. Contact Indeed for assistance. | Contact your Indeed partner representative. |
| Invalid registration ID | The specified employer registration does not exist. | Verify the registration ID is correct. See the Employer Registration API guide. |
| Employer not opted in | The employer registration does not have the send applications feature enabled. | Update employer features using the Employer Registration API guide. |
| GraphQL validation | Missing required fields. | Review schema requirements. |
| Large application files | The total size of all attachments must not exceed 15 MB. | Exclude non-essential/large files. |
| Duplicate application files | Attachments must not be duplicated. | Exclude duplicated files. |
| Multiple resumes | Include only one resume. | Exclude duplicated resumes. |
| Multiple cover letters | Include only one cover letter. | Exclude duplicated cover letters. |
| Publishing deleted application | Application already deleted. | Do not re-initialize or submit a deleted application. |