Candidates
Applicant CRM: contact info, tags, status, and resume storage for scheduling.
Key APIs
| Method | Path | Purpose |
|---|---|---|
| GET | /v1/candidates | Paginated list with interview counts |
| POST | /v1/candidates | Create candidate (optional staged resume key) |
| GET | /v1/candidates/:id | Get candidate |
| PATCH | /v1/candidates/:id | Update profile |
| POST | /v1/candidates/:id/blacklist | Mark blacklisted |
| POST | /v1/candidates/:id/activate | Mark active |
| POST | /v1/candidates/:id/resume | Attach resume from temp upload key |
| GET | /v1/candidates/:id/resume | Presigned download URL |
Business Rules
- Email is unique per workspace; blacklisted candidates cannot be scheduled.
- Scheduling requires parsed resume text on the candidate record.
- Resume full text is never returned in API responses (used internally for interviews).
Dependencies
- S3 (upload, move, presigned download)
- OpenAI (optional structured parse via files flow)