The Workable connector lets your AI agent act in each user's Workable account. Each user connects their own Workable access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 66 tools.
- Tools
- 66
- What they doRead · write · destructive
- 40 · 26 · 040 read26 write0 destructive
- Users sign in with
- Access token
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Workable connection
In AgentKit > Connections, create a Workable connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'workable'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Workable:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'workable_candidates_list',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "workable"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Workable:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="workable_candidates_list",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user opens the link once and enters their Workable credentials there. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolworkable_candidate_activities_listList the activity stream of a candidate, such as comments, stage moves, ratings and emails.Read-onlyList Candidate Activities
List the activity stream of a candidate, such as comments, stage moves, ratings and emails. Returns an activities array with each activity's action, body, member, stage and created_at. Use workable_candidate_activities_list for one candidate's history. Use workable_job_activities_list for a whole job.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
actionsstring- Only return these activity actions, comma-separated (for example comment,moved).
limitinteger- Number of activities to return per page. Workable defaults to 50. Example: 25.
max_idstring- Return activities with an ID less than or equal to this ID. Example: "2a9b4c".
since_idstring- Return activities with an ID greater than or equal to this ID. To fetch the next page, copy the since_id value from the paging.next URL of the previous response. Example: "2a9b4c".
updated_afterstring- Only return activities updated at or after this date, ISO 8601. Example: "2024-01-01T00:00:00Z".
workable_candidate_files_listList the files attached to a candidate, such as resumes, cover letters and comment attachments.Read-onlyList Candidate Files
List the files attached to a candidate, such as resumes, cover letters and comment attachments. Returns a files array with each file's name, type and download URL. Use workable_candidate_files_list to fetch a candidate's documents.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
workable_candidate_getGet one candidate's full profile by ID.Read-onlyGet Candidate
Get one candidate's full profile by ID. Returns contact details, job and stage, resume and image URLs, education, experience, skills, tags, answers, social profiles and disqualification details. Use workable_candidate_get for a full profile. Use workable_candidates_list to search or filter candidates.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
workable_candidate_offer_getGet the offer data for a candidate.Read-onlyGet Candidate Offer
Get the offer data for a candidate. Returns the candidate's offer, including its state, the offer document details and its fields. Use workable_candidate_offer_get from a candidate. Use workable_offer_get when you already have the offer ID.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
workable_candidates_listList candidates in the account, optionally filtered by job, pipeline stage, email, or created and updated time.Read-onlyList Candidates
List candidates in the account, optionally filtered by job, pipeline stage, email, or created and updated time. Returns a candidates array (id, name, email, stage, job shortcode, disqualified flag, created_at) and a paging.next URL when more pages exist. Use workable_candidates_list to find candidates or look one up by email. Use workable_candidate_get for a full profile.
Inputs
created_afterstring- Only return candidates created after this timestamp, in ISO 8601 (e.g. 20150708T115616Z) or Unix time (e.g. 1436356721).
emailstring- Only return candidates with this email address. Example: "jane.doe@example.com".
limitinteger- Number of candidates to return per page. Workable defaults to 50. Example: 25.
max_idstring- Return candidates with an ID less than or equal to this ID. Example: "2a9b4c".
shortcodestring- Only return candidates for the job with this shortcode. Get it from workable_jobs_list. Example: "GROOV005".
since_idstring- Return candidates with an ID greater than or equal to this ID. To fetch the next page, copy the since_id value from the paging.next URL of the previous response. Example: "2a9b4c".
stagestring- Only return candidates in this pipeline stage, by stage slug (for example applied, interview, offer, hired). Get slugs from workable_stages_list.
updated_afterstring- Only return candidates updated after this timestamp, in ISO 8601 (e.g. 20150708T115616Z) or Unix time (e.g. 1436356721).
workable_custom_attributes_listList the candidate custom attributes defined in the account.Read-onlyList Custom Attributes
List the candidate custom attributes defined in the account. Returns a custom_attributes array with each attribute's key, label, type and choices. Use the key in workable_candidate_custom_attribute_update. Use workable_job_custom_attributes_list for one job.
Inputs
This tool takes no inputs.
workable_departments_listList the account's departments.Read-onlyList Departments
List the account's departments. Returns a departments array with each department's id, name and parent_id. Use department IDs to filter the org chart or set an employee's department.
Inputs
This tool takes no inputs.
workable_disqualification_reasons_listList the disqualification reasons configured for the account.Read-onlyList Disqualification Reasons
List the disqualification reasons configured for the account. Returns a disqualification_reasons array with each reason's id and name. Use the reason id as disqualify_reason_id in workable_candidate_disqualify.
Inputs
This tool takes no inputs.
workable_employee_documents_listList the documents stored for an employee, by document type.Read-onlyList Employee Documents
List the documents stored for an employee, by document type. Returns a documents array with each document's id, name, type, created date and download URL. Use workable_employee_documents_list to find an employee's files. Use workable_employee_documents_add to attach new ones. Account-level tokens must pass member_id.
Inputs
employee_idstringrequired- ID of the employee. Get it from the id field of workable_employees_list. Example: "375b".
limitinteger- Number of documents to return. Workable defaults to 10.
member_idstring- ID of the Workable member whose access level is used. Required when the access token is an account-level token; optional for user tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
offsetinteger- Number of documents to skip. Workable defaults to 0.
typestring- Class of documents to return: simple_employee_document (default), signature_request_employee_document, timeoff_attachment or i_9_form_document.one of
simple_employee_documentsignature_request_employee_documenttimeoff_attachmenti_9_form_document
workable_employee_fields_listList the employee fields configured in the account, including custom fields, with their types, subfields and choices.Read-onlyList Employee Fields
List the employee fields configured in the account, including custom fields, with their types, subfields and choices. Returns an employee_fields array with each field's id, label, type, subfields, choices and permissions. Use workable_employee_fields_list before workable_employee_create or workable_employee_update to know the field ids and value shapes.
Inputs
member_idstring- ID of the Workable member whose access level is used. Required when the access token is an account-level token; optional for user tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
workable_employee_getGet one employee's full HR record by ID.Read-onlyGet Employee
Get one employee's full HR record by ID. Returns personal and contact details, job, department, manager, employment, salary and custom fields that the member may view. Use workable_employee_get for one employee. Use workable_employees_list to search. Account-level tokens must pass member_id.
Inputs
employee_idstringrequired- ID of the employee. Get it from the id field of workable_employees_list. Example: "375b".
member_idstring- ID of the Workable member whose access level is used to read the record. Required when the access token is an account-level token; optional for user tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
workable_employees_listList the account's employees in Workable HR, with an optional text search on first name, last name and email.Read-onlyList Employees
List the account's employees in Workable HR, with an optional text search on first name, last name and email. Returns an employees array (id, name, email, job title, department, manager, state) and the total count. Use workable_employees_list to browse or search employees. Use workable_employee_get for one employee's full record.
Inputs
limitinteger- Number of employees to return. Workable defaults to 10. Example: 25.
member_idstring- ID of the Workable member whose access level is used to read the data. Required when the access token is an account-level token; optional for user tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
offsetinteger- Number of employees to skip, for paging with limit. Workable defaults to 0.
order_bystring- Order results by division or department.one of
divisiondepartment querystring- Search text matched against first name, last name and email. Example: "doe".
workable_employees_orgchart_getGet org chart nodes for the account, optionally filtered by legal entity or department, or the direct reports of one employee.Read-onlyGet Org Chart
Get org chart nodes for the account, optionally filtered by legal entity or department, or the direct reports of one employee. Returns nodes, each with the employee's content, parent_id (the manager's id) and direct_reports_count. Use workable_employees_orgchart_get for reporting lines. Use workable_employees_list for a flat employee list.
Inputs
department_idsarray- Only include employees in these departments, from workable_departments_list.
employee_idstring- Return the direct reports of this employee. Required when include_manager is true.
include_managerboolean- When true, also return the employee given in employee_id and that employee's manager.
legal_entity_idsarray- Only include employees in these legal entities. Use -1 for employees without a legal entity.
workable_event_getGet one scheduled event by ID.Read-onlyGet Event
Get one scheduled event by ID. Returns the event's type, title, description, start and end time, attendees, candidate, job and conference details. Use workable_event_get when you have an event ID. Use workable_events_list to find events.
Inputs
event_idstringrequired- ID of the event, from workable_events_list. Example: "45a1c2".
workable_events_listList scheduled events such as interviews, calls and meetings, filtered by type, date range, candidate, job or member.Read-onlyList Events
List scheduled events such as interviews, calls and meetings, filtered by type, date range, candidate, job or member. Returns an events array with each event's id, type, title, start and end time, attendees, candidate and job, plus paging. Use workable_events_list to see a schedule. Use workable_event_get for one event.
Inputs
candidate_idstring- Only return events for this candidate ID.
contextstring- For user tokens only: user (events the user attends, default), team (events for candidates in jobs the user collaborates on) or all.one of
userteamall end_datestring- Only return events scheduled before this date, ISO 8601. Example: "2024-06-30".
include_cancelledboolean- Set true to include cancelled events. Workable defaults to false.
limitinteger- Number of events to return per page. Workable defaults to 50. Example: 25.
max_idstring- Return events with an ID less than or equal to this ID. Example: "2a9b4c".
member_idstring- Only return events for this member ID.
shortcodestring- Only return events for the job with this shortcode.
since_idstring- Return events with an ID greater than or equal to this ID. To fetch the next page, copy the since_id value from the paging.next URL of the previous response. Example: "2a9b4c".
start_datestring- Only return events scheduled after this date, ISO 8601. Example: "2024-06-01".
typestring- Only return events of this type: call, interview or meeting.one of
callinterviewmeeting
workable_job_activities_listList the activity stream of a job across all its candidates.Read-onlyList Job Activities
List the activity stream of a job across all its candidates. Returns an activities array with each activity's action, candidate, member, stage and created_at, plus paging. Use workable_job_activities_list for a job's history. Use workable_candidate_activities_list for one candidate.
Inputs
shortcodestringrequired- The job's system-generated shortcode. Get it from the shortcode field of workable_jobs_list. Example: "GROOV005".
limitinteger- Number of activities to return per page. Workable defaults to 50. Example: 25.
max_idstring- Return activities with an ID less than or equal to this ID. Example: "2a9b4c".
since_idstring- Return activities with an ID greater than or equal to this ID. To fetch the next page, copy the since_id value from the paging.next URL of the previous response. Example: "2a9b4c".
workable_job_application_form_getGet the application form of a job: its standard fields and custom questions.Read-onlyGet Job Application Form
Get the application form of a job: its standard fields and custom questions. Returns the form fields with their keys, labels, types, whether they are required and any choices. Use workable_job_application_form_get to build an application. Use workable_job_questions_list for only the questions.
Inputs
shortcodestringrequired- The job's system-generated shortcode. Get it from the shortcode field of workable_jobs_list. Example: "GROOV005".
workable_job_custom_attributes_listList the candidate custom attributes that apply to one job.Read-onlyList Job Custom Attributes
List the candidate custom attributes that apply to one job. Returns a custom_attributes array with each attribute's key, label, type and choices. Use workable_job_custom_attributes_list for one job. Use workable_custom_attributes_list for all attributes in the account.
Inputs
shortcodestringrequired- The job's system-generated shortcode. Get it from the shortcode field of workable_jobs_list. Example: "GROOV005".
workable_job_getGet the full details of one job by its shortcode.Read-onlyGet Job
Get the full details of one job by its shortcode. Returns the job's title, state, department, location, description, requirements, benefits, employment type, salary and URLs. Use workable_job_get when you know the shortcode. Use workable_jobs_list to browse or find shortcodes.
Inputs
shortcodestringrequired- The job's system-generated shortcode. Get it from the shortcode field of workable_jobs_list. Example: "GROOV005".
workable_job_members_listList the members collaborating on one job.Read-onlyList Job Members
List the members collaborating on one job. Returns a members array with each member's id, name, email and role on the job. Use workable_job_members_list for a job's hiring team. Use workable_members_list for all members.
Inputs
shortcodestringrequired- The job's system-generated shortcode. Get it from the shortcode field of workable_jobs_list. Example: "GROOV005".
workable_job_questions_listList the application questions of a job.Read-onlyList Job Questions
List the application questions of a job. Returns a questions array with each question's key, body, type, required flag and choices. Use the question keys as question_key in the answers of workable_candidate_create.
Inputs
shortcodestringrequired- The job's system-generated shortcode. Get it from the shortcode field of workable_jobs_list. Example: "GROOV005".
workable_job_recruiters_listList the external recruiters collaborating on one job.Read-onlyList Job Recruiters
List the external recruiters collaborating on one job. Returns a recruiters array with each recruiter's id, name, email and agency. Use workable_job_recruiters_list for one job. Use workable_recruiters_list for all external recruiters.
Inputs
shortcodestringrequired- The job's system-generated shortcode. Get it from the shortcode field of workable_jobs_list. Example: "GROOV005".
workable_job_stages_listList the pipeline stages of one job.Read-onlyList Job Stages
List the pipeline stages of one job. Returns a stages array with each stage's slug, name, kind and position. Use workable_job_stages_list for stage slugs to move candidates within a job. Use workable_stages_list for the account default stages.
Inputs
shortcodestringrequired- The job's system-generated shortcode. Get it from the shortcode field of workable_jobs_list. Example: "GROOV005".
workable_jobs_listList jobs in the Workable account, optionally filtered by state or by created and updated time.Read-onlyList Jobs
List jobs in the Workable account, optionally filtered by state or by created and updated time. Returns a jobs array (id, title, shortcode, state, department, location, url, created_at) and a paging.next URL when more pages exist. Use workable_jobs_list to find a job's shortcode. Use workable_job_get for one job's full details.
Inputs
created_afterstring- Only return jobs created after this timestamp, in ISO 8601 (e.g. 20150708T115616Z) or Unix time (e.g. 1436356721).
include_fieldsstring- Extra fields to include in each job, comma-separated. Supported: description, full_description, requirements, benefits. Example: "description,requirements".
limitinteger- Number of jobs to return per page. Workable defaults to 50. Maximum 100. Example: 25.
max_idstring- Return jobs with an ID less than or equal to this ID. Example: "2a9b4c".
since_idstring- Return jobs with an ID greater than or equal to this ID. To fetch the next page, copy the since_id value from the paging.next URL of the previous response. Example: "2a9b4c".
statestring- Only return jobs in this state: draft, published, closed (internal or confidential) or archived.one of
draftpublishedclosedarchived updated_afterstring- Only return jobs updated after this timestamp, in ISO 8601 (e.g. 20150708T115616Z) or Unix time (e.g. 1436356721).
workable_legal_entities_listList the account's legal entities.Read-onlyList Legal Entities
List the account's legal entities. Returns a legal entities array with each entity's id and name. Use legal entity IDs to filter the org chart or set an employee's legal_entity.
Inputs
This tool takes no inputs.
workable_members_listList the account's members (users), optionally filtered by role, job, email, name or status.Read-onlyList Members
List the account's members (users), optionally filtered by role, job, email, name or status. Returns a members array with each member's id, name, email, role and status. Use workable_members_list to find the member_id that write tools need with account-level tokens. Use workable_job_members_list for a job's collaborators.
Inputs
emailstring- Only return the member with this email address.
limitinteger- Number of members to return per page. Workable defaults to 50. Example: 25.
max_idstring- Return members with an ID less than or equal to this ID. Example: "2a9b4c".
namestring- Only return members with this exact full name.
rolestring- Only return members with this recruiting role: simple, admin or reviewer.one of
simpleadminreviewer shortcodestring- Only return members collaborating on the job with this shortcode.
since_idstring- Return members with an ID greater than or equal to this ID. To fetch the next page, copy the since_id value from the paging.next URL of the previous response. Example: "2a9b4c".
statusstring- Member status filter: active (Workable default), inactive or all.one of
activeinactiveall
workable_offer_getGet one offer by its ID.Read-onlyGet Offer
Get one offer by its ID. Works only with user-level access tokens. Returns the offer's candidate, job, state, approvers and offer fields. Use workable_offer_get when you have an offer ID. Use workable_candidate_offer_get to start from a candidate.
Inputs
offer_idstringrequired- ID of the offer, from workable_candidate_offer_get. Example: "0a1b2c".
workable_recruiters_listList the account's external recruiters, optionally only those on one job.Read-onlyList Recruiters
List the account's external recruiters, optionally only those on one job. Returns a recruiters array with each recruiter's id, name, email and agency. Use the recruiter id as recruiter_key when creating a candidate sourced by a recruiter.
Inputs
shortcodestring- Only return recruiters collaborating on the job with this shortcode.
workable_requisition_custom_attribute_choices_listList the allowed choices of a dropdown or multiple_choice requisition custom attribute.Read-onlyList Requisition Custom Attribute Choices
List the allowed choices of a dropdown or multiple_choice requisition custom attribute. Requires Workable Hiring Plan. Returns the choices ordered by position, each with its id and label. Get the attribute id from workable_requisition_custom_attributes_list.
Inputs
attribute_idstringrequired- ID of the requisition custom attribute, from workable_requisition_custom_attributes_list.
limitinteger- Number of choices to return. Workable defaults to 50, maximum 1000.
offsetinteger- Number of choices to skip. Workable defaults to 0.
workable_requisition_custom_attributes_listList the custom attributes defined for requisitions.Read-onlyList Requisition Custom Attributes
List the custom attributes defined for requisitions. Requires Workable Hiring Plan. Returns each attribute's id, slug, label, type and whether it is required; choices are not included. Use workable_requisition_custom_attribute_choices_list to get the choices of a dropdown or multiple_choice attribute.
Inputs
This tool takes no inputs.
workable_requisition_getGet one requisition by its code.Read-onlyGet Requisition
Get one requisition by its code. Requires Workable Hiring Plan. Returns the requisition's job, department, location, owner, hiring manager, plan and start dates, salary, state, custom attributes and approval groups. Use workable_requisition_get when you know the code. Use workable_requisitions_list to find codes.
Inputs
codestringrequired- Code of the requisition, from workable_requisitions_list. Example: "REQ-001".
workable_requisitions_listList the account's requisitions (approved headcount), filtered by state, job, plan date or created and updated time.Read-onlyList Requisitions
List the account's requisitions (approved headcount), filtered by state, job, plan date or created and updated time. Requires Workable Hiring Plan. Returns a requisitions array (id, code, job, department, location, owner, hiring manager, plan date, salary range, state) and a paging.next URL. Use workable_requisitions_list to browse. Use workable_requisition_get for one requisition by code.
Inputs
created_afterstring- Only return requisitions created after this timestamp, in ISO 8601 (e.g. 20150708T115616Z) or Unix time (e.g. 1436356721).
job_idstring- Only return requisitions for the job with this ID (the job id, not the shortcode).
limitinteger- Number of requisitions to return per page. Workable defaults to 50. Example: 25.
max_idstring- Return requisitions with an ID less than or equal to this ID. Example: "2a9b4c".
plan_date_fromstring- Only return requisitions with a plan date on or after this month, in YYYY-MM format.
plan_date_tostring- Only return requisitions with a plan date on or before this month, in YYYY-MM format.
since_idstring- Return requisitions with an ID greater than or equal to this ID. To fetch the next page, copy the since_id value from the paging.next URL of the previous response. Example: "2a9b4c".
statestring- Only return requisitions in this state.one of
processingdraftpendingapprovedopenfilledrejectedcancelledreservedon_hold updated_afterstring- Only return requisitions updated after this timestamp, in ISO 8601 (e.g. 20150708T115616Z) or Unix time (e.g. 1436356721).
workable_review_template_getGet one performance review template by ID.Read-onlyGet Review Template
Get one performance review template by ID. Needs a user-level token with permission to view performance templates. Returns the template's title and questionnaire, with sections, questions, question types and rating options. Use workable_review_template_get when you have a template ID. Use workable_review_templates_list to find IDs.
Inputs
template_idstringrequired- ID of the review template, from workable_review_templates_list.
workable_review_templates_listList the account's performance review templates.Read-onlyList Review Templates
List the account's performance review templates. Needs a user-level token with permission to view performance templates. Returns the latest, non-deleted templates, each with its id, title and questionnaire sections. Use workable_review_templates_list to browse. Use workable_review_template_get for one template.
Inputs
limitinteger- Maximum number of templates to return. All matching templates are returned when omitted.
offsetinteger- Number of templates to skip, for paging.
workable_stages_listList the recruitment pipeline stages configured for the account.Read-onlyList Stages
List the recruitment pipeline stages configured for the account. Returns a stages array with each stage's slug, name, kind and position. Use workable_stages_list for account-wide stage slugs. Use workable_job_stages_list for the stages of one job.
Inputs
This tool takes no inputs.
workable_time_entries_listList time tracking entries, filtered by entry type, date range, employees or worked duration.Read-onlyList Time Entries
List time tracking entries, filtered by entry type, date range, employees or worked duration. Returns a time entries array with each entry's id, employee, type, clock-in and clock-out times, duration and note, plus paging. Use workable_time_entries_list to review hours. With an account-level token and no employee filter, all entries are returned.
Inputs
durationinteger- Worked minutes to compare against, used with duration_operator.
duration_operatorstring- How to compare duration: equal, greater_than, greater_than_or_equal, less_than or less_than_or_equal.one of
equalgreater_thangreater_than_or_equalless_thanless_than_or_equal employee_idsarray- Only return entries for these employee IDs.
from_datestring- Return entries on or after this ISO 8601 date. Example: "2024-06-01".
limitinteger- Results per page: 10, 20, 50 or 100.one of
102050100 offsetinteger- Number of entries to skip, for paging.
to_datestring- Return entries on or before this ISO 8601 date. Example: "2024-06-30".
typesarray- Entry types to include: time-entry, clock-in, clock-out, ergani-clock-in, ergani-clock-out.
workable_timeoff_balances_getGet an employee's time off balances across all categories.Read-onlyGet Time Off Balances
Get an employee's time off balances across all categories. Returns a balances array with each category's allowance, used, pending and remaining amounts. Use workable_timeoff_balances_get before requesting leave. Account-level tokens must pass employee_id.
Inputs
employee_idstring- Employee to get balances for. Required for account-level tokens; defaults to the token's user for user tokens.
workable_timeoff_categories_listList the time off categories configured in the account, such as vacation or sick leave.Read-onlyList Time Off Categories
List the time off categories configured in the account, such as vacation or sick leave. Returns a categories array with each category's id, name and unit. Use the category id in workable_timeoff_request_create or to filter workable_timeoff_requests_list.
Inputs
This tool takes no inputs.
workable_timeoff_requests_listList time off requests from a start date, optionally filtered by end date, category, state or employee.Read-onlyList Time Off Requests
List time off requests from a start date, optionally filtered by end date, category, state or employee. Returns a requests array with each request's employee, category, dates, state and approvals, plus paging details. Use workable_timeoff_requests_list to review leave. Use workable_timeoff_balances_get for remaining balances. With an account-level token and no employee filter, all requests in the account are returned.
Inputs
from_datestringrequired- Return requests from this date, as an ISO date without timezone. Example: "2024-01-01".
category_idsarray- Only return requests in these time off categories. Get IDs from workable_timeoff_categories_list.
employee_idstring- Only return requests for this employee. Get IDs from workable_employees_list.
employee_idsarray- Only return requests for these employees; merged with employee_id when both are set.
limitinteger- Results per page: 10, 20, 50 or 100. Workable defaults to 10.one of
102050100 offsetinteger- Number of requests to skip, for paging. Workable defaults to 0.
statesarray- Only return requests in these states, for example pending, approved or rejected.
to_datestring- Return requests up to this date, as an ISO date without timezone. Example: "2024-12-31".
workable_work_schedules_listList the work schedules configured in the account.Read-onlyList Work Schedules
List the work schedules configured in the account. Returns a work_schedules array with each schedule's id, name and working days and hours. Use the schedule id as work_schedule when creating or updating an employee.
Inputs
This tool takes no inputs.
workable_candidate_comment_createAdd a comment to a candidate's timeline, optionally with visibility rules and one attachment.WriteAdd Candidate Comment
Add a comment to a candidate's timeline, optionally with visibility rules and one attachment. Returns 201 with the created comment. Use workable_candidate_comment_create for notes on a candidate. Use workable_candidate_rating_create to record an evaluation.
Inputs
bodystringrequired- Text of the comment. Example: "Strong system design answers."
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
member_idstringrequired- ID of the Workable member writing the comment. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
attachmentobject- One file to attach, as an object with the file name and the base64-encoded content. Example: {"name": "notes.txt", "data": "SGVsbG8h"}.
policyarray- Which member roles can see the comment, as a list of roles: admin, recruiting_admin, hiring_manager, simple, reviewer, recruiter. Admins always see comments. Omit to use Workable's default visibility. Example: ["recruiter", "admin"].
workable_candidate_copyCopy a candidate to another job, keeping them in their current job as well.WriteCopy Candidate to Job
Copy a candidate to another job, keeping them in their current job as well. Returns 201 with the new candidate record in the target job. Use workable_candidate_copy to consider someone for two jobs. Use workable_candidate_relocate to move them instead.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
member_idstringrequired- ID of the Workable member performing the copy. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
target_job_shortcodestringrequired- Shortcode of the job to copy the candidate to. Example: "GROOV006".
target_stagestring- Stage slug in the target job. Example: "applied".
workable_candidate_createCreate a candidate in a specific job, optionally placing them directly in a given pipeline stage.WriteCreate Candidate in Job
Create a candidate in a specific job, optionally placing them directly in a given pipeline stage. Returns the created candidate with its id, stage and profile fields. Use workable_candidate_create to add someone to a job. Use workable_talent_pool_candidate_create to add someone to the talent pool without a job.
Inputs
emailstringrequired- Candidate's email address. Example: "jane.doe@example.com".
shortcodestringrequired- The job's system-generated shortcode of the job to add the candidate to. Get it from the shortcode field of workable_jobs_list. Example: "GROOV005".
addressstring- Candidate's postal address as a single string.
answersarray- Answers to the job's application questions. Each entry has the question_key and either a body (free text) or choices (list of choice keys). Get the keys with workable_job_questions_list. Example: [{"question_key": "2128d717", "body": "Planning"}].
cover_letterstring- Candidate's cover letter as plain text.
disqualifiedboolean- Set to true to create the candidate already disqualified.
disqualified_atstring- Disqualification date in YYYY-MM-DD format, used with disqualified. Defaults to now when omitted.
domainstring- Source of the candidate, for example the site the candidate came from. Example: "indeed.com".
education_entriesarray- Education history. Each entry has a degree, school, field of study, and start and end dates (YYYY-MM-DD). Example: [{"degree": "B.S.", "school": "University of Chicago", "field_of_study": "Economics", "start_date": "2004-09-01", "end_date": "2007-06-30"}].
experience_entriesarray- Work history. Each entry has a title, company, industry, summary, start and end dates (YYYY-MM-DD) and a current flag. Example: [{"title": "Sales Director", "company": "Vox Mobile", "start_date": "2011-03-01", "end_date": "2014-03-30", "current": false}].
firstnamestring- Candidate's first name. Example: "Jane".
headlinestring- One-line professional headline for the candidate. Example: "Senior Backend Engineer".
image_sourcestring- Where the photo came from. Use "candidate" if you want image_url populated in later API responses.
image_urlstring- Public URL of the candidate's photo. Workable downloads it. Set image_source to "candidate" so later responses return image_url.
lastnamestring- Candidate's last name. Example: "Doe".
namestring- Candidate's full name. Provide either name, or both firstname and lastname. Example: "Jane Doe".
phonestring- Candidate's phone number. Example: "+1-555-010-0100".
recruiter_keystring- Key of the external recruiter who sourced this candidate, from workable_recruiters_list.
resumeobject- Resume file sent inline: an object with the file name and the file content encoded in base64. Use this or resume_url, not both. Example: {"name": "jane-doe.pdf", "data": "JVBERi0xLjQK..."}.
resume_urlstring- Public URL of the candidate's resume (.pdf, .doc, .docx or .rtf). Workable downloads the file from this URL. Use this or resume, not both.
skillsarray- Candidate's skills as a list of strings. Example: ["Go", "PostgreSQL"].
social_profilesarray- Social profiles. Each entry has a type (for example twitter or linkedin), a display name, a username and a url. Example: [{"type": "linkedin", "name": "LinkedIn", "url": "https://www.linkedin.com/in/janedoe"}].
sourcedboolean- true (default) creates the candidate as sourced (uploaded by your team). false creates them as applied, and Workable sends the candidate a 'thank you for applying' email.default
true stagestring- Pipeline stage slug to create the candidate in. When omitted, Workable uses sourced or applied depending on the sourced flag. Get slugs from workable_job_stages_list.
summarystring- Profile summary for the candidate, as free text.
tagsarray- Tags to attach to the candidate. Example: ["referral", "senior"].
workable_candidate_custom_attribute_updateSet the value of one custom attribute on a candidate.WriteUpdate Candidate Custom Attribute
Set the value of one custom attribute on a candidate. Returns 201 with the updated value. Send the value field that matches the attribute's type. Get attribute keys and types with workable_custom_attributes_list.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
custom_attribute_keystringrequired- Key of the custom attribute, from workable_custom_attributes_list. Example: "years_experience".
checkedboolean- Value for a boolean attribute.
choicesarray- Selected choice IDs for a dropdown or multiple_choice attribute.
datestring- Value for a date attribute, YYYY-MM-DD.
fileobject- File for a file attribute, as {name, data} with base64 data. Use this or file_url.
file_urlstring- URL of the file for a file attribute. Use this or file.
valueinteger- Value for a numeric attribute.
workable_candidate_disqualification_revertRevert a candidate's disqualification so they are active in the pipeline again.WriteRevert Candidate Disqualification
Revert a candidate's disqualification so they are active in the pipeline again. Returns the result of the revert. Use workable_candidate_disqualification_revert after a workable_candidate_disqualify you want to undo.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
member_idstringrequired- ID of the Workable member reverting the disqualification. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
workable_candidate_disqualifyDisqualify a candidate, optionally with a reason and a note.WriteDisqualify Candidate
Disqualify a candidate, optionally with a reason and a note. Returns the result of the disqualification. Use workable_candidate_disqualify to reject or mark a candidate as withdrawn. Use workable_candidate_disqualification_revert to undo it. Get reason IDs with workable_disqualification_reasons_list.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
member_idstringrequired- ID of the Workable member performing the disqualification. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
disqualify_notestring- Extra information about the disqualification, up to 256 characters.
disqualify_reason_idstring- ID of the disqualification reason, from workable_disqualification_reasons_list. Example: "2700d6c".
withdrewboolean- true if the candidate withdrew; false if your team rejected them.
workable_candidate_moveMove a candidate to another pipeline stage within the same job.WriteMove Candidate to Stage
Move a candidate to another pipeline stage within the same job. Returns 202 Accepted with no body; the move is processed asynchronously. Use workable_candidate_move to advance or step back a candidate. Use workable_candidate_relocate to move them to a different job. With Hiring Plan enabled, moving to a hired stage needs a requisition: set fill_reserved_requisition or pass a requisition object.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
member_idstringrequired- ID of the Workable member performing the move. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
target_stagestringrequired- Slug of the stage to move the candidate to, for example interview or hired. Get slugs from workable_job_stages_list.
fill_reserved_requisitionboolean- With Hiring Plan, set true when moving to hired to fill the requisition already reserved for this candidate.
requisitionobject- With Hiring Plan, the requisition to fill when moving to hired: its code, start date (YYYY-MM-DD) and salary (amount, frequency of hour/day/week/month/year, currency_iso). Example: {"code": "REQ-1234", "start_date": "2024-01-01", "salary": {"amount": 90000, "frequency": "year", "currency_iso": "USD"}}.
workable_candidate_rating_createAdd a rating (evaluation) for a candidate with a grade, a comment and an optional scorecard.WriteRate Candidate
Add a rating (evaluation) for a candidate with a grade, a comment and an optional scorecard. Returns 201 with the created rating. Use workable_candidate_rating_create to add a new rating. Use workable_candidate_rating_upsert to create or update one member's rating for a stage.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
commentstringrequired- Comment explaining the rating. Example: "Clear communicator, strong fundamentals."
gradeintegerrequired- Grade on the chosen scale. thumbs: 0 negative, 1 positive, 2 definite. stars: 0-4 (one to five stars). numbers: 0-9 (1 to 10 out of 10).
member_idstringrequired- ID of the Workable member adding the rating. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
scalestring- Rating scale for grade: thumbs (default), stars or numbers.one of
thumbsstarsnumbers score_cardobject- Optional scorecard. It has settings (questions_rateable) and sections; each section has an id, name and traits, and each trait has an id, name, score (negative, positive or definite), note and questions. Example: {"sections": [{"id": 1, "name": "Critical Thinking", "traits": [{"id": 2, "name": "Analytical Skills", "score": "positive", "questions": []}]}]}.
workable_candidate_rating_upsertCreate or update a member's evaluation of a candidate for a stage.WriteCreate or Update Candidate Rating
Create or update a member's evaluation of a candidate for a stage. Returns the evaluation: 200 when an existing one was updated, 201 when a new one was created. Use workable_candidate_rating_upsert to revise a rating. Use workable_candidate_rating_create to always add a new one.
- Idempotent
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
commentstringrequired- Comment explaining the rating. Example: "Clear communicator, strong fundamentals."
gradeintegerrequired- Grade on the chosen scale. thumbs: 0 negative, 1 positive, 2 definite. stars: 0-4 (one to five stars). numbers: 0-9 (1 to 10 out of 10).
member_idstringrequired- ID of the Workable member adding the rating. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
scalestring- Rating scale for grade: thumbs (default), stars or numbers.one of
thumbsstarsnumbers score_cardobject- Optional scorecard. It has settings (questions_rateable) and sections; each section has an id, name and traits, and each trait has an id, name, score (negative, positive or definite), note and questions. Example: {"sections": [{"id": 1, "name": "Critical Thinking", "traits": [{"id": 2, "name": "Analytical Skills", "score": "positive", "questions": []}]}]}.
stage_idstring- Stage the evaluation belongs to. Defaults to the candidate's current stage when omitted.
workable_candidate_relocateMove a candidate from their current job to another job.WriteMove Candidate to Another Job
Move a candidate from their current job to another job. Returns 201 with the candidate record in the target job. Use workable_candidate_relocate to change the job. Use workable_candidate_copy to keep them in both jobs. Use workable_candidate_move to change stage in the same job.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
member_idstringrequired- ID of the Workable member performing the relocation. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
target_job_shortcodestringrequired- Shortcode of the job to move the candidate to. Example: "GROOV006".
target_stagestring- Stage slug in the target job. Example: "applied".
workable_candidate_updateUpdate a candidate's profile fields such as name, email, phone, resume, education, experience, tags or social profiles.WriteUpdate Candidate
Update a candidate's profile fields such as name, email, phone, resume, education, experience, tags or social profiles. Returns the updated candidate. Fields you leave out keep their current values, but any list field you send (education, experience, tags, social profiles) replaces the existing list. Use workable_candidate_tags_update to change only tags. Use workable_candidate_move to change the stage.
Inputs
candidate_idstringrequired- ID of the candidate. Get it from the id field of workable_candidates_list or workable_candidate_get. Example: "ce4da98".
addressstring- Candidate's postal address as a single string.
cover_letterstring- Candidate's cover letter as plain text.
education_entriesarray- Education history. Each entry has a degree, school, field of study, and start and end dates (YYYY-MM-DD). On update this replaces all existing entries; an empty array deletes them. Example: [{"degree": "B.S.", "school": "University of Chicago", "field_of_study": "Economics", "start_date": "2004-09-01", "end_date": "2007-06-30"}].
emailstring- Candidate's email address. Example: "jane.doe@example.com".
experience_entriesarray- Work history. Each entry has a title, company, industry, summary, start and end dates (YYYY-MM-DD) and a current flag. On update this replaces all existing entries; an empty array deletes them. Example: [{"title": "Sales Director", "company": "Vox Mobile", "start_date": "2011-03-01", "end_date": "2014-03-30", "current": false}].
firstnamestring- Candidate's first name. Example: "Jane".
headlinestring- One-line professional headline for the candidate. Example: "Senior Backend Engineer".
image_sourcestring- Where the photo came from. Use "candidate" if you want image_url populated in later API responses.
image_urlstring- Public URL of the candidate's photo. Workable downloads it. Set image_source to "candidate" so later responses return image_url.
lastnamestring- Candidate's last name. Example: "Doe".
phonestring- Candidate's phone number. Example: "+1-555-010-0100".
resumeobject- Resume file sent inline: an object with the file name and the file content encoded in base64. Use this or resume_url, not both. Example: {"name": "jane-doe.pdf", "data": "JVBERi0xLjQK..."}.
resume_urlstring- Public URL of the candidate's resume (.pdf, .doc, .docx or .rtf). Workable downloads the file from this URL. Use this or resume, not both.
skillsarray- Candidate's skills as a list of strings. Example: ["Go", "PostgreSQL"].
social_profilesarray- Social profiles. Each entry has a type (for example twitter or linkedin), a display name, a username and a url. On update this replaces all existing profiles. Example: [{"type": "linkedin", "name": "LinkedIn", "url": "https://www.linkedin.com/in/janedoe"}].
summarystring- Profile summary for the candidate, as free text.
tagsarray- Tags to attach to the candidate. Example: ["referral", "senior"]. On update this replaces all existing tags; an empty array removes them.
texting_consentstring- Candidate's texting consent. One of forced or declined.one of
forceddeclined
workable_employee_createCreate an employee record in Workable HR, either as a draft (to start onboarding) or as published.WriteCreate Employee
Create an employee record in Workable HR, either as a draft (to start onboarding) or as published. Returns 201 with the created employee's id and core fields. Use workable_employee_create for new hires. Use workable_employee_update to change an existing employee. Get field ids and allowed values with workable_employee_fields_list first.
Inputs
employeeobjectrequired- Employee field values, keyed by field id. Standard fields include firstname, lastname, preferred_name, work_email, job_title, hire_date, start_date, department, reports_to, legal_entity and work_schedule; composite fields such as address, phone_group or salary_group take nested objects. Get the account's field ids and shapes from workable_employee_fields_list. Example: {"firstname": "Zinedin", "lastname": "Doe", "work_email": "z.doe@example.com", "job_title": "Account Manager", "start_date": "2024-10-08T00:00:00.000Z"}.
statestringrequired- Employee state: draft to create the employee and then start onboarding, or published for an employee who has finished onboarding.one of
draftpublished member_idstring- ID of the Workable member creating the employee. Required when the access token is an account-level token; optional for user tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
workable_employee_documents_addAttach one or more documents to an employee from URLs Workable can download.WriteAdd Employee Documents
Attach one or more documents to an employee from URLs Workable can download. Returns 201 with the created documents. Each URL must stay downloadable for at least an hour. Use workable_employee_documents_list to see existing documents.
Inputs
documentsarrayrequired- Documents to add. Each has a url where the file is hosted (valid for at least one hour) and a name. Example: [{"url": "https://example.com/files/contract.pdf", "name": "Employment contract"}].
employee_idstringrequired- ID of the employee. Get it from the id field of workable_employees_list. Example: "375b".
member_idstring- ID of the Workable member adding the documents. Required when the access token is an account-level token; optional for user tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
workable_employee_updateUpdate fields on an existing employee record.WriteUpdate Employee
Update fields on an existing employee record. Returns the updated employee. Only the fields you send change. For a composite field, send all of its subfields again, not only the one that changed. Use workable_employee_fields_list to get field ids, including custom fields.
Inputs
employeeobjectrequired- Employee field values, keyed by field id. Standard fields include firstname, lastname, preferred_name, work_email, job_title, hire_date, start_date, department, reports_to, legal_entity and work_schedule; composite fields such as address, phone_group or salary_group take nested objects. Get the account's field ids and shapes from workable_employee_fields_list. Custom fields use their field id as the key. Example: {"firstname": "Zinedina", "job_title": "Senior Account Manager"}.
employee_idstringrequired- ID of the employee. Get it from the id field of workable_employees_list. Example: "375b".
member_idstring- ID of the Workable member making the change. Required when the access token is an account-level token; optional for user tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
workable_offer_approveApprove an offer that is waiting for the token user's approval.WriteApprove Offer
Approve an offer that is waiting for the token user's approval. Works only with user-level access tokens. Returns the updated offer. The offer must be in a state that allows approval. Use workable_offer_reject to reject it instead.
Inputs
offer_idstringrequired- ID of the offer, from workable_candidate_offer_get. Example: "0a1b2c".
workable_offer_rejectReject an offer that is waiting for the token user's approval, with an optional reason.WriteReject Offer
Reject an offer that is waiting for the token user's approval, with an optional reason. Works only with user-level access tokens. Returns the updated offer. The offer must be in a state that allows rejection. Use workable_offer_approve to approve it instead.
Inputs
offer_idstringrequired- ID of the offer, from workable_candidate_offer_get. Example: "0a1b2c".
rejection_reasonstring- Reason for rejecting the offer.
workable_requisition_approveApprove a requisition that is waiting for approval.WriteApprove Requisition
Approve a requisition that is waiting for approval. Requires Workable Hiring Plan. Returns the updated requisition. The requisition must be in a state that allows approval. Use workable_requisition_reject to reject it instead.
Inputs
codestringrequired- Code of the requisition, from workable_requisitions_list. Example: "REQ-001".
member_idstringrequired- ID of the Workable member approving the requisition. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
workable_requisition_createCreate a requisition for planned headcount.WriteCreate Requisition
Create a requisition for planned headcount. Requires Workable Hiring Plan. Returns the full requisition object, including its id, code and state. Use workable_requisition_create to open headcount. Use workable_requisition_update to change one. Get member IDs with workable_members_list.
Inputs
codestringrequired- Code for the new requisition. Sent to Workable as code.value. Example: "REQ-001".
hiring_manager_idstringrequired- Member ID of the hiring manager.
job_titlestringrequired- Title of the job the requisition is for. Example: "Backend Engineer".
member_idstringrequired- ID of the Workable member creating the requisition. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
owner_idstringrequired- Member ID of the requisition owner.
plan_datestringrequired- Planned month for the hire, in YYYY-MM format. Example: "2024-06".
citystring- City of the location. Example: "Austin".
country_codestring- Two-letter ISO country code of the location. Example: "US".
department_idstring- Department ID, from workable_departments_list.
employment_typestring- Employment type: Full-time, Part-time, Contract, Temporary or Other.one of
Full-timePart-timeContractTemporaryOther experiencestring- Experience level: Not Applicable, Internship, Entry Level, Associate, Mid-senior Level, Director or Executive.one of
Not ApplicableInternshipEntry LevelAssociateMid-senior LevelDirectorExecutive job_idstring- ID of an existing job to link the requisition to.
location_stringstring- Location as a single display string. Example: "Austin, Texas, United States".
notesstring- Notes on the requisition.
reasonstring- Reason for the requisition: new_hire, replacement or backfill.one of
new_hirereplacementbackfill requisition_attributesarray- Custom requisition attribute values. Each entry identifies the attribute and gives its value; get the attributes with workable_requisition_custom_attributes_list. Example from the Workable docs: [{"slug": "cost_center", "value": "Engineering"}].
salary_currencystring- Currency of the salary. Example: "USD".
salary_frequencystring- How often the salary is paid, for example year or month.
salary_fromstring- Lower bound of the salary range. Example: "80000".
salary_tostring- Upper bound of the salary range. Example: "100000".
state_codestring- State or region of the location. Example: "TX".
workable_requisition_rejectReject a requisition that is waiting for approval, with an optional reason.WriteReject Requisition
Reject a requisition that is waiting for approval, with an optional reason. Requires Workable Hiring Plan. Returns the updated requisition. The requisition must be in a state that allows rejection. Use workable_requisition_approve to approve it instead.
Inputs
codestringrequired- Code of the requisition, from workable_requisitions_list. Example: "REQ-001".
member_idstringrequired- ID of the Workable member rejecting the requisition. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
rejection_reasonstring- Reason for the rejection.
workable_requisition_updateUpdate fields on an existing requisition, such as owner, hiring manager, location, salary or plan date.WriteUpdate Requisition
Update fields on an existing requisition, such as owner, hiring manager, location, salary or plan date. Requires Workable Hiring Plan. Returns the full updated requisition object. Only the fields you send change. Use workable_requisition_get or workable_requisitions_list to find the requisition first.
Inputs
member_idstringrequired- ID of the Workable member editing the requisition. Workable records the action under this member and requires it for account-level tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
requisition_idstringrequired- ID of the requisition (the id field, not the code), from workable_requisitions_list.
citystring- City of the location. Example: "Austin".
country_codestring- Two-letter ISO country code of the location. Example: "US".
employment_typestring- Employment type: Full-time, Part-time, Contract, Temporary or Other.one of
Full-timePart-timeContractTemporaryOther experiencestring- Experience level: Not Applicable, Internship, Entry Level, Associate, Mid-senior Level, Director or Executive.one of
Not ApplicableInternshipEntry LevelAssociateMid-senior LevelDirectorExecutive hiring_manager_idstring- Member ID of the new hiring manager.
location_stringstring- Location as a single display string. Example: "Austin, Texas, United States".
notesstring- Notes on the requisition.
owner_idstring- Member ID of the new owner.
plan_datestring- Planned month for the hire, in YYYY-MM format.
reasonstring- Reason for the requisition: new_hire, replacement or backfill.one of
new_hirereplacementbackfill salary_currencystring- Currency of the salary. Example: "USD".
salary_frequencystring- How often the salary is paid, for example year or month.
salary_fromstring- Lower bound of the salary range. Example: "80000".
salary_tostring- Upper bound of the salary range. Example: "100000".
state_codestring- State or region of the location. Example: "TX".
workable_talent_pool_candidate_createCreate a candidate in the account's talent pool, not attached to any job.WriteCreate Talent Pool Candidate
Create a candidate in the account's talent pool, not attached to any job. Returns the created candidate with its id and profile fields. Use workable_talent_pool_candidate_create for general sourcing. Use workable_candidate_create to add someone to a specific job.
Inputs
emailstringrequired- Candidate's email address. Example: "jane.doe@example.com".
addressstring- Candidate's postal address as a single string.
cover_letterstring- Candidate's cover letter as plain text.
disqualifiedboolean- Set to true to create the candidate already disqualified.
disqualified_atstring- Disqualification date in YYYY-MM-DD format, used with disqualified. Defaults to now when omitted.
domainstring- Source of the candidate, for example the site the candidate came from. Example: "indeed.com".
education_entriesarray- Education history. Each entry has a degree, school, field of study, and start and end dates (YYYY-MM-DD). Example: [{"degree": "B.S.", "school": "University of Chicago", "field_of_study": "Economics", "start_date": "2004-09-01", "end_date": "2007-06-30"}].
experience_entriesarray- Work history. Each entry has a title, company, industry, summary, start and end dates (YYYY-MM-DD) and a current flag. Example: [{"title": "Sales Director", "company": "Vox Mobile", "start_date": "2011-03-01", "end_date": "2014-03-30", "current": false}].
firstnamestring- Candidate's first name. Example: "Jane".
headlinestring- One-line professional headline for the candidate. Example: "Senior Backend Engineer".
image_sourcestring- Where the photo came from. Use "candidate" if you want image_url populated in later API responses.
image_urlstring- Public URL of the candidate's photo. Workable downloads it. Set image_source to "candidate" so later responses return image_url.
lastnamestring- Candidate's last name. Example: "Doe".
namestring- Candidate's full name. Provide either name, or both firstname and lastname. Example: "Jane Doe".
phonestring- Candidate's phone number. Example: "+1-555-010-0100".
recruiter_keystring- Key of the external recruiter who sourced this candidate, from workable_recruiters_list.
resumeobject- Resume file sent inline: an object with the file name and the file content encoded in base64. Use this or resume_url, not both. Example: {"name": "jane-doe.pdf", "data": "JVBERi0xLjQK..."}.
resume_urlstring- Public URL of the candidate's resume (.pdf, .doc, .docx or .rtf). Workable downloads the file from this URL. Use this or resume, not both.
skillsarray- Candidate's skills as a list of strings. Example: ["Go", "PostgreSQL"].
social_profilesarray- Social profiles. Each entry has a type (for example twitter or linkedin), a display name, a username and a url. Example: [{"type": "linkedin", "name": "LinkedIn", "url": "https://www.linkedin.com/in/janedoe"}].
sourcedboolean- true (default) creates the candidate as sourced (uploaded by your team). false creates them as applied, and Workable sends the candidate a 'thank you for applying' email.default
true summarystring- Profile summary for the candidate, as free text.
tagsarray- Tags to attach to the candidate. Example: ["referral", "senior"].
workable_time_entry_createCreate a time tracking entry for an employee: a complete entry, a clock-in or a clock-out.WriteCreate Time Entry
Create a time tracking entry for an employee: a complete entry, a clock-in or a clock-out. Returns the created time entry. Use type time-entry with both times for a full entry, clock-in to start a shift, or clock-out to end one. Use workable_time_entry_update to fix an entry.
Inputs
employee_idstringrequired- ID of the employee the entry is for, from workable_employees_list. Example: "375b".
typestringrequired- Entry type: time-entry (complete entry), clock-in, clock-out, ergani-clock-in or ergani-clock-out.one of
time-entryclock-inclock-outergani-clock-inergani-clock-out clock_in_timestring- Clock-in time, ISO 8601 timestamp with a timezone designator (Z or an offset); seconds are truncated. Example: "2024-06-03T09:00:00Z".
clock_out_timestring- Clock-out time, ISO 8601 timestamp with a timezone designator (Z or an offset); seconds are truncated. Example: "2024-06-03T17:30:00Z".
notestring- Note for the entry. Supported by time-entry, clock-out and ergani-clock-out.
override_overlappingboolean- Set true to archive any existing entries that overlap this one.
workable_time_entry_updateUpdate the clock-in time, clock-out time or note of an existing time entry.WriteUpdate Time Entry
Update the clock-in time, clock-out time or note of an existing time entry. Returns the updated time entry. Provide at least one of clock_in_time, clock_out_time or note. Get entry IDs from workable_time_entries_list.
Inputs
employee_idstringrequired- ID of the employee who owns the entry. Example: "375b".
entry_idstringrequired- UUID of the time entry, from workable_time_entries_list. Example: "7d9f2a3e-1b4c-4d5e-8f6a-0b1c2d3e4f5a".
clock_in_timestring- New clock-in time, ISO 8601 timestamp with a timezone designator (Z or an offset); seconds are truncated. Example: "2024-06-03T09:00:00Z".
clock_out_timestring- New clock-out time, ISO 8601 timestamp with a timezone designator (Z or an offset); seconds are truncated. Example: "2024-06-03T17:30:00Z".
notestring- New note for the entry.
override_overlappingboolean- Set true to archive any existing entries that overlap the updated one.
workable_timeoff_approval_updateApprove or reject a pending time off approval step.WriteApprove or Reject Time Off
Approve or reject a pending time off approval step. Returns the updated approval. Get the approval key from the pending_approvals of a request in workable_timeoff_requests_list. Account-level tokens must pass member_id and approver_id.
Inputs
approval_keystringrequired- Key of the pending approval (the id in a request's pending_approvals array). Example: "9c1d".
statestringrequired- New approval state: approved or rejected.one of
approvedrejected approver_idstring- Approver whose pending step is acted on. Optional for user tokens (defaults to the token's member); required for account tokens.
member_idstring- ID of the Workable member performing the action. Required when the access token is an account-level token; optional for user tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
workable_timeoff_request_createCreate a time off request for an employee in a given category and date range.WriteCreate Time Off Request
Create a time off request for an employee in a given category and date range. Returns the created time off request. Use workable_timeoff_categories_list for category IDs and workable_timeoff_balances_get to check the balance first. Account-level tokens must pass employee_id and member_id.
Inputs
category_idstringrequired- Time off category ID, from workable_timeoff_categories_list. Example: "6a3f".
from_datestringrequired- First day of leave as an ISO 8601 date-time without timezone, with milliseconds: YYYY-MM-DDTHH:mm:ss.SSS. A trailing Z or offset is rejected. Example: "2024-07-01T00:00:00.000".
to_datestringrequired- Last day of leave in the same format as from_date; on or after from_date. Example: "2024-07-05T00:00:00.000".
employee_idstring- Employee the request is for. Required for account-level tokens; defaults to the token's user for user tokens.
half_daysarray- Days within the range that are half days. Each entry has a date (YYYY-MM-DDTHH:mm:ss.SSS, no timezone) and half (first or second). Example: [{"date": "2024-07-05T00:00:00.000", "half": "first"}].
member_idstring- ID of the Workable member making the request. Required when the access token is an account-level token; optional for user tokens. Find member IDs with workable_members_list. Example: "13e0eb0e".
notestring- Note for the request, up to 140 characters.
No tools match.