API Reference

Resumes

Upload and manage resume files using pre-signed S3 URLs for secure, direct-to-storage uploads.

Upload Flow

Resume uploads use a three-step flow: (1) Request a pre-signed upload URL from our API, (2) Upload the file directly to S3 using that URL, (3) Use the returned resumeUrl when creating or updating candidate profiles. This approach keeps large files off our servers and provides fast, reliable uploads.

Supported file types: PDF, DOC, DOCX. Maximum file size: 10 MB. Upload URLs expire after 1 hour.

Get Upload URL

Request a pre-signed S3 URL for uploading a resume file.

POST/resumes/upload-url
NameTypeRequiredDescription
filenamestringRequiredOriginal filename (e.g., resume.pdf)
contentTypestringRequiredMIME type: application/pdf, application/msword, or application/vnd.openxmlformats-officedocument.wordprocessingml.document
# Step 1: Get upload URL
curl -X POST https://apply-api.boringproject.ai/api/v1/resumes/upload-url \
  -H "Authorization: Bearer bp_live_..." \
  -H "Content-Type: application/json" \
  -d '{"filename": "john_doe_resume.pdf", "contentType": "application/pdf"}'

# Step 2: Upload file to S3
curl -X PUT "<uploadUrl>" -H "Content-Type: application/pdf" --data-binary @resume.pdf
Response200 OK
{
  "resumeId": "res_def456",
  "uploadUrl": "https://s3.amazonaws.com/bucket/path?X-Amz-Algorithm=...",
  "resumeUrl": "https://s3.amazonaws.com/bucket/path/resume.pdf",
  "expiresIn": 3600
}

Get Resume

Retrieve resume metadata and download URL by resume ID.

GET/resumes/:resumeId
Response200 OK
{
  "resumeId": "res_def456",
  "clientId": "client_xyz789",
  "filename": "john_doe_resume.pdf",
  "contentType": "application/pdf",
  "resumeUrl": "https://s3.amazonaws.com/bucket/path/resume.pdf",
  "uploadedAt": "2024-02-14T10:30:00Z"
}

Delete Resume

Delete a resume file from S3. Note that deleting a resume will affect any profiles referencing this resume URL.

Deleting a resume does not automatically update profiles using it. Update affected profiles with a new resumeUrl after deletion.
DELETE/resumes/:resumeId