Coding agent documentation index Fetch the complete documentation index at: https://docs.worklittle.com/docs-agent-manifest.json Use this file to discover all available pages before exploring further.

Manage candidates

Operate your employer ATS: candidates, pipeline stages, notes, interviews, employees, email, and offers.

Overview

ATS routes are organization-scoped. They never appear on public job search. Requires session auth or Bearer key with jobs:applications.

When to use

If you are building:

Hiring pipeline software List and stage candidates with /candidates or MCP list_candidates / update_candidates Recruiter CRM features Notes, bookmarks, alerts, and interview scheduling tools HRIS-style employee records /employees and employment period tools after hire Outbound hiring comms Email templates, preview, metered /email/send, and sent history /email/sends (opens included) Offer management /offers CRUD and MCP create_offer

Basic usage

curl -s "https://api.worklittle.com/candidates?limit=25&stage_key=applied" \
  -H "Authorization: Bearer $WORKLITTLE_API_KEY"
curl -s -X PATCH "https://api.worklittle.com/candidates/CANDIDATE_ID" \
  -H "Authorization: Bearer $WORKLITTLE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"stage_key":"phone_screen"}'

SDK / CLI: Libraries. MCP: get_candidate_profile, update_candidates.

Manage candidates reference

> Self-contained reference for Worklittle employer ATS APIs.

Overview

| Area | REST prefix | MCP examples |
| --- | --- | --- |
| Candidates | `/candidates`, `/candidate-*` | `list_candidates`, `get_candidate_profile` |
| Employees | `/employees` | `list_employees`, `create_employee` |
| Email & offers | `/email-messages`, `/email/send`, `/email/sends`, `/offers` | `send_email`, `list_email_sends`, `create_offer` |
| Applications (read) | `/business/jobs/:id/applications` | `list_job_applications`, `get_job_application` |

Catalog apply is Apply for jobs. Hosted submit_job_application is Embedded job board.

Candidates (REST)

| Endpoint | Methods | Purpose |
| --- | --- | --- |
| `/field-hints` | GET | Placeholder examples for contact and employment fields |
| `/candidates` | GET, PATCH | List (paginated with `limit`) or update core fields and stage |
| `/candidates/:id` | GET | Full profile, applications, notes, interviews, `field_hints` |
| `/candidates/:id/resume-file` | GET | Download applicant resume file |
| `/candidates/:id/bookmark` | POST, DELETE | Org-wide bookmark |
| `/candidates/:id/alerts` | GET, PATCH | Your pipeline alerts and follow-up reminder |
| `/candidates/:id/generate-about-summary` | POST | Regenerate one-sentence `about_summary` |
| `/candidate-alerts` | GET | All of your candidate alert settings |
| `/candidates/import` | POST | Bulk import candidates |
| `/business/candidates/answers` | POST | Fetch application Q&A for many candidate ids |
| `/job-applications/:id/cover-letter-file` | GET | Download cover letter file for an application |
| `/candidate-notes` | GET, POST, PATCH, DELETE | Notes (`?candidate_id=` on GET) |
| `/candidate-notes/:id` | GET, DELETE | Single note with attachments |
| `/candidate-note-attachments` | POST, DELETE | Upload attachment (base64 or raw bytes) |
| `/candidate-note-attachments/:id` | GET | Download attachment |
| `/candidate-experience` | POST, PATCH, DELETE | Work history CRUD |
| `/candidate-education` | POST, PATCH, DELETE | Education CRUD |
| `/candidate-interviews` | POST, PATCH, DELETE | Interview CRUD |
| `/interview-answers` | POST, PATCH, DELETE | Interview Q&A CRUD |
| `/pipeline-stages` | GET | Pipeline stages for your organization |

List filters: limit, cursor, sort, q, location, stage_key, posted_job_id, bookmarked=true.

Employees (REST)

| Endpoint | Methods | Purpose |
| --- | --- | --- |
| `/employees` | GET, POST | List or create employees |
| `/employees/:id` | GET, PATCH, DELETE | Employee detail, update, or remove |
| `/employee-employment-periods` | POST, PATCH, DELETE | Employment stint history |
| `/employee-performance-feedback` | PUT, DELETE | Performance feedback rows |

Email and offers

| Endpoint | Methods | Purpose |
| --- | --- | --- |
| `/email-messages` | GET, POST, PUT, PATCH, DELETE | Stage email templates and settings |
| `/email-messages/preview` | POST | Preview a template before send |
| `/email/send` | POST | Send or schedule ATS email to candidates |
| `/email/sends` | GET | List org sent emails + open stats (ATS + automation) |
| `/usage` | GET | Org usage / audit logs (`organization_logs`; same Destination as Business Usage — `where_label` / `where_href` for Chat, Voice, jobs, Private, …; metered AI + free burns + org activity; filters: `source` incl. `org_activity` / `platform_ai`, `since`, `cursor`, `api_key_id`; `ledger_type`) |
| `/offers` | GET, POST, PATCH, DELETE | Offer list and CRUD |

Template CRUD and preview are free; each successful send is metered - Pricing.

Common mistakes

| Wrong | Correct |
| --- | --- |
| Using `jobs:read` for ATS | Use `jobs:applications` |
| Omitting `limit` expecting small lists | Default to paginated `limit` + `cursor` |
| Searching People index for applicants | Use `/candidates` for your org's applicants |

Patterns and gotchas

Applications vs candidates - Apply creates applications; ATS upsert creates candidate rows when org-linked. Webhooks - candidate.application_submitted and stage events - Webhooks. * Resume files - GET /candidates/:id/resume-file for downloads; not the same as People resume unlock.