# Workable

Workable is an all-in-one HR software platform that streamlines hiring, employee data management, time tracking, and payroll.

- **Category:** human resources
- **Auth:** OAUTH2, API_KEY
- **Composio Managed App Available?** No
- **Tools:** 37
- **Triggers:** 0
- **Slug:** `WORKABLE`
- **Version:** 20260227_00

## Tools

### Create Employee

**Slug:** `WORKABLE_CREATE_EMPLOYEE`

Tool to create an employee in your Workable account. Use when adding a new hire to employee management system. Employee can be created in draft state (unpublished) or published state (active). Requires w_employees scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `state` | string ("draft" | "published") | Yes | Employee state - 'draft' for unpublished, 'published' for active employees |
| `employee` | object | Yes | Employee details object containing all employee information |
| `member_id` | string | Yes | Member ID from GET /members endpoint - the account member creating this employee record |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Department

**Slug:** `WORKABLE_DELETE_DEPARTMENT`

Tool to delete a department. Use when removing an obsolete or restructured department after confirming dependent resources.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Unique identifier of the department to delete. |
| `force` | string | No | Set to 'DELETE' to force deletion regardless of associated resources. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Delete Subscription

**Slug:** `WORKABLE_DELETE_SUBSCRIPTION`

Tool to unsubscribe from an event by deleting a webhook subscription. Use when you need to stop receiving notifications for a specific event.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the webhook subscription to delete |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Account

**Slug:** `WORKABLE_GET_ACCOUNT`

Tool to return the specified account. Use when you need account metadata by subdomain after listing available accounts.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `subdomain` | string | Yes | The subdomain of the account to retrieve |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Accounts

**Slug:** `WORKABLE_GET_ACCOUNTS`

Retrieves all Workable accounts (organizations) accessible to the authenticated user. Returns account details including ID, name, subdomain, description, summary, and website URL. Use this action to discover which Workable accounts you have access to, or to obtain account identifiers needed for other API operations. Requires 'r_jobs' scope.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Background Check Packages

**Slug:** `WORKABLE_GET_BACKGROUND_CHECK_PACKAGES`

