Workable
App · Jobs & Hiring · 20 actions
Manage hiring on Workable: job postings, candidates, pipeline stages, notes and ratings.
Actions
| Action | What it does |
|---|---|
| Comment on a candidate | Add a note to a candidate's timeline. |
| Create a candidate | Add a candidate to a job on Workable. |
| Disqualify a candidate | Reject a candidate, optionally recording why. |
| Get a candidate | Get one candidate's full profile. |
| Get a job | Get the full details of one job posting. |
| Get job application form | Get the application form for a job, which fields it asks for and which are required. |
| List candidate activity | List a candidate's activity timeline: stage moves, notes and ratings. |
| List candidates | List candidates, optionally narrowed to one job, one pipeline stage or one email address. |
| List departments | List the departments configured on your Workable account. |
| List job hiring team | List the team members assigned to a job. |
| List job questions | List the application questions asked on a job. |
| List jobs | List the job postings on your Workable account. |
| List pipeline stages | List the recruiting pipeline stages on the account, with the slug each one is addressed by when moving a candidate. |
| List rejection reasons | List the rejection reasons configured on the account, with the id each one is addressed by when disqualifying a candidate. |
| List team members | List the members of your Workable account. |
| Move a candidate to a stage | Move a candidate to a different stage of the pipeline. |
| Rate a candidate | Leave a 1-5 rating, with an optional comment. |
| Revert a disqualification | Put a disqualified candidate back into the pipeline. |
| Set candidate tags | Set the tags on a candidate. |
| Update a candidate | Change a candidate's profile details. |
Comment on a candidate
Add a note to a candidate's timeline.
Inputs
- Candidate
candidate_idtextRequired - The id of the candidate. Use 'List candidates' to find one -- the id also appears in the candidate's Workable web address.
- Acting team member
member_idtextRequired - The Workable team member this is recorded as being done by. Workable requires one on every candidate action that appears in the timeline.
- Note
bodytextRequired - The text of the note.
- Visible to
policylist - Limit the note to these roles. Leave blank to use the account's default visibility.One or more of:
admin,recruiting_admin(Recruiting admin),hiring_manager(Hiring manager),simple,reviewer,recruiter.
Outputs
candidate_idtext- The candidate the note was added to.
commentedtrue/false- True when Workable accepted the note.
policylist- The roles the note was limited to, if any.
statustext- Status of the action execution ("success" on success).
Example output
{
"candidate_id": "3fc9a80f",
"commented": true,
"policy": [],
"status": "success"
}Create a candidate
Add a candidate to a job on Workable.
Inputs
- Job code
shortcodetextRequired - The job's shortcode -- the short code at the end of its Workable web address. Use 'List jobs' to find one.
- Full name
nametextRequired - The candidate's full name.
- Email
emailtextRequired - The candidate's email address.
- Headline
headlinetext - A one-line summary, such as their current title.
- Summary
summarytext - A longer summary of the candidate.
- Phone
phonetext - The candidate's phone number.
- Address
addresstext - The candidate's address.
- Cover letter
cover_lettertext - The candidate's cover letter.
- Resume URL
resume_urltext - A link to the candidate's resume.
- Skills
skillslist - The candidate's skills.
- Sourced by us
sourcedtrue/false - On (the default) files them as sourced by your team. Off files them as having applied themselves, which places them in a different pipeline stage.Default:
true.
Outputs
candidateobject- The candidate that was created.
candidate_idtext- The new candidate's id.
statustext- Status of the action execution ("success" on success).
Example output
{
"candidate": {
"email": "jordan@example.com",
"id": "3fc9a80f",
"name": "Jordan Vale",
"stage": "Sourced"
},
"candidate_id": "3fc9a80f",
"status": "success"
}Disqualify a candidate
Reject a candidate, optionally recording why. This can be undone with 'Revert a disqualification'.
Inputs
- Candidate
candidate_idtextRequired - The id of the candidate. Use 'List candidates' to find one -- the id also appears in the candidate's Workable web address.
- Acting team member
member_idtextRequired - The Workable team member this is recorded as being done by. Workable requires one on every candidate action that appears in the timeline.
- Reason
disqualification_reason_idtext - The rejection reason to record. Leave blank to disqualify without one.
Outputs
candidate_idtext- The candidate that was disqualified.
disqualifiedtrue/false- True when Workable accepted the disqualification.
statustext- Status of the action execution ("success" on success).
Example output
{
"candidate_id": "3fc9a80f",
"disqualified": true,
"status": "success"
}Get a candidate
Get one candidate's full profile.
Inputs
- Candidate
candidate_idtextRequired - The id of the candidate. Use 'List candidates' to find one -- the id also appears in the candidate's Workable web address.
Outputs
candidateobject- The candidate's profile.
statustext- Status of the action execution ("success" on success).
Example output
{
"candidate": {
"email": "jordan@example.com",
"id": "3fc9a80f",
"name": "Jordan Vale",
"stage": "Applied",
"tags": [
"referral"
]
},
"status": "success"
}Get a job
Get the full details of one job posting.
Inputs
- Job code
shortcodetextRequired - The job's shortcode -- the short code at the end of its Workable web address. Use 'List jobs' to find one.
Outputs
jobobject- The job posting.
statustext- Status of the action execution ("success" on success).
Example output
{
"job": {
"id": "1F8C9A",
"shortcode": "A1B2C3D4E5",
"state": "published",
"title": "Product Designer"
},
"status": "success"
}Get job application form
Get the application form for a job, which fields it asks for and which are required.
Inputs
- Job code
shortcodetextRequired - The job's shortcode -- the short code at the end of its Workable web address. Use 'List jobs' to find one.
Outputs
application_formobject- The job's application form configuration.
statustext- Status of the action execution ("success" on success).
Example output
{
"application_form": {
"form_fields": [
{
"key": "phone",
"label": "Phone",
"required": "true"
}
],
"questions": []
},
"status": "success"
}List candidate activity
List a candidate's activity timeline: stage moves, notes and ratings.
Inputs
- Candidate
candidate_idtextRequired - The id of the candidate. Use 'List candidates' to find one -- the id also appears in the candidate's Workable web address.
- Updated after
updated_afterdate - Only return activity on or after this date.
- Maximum results
limitnumber - How many results to return per page (1-100). Defaults to 50.From 1 to 100.
Outputs
activitieslist- The candidate's activity, newest first.
countnumber- How many activities were returned.
pagingobject- Cursor for the next page, when there is one.
statustext- Status of the action execution ("success" on success).
Example output
{
"activities": [
{
"action": "comment",
"body": "Strong portfolio.",
"created_at": "2026-01-14T10:22:05Z",
"id": "aa11bb"
}
],
"count": 1,
"paging": {},
"status": "success"
}List candidates
List candidates, optionally narrowed to one job, one pipeline stage or one email address.
Inputs
- Job code
shortcodetext - Only return candidates on this job. Leave blank for candidates across every job.
- Stage
stagetext - Only return candidates currently in this stage.
- Email
emailtext - Only return candidates with this email address.
- Created after
created_afterdate - Only return candidates created on or after this date.
- Updated after
updated_afterdate - Only return candidates updated on or after this date.
- Maximum results
limitnumber - How many results to return per page (1-100). Defaults to 50.From 1 to 100.
Outputs
candidateslist- The candidates that matched.
countnumber- How many candidates were returned.
pagingobject- Cursor for the next page, when there is one.
statustext- Status of the action execution ("success" on success).
Example output
{
"candidates": [
{
"email": "jordan@example.com",
"id": "3fc9a80f",
"name": "Jordan Vale",
"stage": "Applied"
}
],
"count": 1,
"paging": {},
"status": "success"
}List departments
List the departments configured on your Workable account.
Inputs
None.
Outputs
countnumber- How many departments were returned.
departmentslist- The account's departments.
statustext- Status of the action execution ("success" on success).
Example output
{
"count": 1,
"departments": [
{
"id": "3f0c1e",
"name": "Design",
"parent_id": null
}
],
"status": "success"
}List job hiring team
List the team members assigned to a job.
Inputs
- Job code
shortcodetextRequired - The job's shortcode -- the short code at the end of its Workable web address. Use 'List jobs' to find one.
Outputs
countnumber- How many members were returned.
memberslist- The job's hiring team.
statustext- Status of the action execution ("success" on success).
Example output
{
"count": 1,
"members": [
{
"email": "dana@example.com",
"id": "13e0eb0e",
"name": "Dana Reeve",
"role": "admin"
}
],
"status": "success"
}List job questions
List the application questions asked on a job.
Inputs
- Job code
shortcodetextRequired - The job's shortcode -- the short code at the end of its Workable web address. Use 'List jobs' to find one.
Outputs
countnumber- How many questions were returned.
questionslist- The job's application questions.
statustext- Status of the action execution ("success" on success).
Example output
{
"count": 1,
"questions": [
{
"body": "Why do you want this role?",
"id": "9A8B7C",
"required": true,
"type": "free_text"
}
],
"status": "success"
}List jobs
List the job postings on your Workable account.
Inputs
- Status
statetext - Only return jobs in this state. Leave blank for all.One of:
draft,published,archived,closed. - Include extra fields
include_fieldslist - Long-form fields to include with each job. These are omitted by default because they are large.One or more of:
description,full_description(Full description),requirements,benefits. - Created after
created_afterdate - Only return jobs created on or after this date.
- Updated after
updated_afterdate - Only return jobs updated on or after this date.
- Maximum results
limitnumber - How many results to return per page (1-100). Defaults to 50.From 1 to 100.
Outputs
countnumber- How many jobs were returned.
jobslist- The jobs that matched.
pagingobject- Cursor for the next page, when there is one.
statustext- Status of the action execution ("success" on success).
Example output
{
"count": 1,
"jobs": [
{
"department": "Design",
"id": "1F8C9A",
"shortcode": "A1B2C3D4E5",
"state": "published",
"title": "Product Designer"
}
],
"paging": {},
"status": "success"
}List pipeline stages
List the recruiting pipeline stages on the account, with the slug each one is addressed by when moving a candidate.
Inputs
None.
Outputs
countnumber- How many stages were returned.
stageslist- The account's pipeline stages, in order.
statustext- Status of the action execution ("success" on success).
Example output
{
"count": 1,
"stages": [
{
"kind": "sourced",
"name": "Sourced",
"position": 0,
"slug": "sourced"
}
],
"status": "success"
}List rejection reasons
List the rejection reasons configured on the account, with the id each one is addressed by when disqualifying a candidate.
Inputs
None.
Outputs
countnumber- How many reasons were returned.
disqualification_reasonslist- The account's configured rejection reasons.
statustext- Status of the action execution ("success" on success).
Example output
{
"count": 1,
"disqualification_reasons": [
{
"candidate_withdrew": false,
"description": "Not enough experience",
"id": "7c2a11",
"position": 0
}
],
"status": "success"
}List team members
List the members of your Workable account.
Inputs
- Role
roletext - Only return members with this recruiting role.One of:
simple,admin,reviewer. - Status
statustext - Only return members with this status.One of:
active,inactive,all. - Email
emailtext - Only return the member with this email address.
- Maximum results
limitnumber - How many results to return per page (1-100). Defaults to 50.From 1 to 100.
Outputs
countnumber- How many members were returned.
memberslist- The members that matched.
pagingobject- Cursor for the next page, when there is one.
statustext- Status of the action execution ("success" on success).
Example output
{
"count": 1,
"members": [
{
"active": true,
"email": "dana@example.com",
"id": "13e0eb0e",
"name": "Dana Reeve"
}
],
"paging": {},
"status": "success"
}Move a candidate to a stage
Move a candidate to a different stage of the pipeline.
Inputs
- Candidate
candidate_idtextRequired - The id of the candidate. Use 'List candidates' to find one -- the id also appears in the candidate's Workable web address.
- Acting team member
member_idtextRequired - The Workable team member this is recorded as being done by. Workable requires one on every candidate action that appears in the timeline.
- Move to stage
target_stagetextRequired - The pipeline stage to move the candidate into.
Outputs
candidate_idtext- The candidate that was moved.
movedtrue/false- True when Workable accepted the move.
stagetext- The stage the candidate is now in.
statustext- Status of the action execution ("success" on success).
Example output
{
"candidate_id": "3fc9a80f",
"moved": true,
"stage": "interview",
"status": "success"
}Rate a candidate
Leave a 1-5 rating, with an optional comment.
Inputs
- Candidate
candidate_idtextRequired - The id of the candidate. Use 'List candidates' to find one -- the id also appears in the candidate's Workable web address.
- Acting team member
member_idtextRequired - The Workable team member this is recorded as being done by. Workable requires one on every candidate action that appears in the timeline.
- Rating
gradenumberRequired - The rating to leave, from 1 (worst) to 5 (best).From 1 to 5.
- Comment
commenttext - An optional comment to leave with the rating.
Outputs
candidate_idtext- The candidate that was rated.
gradenumber- The rating that was left.
ratedtrue/false- True when Workable accepted the rating.
statustext- Status of the action execution ("success" on success).
Example output
{
"candidate_id": "3fc9a80f",
"grade": 4,
"rated": true,
"status": "success"
}Revert a disqualification
Put a disqualified candidate back into the pipeline.
Inputs
- Candidate
candidate_idtextRequired - The id of the candidate. Use 'List candidates' to find one -- the id also appears in the candidate's Workable web address.
- Acting team member
member_idtextRequired - The Workable team member this is recorded as being done by. Workable requires one on every candidate action that appears in the timeline.
Outputs
candidate_idtext- The candidate that was reinstated.
revertedtrue/false- True when Workable accepted the reversal.
statustext- Status of the action execution ("success" on success).
Example output
{
"candidate_id": "3fc9a80f",
"reverted": true,
"status": "success"
}Set candidate tags
Set the tags on a candidate. This replaces their existing tags: any tag you leave out is removed, and an empty list clears them all.
Inputs
- Candidate
candidate_idtextRequired - The id of the candidate. Use 'List candidates' to find one -- the id also appears in the candidate's Workable web address.
- Tags
tagslist - The complete set of tags the candidate should end up with. To add one, include the existing tags too.
Outputs
candidate_idtext- The candidate whose tags were set.
statustext- Status of the action execution ("success" on success).
tagslist- The tags the candidate now has.
Example output
{
"candidate_id": "3fc9a80f",
"status": "success",
"tags": [
"referral",
"design"
]
}Update a candidate
Change a candidate's profile details. Only the fields you fill in are changed.
Inputs
- Candidate
candidate_idtextRequired - The id of the candidate. Use 'List candidates' to find one -- the id also appears in the candidate's Workable web address.
- First name
firstnametext - The candidate's first name.
- Last name
lastnametext - The candidate's last name.
- Email
emailtext - The candidate's email address.
- Headline
headlinetext - A one-line summary, such as their current title.
- Summary
summarytext - A longer summary of the candidate.
- Phone
phonetext - The candidate's phone number.
- Address
addresstext - The candidate's address.
- Cover letter
cover_lettertext - The candidate's cover letter.
Outputs
candidateobject- The candidate after the update.
statustext- Status of the action execution ("success" on success).
updated_fieldslist- The names of the fields that were changed.
Example output
{
"candidate": {
"headline": "Senior Product Designer",
"id": "3fc9a80f",
"name": "Jordan Vale"
},
"status": "success",
"updated_fields": [
"headline"
]
}