file.createFileUploadHandle

Creates a presigned upload URL that allows uploading a file directly to storage, bypassing the need to send file bytes through the API.

Benefits over multipart upload:

  • Reliability: File bytes are uploaded directly to storage, avoiding timeouts and connection resets that can occur when proxying large files through the API.
  • Compatibility: Avoids issues with firewalls or proxies that block or scan multipart payloads containing binary content.
  • Simplicity: The follow-up call to, e.g., candidate.uploadResume or candidate.uploadFile is a plain application/json request rather than multipart/form-data.

Requires the candidatesWrite permission.

Usage flow:

  1. Call file.createFileUploadHandle with the file metadata to get a presigned upload URL, form fields, and a handle.
  2. Upload the file directly to the returned url using a multipart/form-data POST request. Include all returned fields as form fields, and the file as the last field named file.
  3. Call candidate.uploadResume with { candidateId, resumeHandle } or candidate.uploadFile with { candidateId, fileHandle } using Content-Type: application/json to associate the uploaded file with a candidate.

The presigned URL expires after 10 minutes. The fileUploadContext must be one of CandidateResume or CandidateFiles.

Language
Credentials
Basic
base64
:
Response
Click Try It! to start a request and see the response here!