Tool to retrieve a list of available background check packages from a specified provider. Use after identifying the provider to view available package options.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `provider` | string | Yes | Identifier (slug) of the background check provider (e.g., 'checkr', 'sterling', 'goodhire'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Background Check Providers

**Slug:** `WORKABLE_GET_BACKGROUND_CHECK_PROVIDERS`

Retrieves a list of background check providers integrated with your Workable account. Returns provider details including id, name, integration type, connection status, and logo URL. If no providers are configured, returns an empty list.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Candidates

**Slug:** `WORKABLE_GET_CANDIDATES`

Retrieve a list of candidates across all jobs in the organization. Returns candidate details including name, email, job, stage, and status. Use this to: list all candidates, filter by specific job/stage/email, or find candidates created/updated after a certain date. Supports pagination via the 'limit' parameter (max 100 per page). For complete candidate details, use the individual candidate endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | No | Filter candidates by email address. Returns candidates matching the specified email. |
| `limit` | integer | No | Number of candidates per page. Default is 50; maximum is 100. |
| `stage` | string | No | Filter candidates by stage slug. Returns only candidates currently in the specified hiring stage. |
| `created_after` | string | No | Filter candidates created after the specified timestamp (ISO 8601 format, e.g., '2024-01-01T00:00:00Z'). |
| `job_shortcode` | string | No | Filter candidates by job shortcode. Returns only candidates who applied to the specified job. |
| `updated_after` | string | No | Filter candidates updated after the specified timestamp (ISO 8601 format, e.g., '2024-01-01T00:00:00Z'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Employee

**Slug:** `WORKABLE_GET_EMPLOYEE`

Tool to retrieve detailed information for a specific employee by ID. Use when you need complete employee data including personal details, contact info, employment history, and more. Requires r_employees scope and may need member_id parameter for account-level tokens.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The employee ID to retrieve |
| `member_id` | string | No | Optional member ID for user tokens. Required when using account-level tokens. Obtain from GET /members endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Events

**Slug:** `WORKABLE_GET_EVENTS`

Retrieve a collection of scheduled events (calls, interviews, meetings) from the Workable account. Supports filtering by event type, date range, candidate, job, or team member. Use pagination parameters (limit, since_id, max_id) for large result sets. By default, cancelled events are excluded unless explicitly included.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `type` | string ("call" | "interview" | "meeting") | No | Filter events by type (call, interview, or meeting). |
| `limit` | integer | No | Maximum number of events to return per request. Used for pagination. |
| `max_id` | string | No | Return events with ID less than or equal to this value. Used for pagination. |
| `context` | string | No | Additional context filter for events. |
| `end_date` | string | No | Filter events ending on or before this date (ISO 8601 format). |
| `since_id` | string | No | Return events with ID greater than or equal to this value. Used for pagination. |
| `member_id` | string | No | Filter events where a specific member is participating. |
| `shortcode` | string | No | Filter events associated with a specific job shortcode. |
| `start_date` | string | No | Filter events starting on or after this date (ISO 8601 format). |
| `candidate_id` | string | No | Filter events associated with a specific candidate ID. |
| `include_cancelled` | boolean | No | Include cancelled events in the results (default: false). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Jobs

**Slug:** `WORKABLE_GET_JOBS`

Retrieves a paginated list of jobs from your Workable account. Returns job details including title, state, department, location, and salary information. Use this to search for jobs by state (draft/published/closed/archived), filter by creation/update dates, or fetch additional fields like descriptions and requirements.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of jobs to retrieve per page. Default is 50; maximum is 100. |
| `state` | string ("draft" | "published" | "closed" | "archived") | No | Filter jobs by state. One of 'draft', 'published', 'archived', or 'closed'. |
| `max_id` | string | No | Return results with an ID less than or equal to this value. |
| `since_id` | string | No | Return results with an ID greater than or equal to this value. |
| `created_after` | string | No | Return results created after this ISO 8601 timestamp. |
| `updated_after` | string | No | Return results updated after this ISO 8601 timestamp. |
| `include_fields` | string | No | Comma-separated list of extra fields to include in each job (e.g., 'description,full_description,requirements,benefits'). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Legal Entities

**Slug:** `WORKABLE_GET_LEGAL_ENTITIES`

Tool to retrieve a collection of your account legal entities. Use after confirming valid authentication and enabling Employee Management.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Members

**Slug:** `WORKABLE_GET_MEMBERS`

Retrieve a paginated list of Workable account members with their roles and permissions. This action fetches team members from your Workable account, including admins, standard users, reviewers, and inactive members. You can filter by role, email, name, or status, and paginate through results. Use this to list collaborators, verify member access levels, or find specific team members by email or name.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | No | Filter members by exact full name match |
| `role` | string ("admin" | "simple" | "reviewer" | "no_access") | No | Filter members by recruiting role (admin=All Access, simple=Standard Access, reviewer=Limited Access, no_access=No Access) |
| `email` | string | No | Filter members by exact email address match |
| `limit` | integer | No | Max number of members to retrieve per page (default: 50) |
| `max_id` | string | No | Pagination cursor: return only members with ID less than or equal to this value |
| `status` | string ("active" | "inactive" | "all") | No | Filter by member status (default: 'active'). Use 'all' to retrieve both active and inactive members |
| `since_id` | string | No | Pagination cursor: return only members with ID greater than or equal to this value |
| `shortcode` | string | No | Filter by job shortcode to return only collaborators on that specific job |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get recruiters

**Slug:** `WORKABLE_GET_RECRUITERS`

Retrieves external recruiters from your Workable account. Returns all external recruiters by default, or filter by job shortcode to get recruiters collaborating on a specific job. Requires r_jobs scope.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `shortcode` | string | No | Optional job shortcode to filter results. When provided, returns only external recruiters collaborating on the specified job. Omit to get all external recruiters in the account. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Requisitions

**Slug:** `WORKABLE_GET_REQUISITIONS`

Tool to retrieve a collection of requisitions in the account. Use after authentication succeeds.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Number of results per page. Default is 50; maximum is 100. |
| `created_after` | string | No | Filter requisitions created after this timestamp (ISO8601 or Unix time). |
| `updated_after` | string | No | Filter requisitions updated after this timestamp (ISO8601 or Unix time). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Stages

**Slug:** `WORKABLE_GET_STAGES`

Tool to retrieve a collection of your recruitment pipeline stages. Use when you need to list all available stages before managing candidates or pipelines.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Get Subscriptions

**Slug:** `WORKABLE_GET_SUBSCRIPTIONS`

Retrieves all webhook subscriptions configured in your Workable account. Use this tool to: - List all active webhook subscriptions that receive event notifications - Verify which events your webhooks are listening to - Check the target URLs and filters configured for each subscription - Audit your webhook configuration Requires 'r_candidates' or 'r_employees' scope. No parameters needed.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Custom Attributes

**Slug:** `WORKABLE_LIST_CUSTOM_ATTRIBUTES`

Tool to retrieve all custom attributes configured in the Workable account. Returns attribute configuration including ID, type, enabled status, labels, and hints. Use this action to discover available custom attributes before creating or updating candidates, jobs, or other entities that support custom fields. Requires 'r_jobs' scope.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Departments

**Slug:** `WORKABLE_LIST_DEPARTMENTS`

Tool to retrieve all departments from your Workable account. Use when you need to view the organizational structure or get department identifiers. Requires r_account scope.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Disqualification Reasons

**Slug:** `WORKABLE_LIST_DISQUALIFICATION_REASONS`

Tool to retrieve a collection of account's disqualification reasons. Use when you need to list all available disqualification reasons before disqualifying candidates.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Employee Fields

**Slug:** `WORKABLE_LIST_EMPLOYEE_FIELDS`

Tool to retrieve a collection of your account's employee field definitions. Use when you need to understand available employee data fields before creating or updating employee records.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `member_id` | string | No | Optional member id that can be derived from GET /members endpoint. When provided, returns employee fields specific to that member |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Employees

**Slug:** `WORKABLE_LIST_EMPLOYEES`

Tool to retrieve a collection of account employees. Use when you need to list, search, or filter employees by name, email, or organizational structure. Supports pagination via limit and offset parameters. Required scope: r_employees.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `limit` | integer | No | Limits the number of the returned results. Default is 10. |
| `query` | string | No | Query the list using firstname, lastname and email |
| `offset` | integer | No | Skips the first n entries. Using limit and offset one can navigate through the entire employee database. Default is 0. |
| `order_by` | string ("division" | "department") | No | Enum for order_by parameter values. |
| `member_id` | string | No | Optional member_id that can be retrieved by GET /members. Needed to see information with elevated access. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Permission Sets

**Slug:** `WORKABLE_LIST_PERMISSION_SETS`

Tool to retrieve a collection of your account permission sets. Use when you need to list available permission sets before assigning permissions to members. Requires r_account scope.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Public Jobs

**Slug:** `WORKABLE_LIST_PUBLIC_JOBS`

Tool to return a collection of public jobs for an account. Use when you need to fetch publicly available job listings by subdomain. No authentication required for this endpoint.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `details` | boolean | No | If true, includes description field for each job. Default is false. |
| `subdomain` | string | Yes | The subdomain of the account to retrieve public jobs from |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Public Locations

**Slug:** `WORKABLE_LIST_PUBLIC_LOCATIONS`

Tool to retrieve a collection of locations where a Workable account has public job postings. Use when you need to discover which geographic locations have available positions for a specific account. No authentication required.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `subdomain` | string | Yes | The subdomain of the Workable account (e.g., 'composio-1' for composio-1.workable.com). This identifies which account's public job locations to retrieve. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Time Off Balances

**Slug:** `WORKABLE_LIST_TIMEOFF_BALANCES`

Retrieves all time off balances for an employee across all time off categories. Returns detailed balance information including available units, used units, carry-over amounts, and tracking units (days/hours). Use this to check remaining vacation days, sick leave, or other time off allowances for an employee. When using account-level token, employee_id must be provided; employee-level tokens automatically use the authenticated employee's balances.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `employee_id` | string | No | The employee_id to get time off balances for. Required when using account-level token; optional when using employee-level token |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Time Off Categories

**Slug:** `WORKABLE_LIST_TIMEOFF_CATEGORIES`

Tool to retrieve all time off categories configured for your account. Use when you need to view available time off types before managing employee time off requests.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### List Work Schedules

**Slug:** `WORKABLE_LIST_WORK_SCHEDULES`

Tool to retrieve a collection of work schedules configured in your Workable account. Use when you need to list all available work schedules, including their weekly hours, work days, and configurations.

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Background Check Status

**Slug:** `WORKABLE_POST_BACKGROUND_CHECK`

Updates the status and results of an existing background check in a candidate's timeline. This tool is designed for background check providers to push status updates (pending, consented, completed, declined, expired) and results back to Workable after initiating a background check. Use this action when: - A candidate has consented to or declined a background check request - Background check results are complete and need to be injected into the candidate's timeline - The status of an ongoing background check has changed - Attaching final reports and structured results to a completed check Prerequisites: Requires a valid background_check_id from an existing background check request that was previously created through Workable's background check provider integration. Note: Uses PUT request to /checks/{background_check_id} endpoint (despite the 'Post' naming).

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `check` | object | No | Structured results for a completed background check. |
| `status` | string ("pending" | "consented" | "completed" | "declined" | "expired") | Yes | New status of the background check. Options: 'pending' (initial status), 'consented' (candidate agreed to the check), 'completed' (check finished with results), 'declined' (candidate rejected the check), 'expired' (request timed out). When status is 'completed', both results_url and check fields are required. |
| `attachments` | array | No | Optional list of additional attachments (typically PDF reports) related to the background check results. Each attachment includes a description and publicly accessible URL. |
| `results_url` | string | No | Public URL link to the full background check report on the provider's website. REQUIRED when status is 'completed', optional otherwise. |
| `background_check_id` | string | Yes | The unique identifier of an existing background check request in Workable. This ID is provided when the background check was initially created through the background check provider integration. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Merge Department

**Slug:** `WORKABLE_POST_DEPARTMENT_MERGE`

Tool to merge a department into another. Use after confirming both department IDs and optional force flag.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The ID of the department to be merged (source department). |
| `force` | boolean | No | Whether to force the merge. When True (default), executes the merge immediately. When False, the API validates for affected resources (e.g., collaboration_rules) and returns 409 if any exist, allowing you to assess impact before proceeding. |
| `target_department_id` | string | Yes | The ID of the target department to merge into. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Create Department

**Slug:** `WORKABLE_POST_DEPARTMENTS`

Tool to create a department in your account. Use when you need to add a new department for organizing teams under your Workable account.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `name` | string | Yes | The name of the department. |
| `parent_id` | string | No | Identifier of the parent department, or null for top-level departments. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Enable Member

**Slug:** `WORKABLE_POST_MEMBER_ENABLE`

Enable (restore) a deactivated Workable account member to active status. This action reactivates a previously deactivated member, restoring their access to the Workable account. The operation is idempotent - enabling an already active member will succeed without error. Requires the 'w_members' scope. Returns HTTP 204 No Content on success.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the member to enable (restore to active status). |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Invite Member

**Slug:** `WORKABLE_POST_MEMBERS_INVITE`

Tool to invite a member to your Workable account. Use when sending an invitation email.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `email` | string | Yes | Email address to send the invitation to. |
| `roles` | array | Yes | Array of roles to assign to the invited member. Acceptable values include: ats.admin, ats.simple, ats.reviewer, hris.admin, hris.employee, hris.limited, workable.superadmin, or any custom permission sets. |
| `member_id` | string | No | Identifier of the existing member sending the invitation. Mandatory when using an account-wide access token. |
| `collaboration_rules` | array | No | Array of collaboration rules to apply to the invited member. Defines access restrictions by role, departments, and locations. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Department

**Slug:** `WORKABLE_PUT_DEPARTMENTS`

Tool to update an existing department in your account. Use when renaming a department or changing its parent after confirming its ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | Identifier of the department to update. |
| `name` | string | Yes | Department name (required by API, use current name if not changing). |
| `parent_id` | string | No | Identifier of the parent department, or null for top-level. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Member

**Slug:** `WORKABLE_PUT_MEMBERS`

Updates a Workable account member's details including roles, name, headline, email, and collaboration rules. Requires member ID and roles array. Use this to modify existing member information such as changing permissions, updating contact details, or adjusting collaboration settings.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the member to be updated. |
| `name` | string | No | The full name of the member. |
| `email` | string | No | The email address of the member. |
| `roles` | array | Yes | Array of roles assigned to the member. Possible values include: 'ats.admin', 'ats.simple', 'ats.reviewer', 'hris.admin', 'hris.employee', 'hris.limited', 'workable.superadmin'. Multiple roles can be assigned to grant different permissions across recruiting and HRIS modules. |
| `headline` | string | No | The headline or job title of the member. |
| `collaboration_rules` | array | No | An array of collaboration rules assigned to the member. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Update Employee

**Slug:** `WORKABLE_UPDATE_EMPLOYEE`

Tool to update an existing employee in Workable. Use when you need to modify employee details such as job title, contact information, department, or other employee attributes. Requires employee ID and member ID.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The unique identifier of the employee to update. |
| `employee` | object | Yes | Required. Object containing employee fields to update. |
| `member_id` | string | Yes | Required. Member ID retrieved from GET /members endpoint. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |

### Upload Employee Documents

**Slug:** `WORKABLE_UPLOAD_EMPLOYEE_DOCUMENTS`

Tool to upload a list of documents for a specific employee. Use when you need to attach documents (contracts, forms, etc.) to an employee's record. Required scope: w_employees.

#### Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `id` | string | Yes | The employee ID to upload documents for. |
| `documents` | array | Yes | Array of documents to upload for the employee. Each document must have a URL and name. |
| `member_id` | string | Yes | Required member_id for authorization and access control. |

#### Output

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `data` | string | Yes | Data from the action execution |
| `error` | string | No | Error if any occurred during the execution of the action |
| `successful` | boolean | Yes | Whether or not the action execution was successful or not |
