Workable Candidates API
Create candidates from external sources, retrieve candidate profiles, and update profile data, resumes, cover letters, and source attribution.
Create candidates from external sources, retrieve candidate profiles, and update profile data, resumes, cover letters, and source attribution.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/workable-candidates-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Workable Candidates API
description: 'REST API for Workable''s recruiting and HR platform — manage jobs, candidates,
employees, departments, members, offers, requisitions, time tracking, time off,
review cycles, and subscriptions.'
version: 3.21.0
contact:
name: Workable
url: https://workable.readme.io/
servers:
- url: https://{subdomain}.workable.com/spi/v3
description: Workable API
variables:
subdomain:
default: example
description: Workable account subdomain
security:
- bearerAuth: []
tags:
- name: Candidates
paths:
/jobs/{shortcode}/candidates:
parameters:
- in: path
name: shortcode
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Create candidate on job
operationId: createJobCandidate
responses:
'201':
description: Created
/candidates:
get:
tags:
- Candidates
summary: List candidates
operationId: listCandidates
responses:
'200':
description: OK
/candidates/{id}:
parameters:
- in: path
name: id
required: true
schema:
type: string
get:
tags:
- Candidates
summary: Get candidate
operationId: getCandidate
responses:
'200':
description: OK
put:
tags:
- Candidates
summary: Update candidate
operationId: updateCandidate
responses:
'200':
description: OK
/candidates/{id}/comments:
parameters:
- in: path
name: id
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Add candidate comment
operationId: addCandidateComment
responses:
'201':
description: Created
/candidates/{id}/copy:
parameters:
- in: path
name: id
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Copy candidate
operationId: copyCandidate
responses:
'201':
description: Created
/candidates/{id}/disqualify:
parameters:
- in: path
name: id
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Disqualify candidate
operationId: disqualifyCandidate
responses:
'200':
description: OK
/candidates/{id}/revert:
parameters:
- in: path
name: id
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Revert candidate disqualification
operationId: revertCandidate
responses:
'200':
description: OK
/candidates/{id}/move:
parameters:
- in: path
name: id
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Move candidate
operationId: moveCandidate
responses:
'200':
description: OK
/candidates/{id}/relocate:
parameters:
- in: path
name: id
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Relocate candidate
operationId: relocateCandidate
responses:
'200':
description: OK
/candidates/{id}/ratings:
parameters:
- in: path
name: id
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Add candidate rating
operationId: addCandidateRating
responses:
'201':
description: Created
put:
tags:
- Candidates
summary: Update candidate rating
operationId: updateCandidateRating
responses:
'200':
description: OK
/candidates/{id}/tags:
parameters:
- in: path
name: id
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Add candidate tags
operationId: addCandidateTags
responses:
'201':
description: Created
/candidates/{id}/activities:
parameters:
- in: path
name: id
required: true
schema:
type: string
get:
tags:
- Candidates
summary: Get candidate activities
operationId: getCandidateActivities
responses:
'200':
description: OK
/candidates/{id}/files:
parameters:
- in: path
name: id
required: true
schema:
type: string
get:
tags:
- Candidates
summary: Get candidate files
operationId: getCandidateFiles
responses:
'200':
description: OK
/candidates/{id}/offer:
parameters:
- in: path
name: id
required: true
schema:
type: string
get:
tags:
- Candidates
summary: Get candidate offer
operationId: getCandidateOffer
responses:
'200':
description: OK
/candidates/{id}/update_custom_attribute_value:
parameters:
- in: path
name: id
required: true
schema:
type: string
post:
tags:
- Candidates
summary: Update candidate custom attribute value
operationId: updateCandidateCustomAttributeValue
responses:
'200':
description: OK
/talent_pool/candidates:
post:
tags:
- Candidates
summary: Add to talent pool
operationId: addToTalentPool
responses:
'201':
description: Created
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: 'Workable API token authentication using Bearer token in Authorization header.
Token types include account tokens, user tokens, and API access tokens.
'