# Workable — how to use (mcp.ai)

Connect your Workable account and use 37 tools for human resources straight from your AI agent. Connect with your own API key. Workable is an all-in-one HR software platform that streamlines hiring, employee data management, time tracking, and payroll.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_workable?ms=1787295720000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `workable_create_employee`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/workable`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/workable/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/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). Require
  - body: { state: string, employee: object, member_id: string }
- `POST https://api.mcp.ai/api/workable/delete/department` — Tool to delete a department. Use when removing an obsolete or restructured department after confirming dependent resources.
  - body: { id: string, force?: string }
- `POST https://api.mcp.ai/api/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.
  - body: { id: string }
- `POST https://api.mcp.ai/api/workable/get/account` — Tool to return the specified account. Use when you need account metadata by subdomain after listing available accounts.
  - body: { subdomain: string }
- `POST https://api.mcp.ai/api/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 d
- `POST https://api.mcp.ai/api/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.
  - body: { provider: string }
- `POST https://api.mcp.ai/api/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 ar
- `POST https://api.mcp.ai/api/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/sta
  - body: { email?: string, limit?: integer, stage?: string, created_after?: string, job_shortcode?: string, updated_after?: string }
- `POST https://api.mcp.ai/api/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_employe
  - body: { id: string, member_id?: string }
- `POST https://api.mcp.ai/api/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 paramete
  - body: { type?: string, limit?: integer, max_id?: string, context?: string, end_date?: string, since_id?: string, member_id?: string, shortcode?: string, start_date?: string, candidate_id?: string, include_cancelled?: boolean }
- `POST https://api.mcp.ai/api/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/pub
  - body: { limit?: integer, state?: string, max_id?: string, since_id?: string, created_after?: string, updated_after?: string, include_fields?: string }
- `POST https://api.mcp.ai/api/workable/get/legal/entities` — Tool to retrieve a collection of your account legal entities. Use after confirming valid authentication and enabling Employee Management.
- `POST https://api.mcp.ai/api/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 in
  - body: { name?: string, role?: string, email?: string, limit?: integer, max_id?: string, status?: string, since_id?: string, shortcode?: string }
- `POST https://api.mcp.ai/api/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 scop
  - body: { shortcode?: string }
- `POST https://api.mcp.ai/api/workable/get/requisitions` — Tool to retrieve a collection of requisitions in the account. Use after authentication succeeds.
  - body: { limit?: integer, created_after?: string, updated_after?: string }
- `POST https://api.mcp.ai/api/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.
- `POST https://api.mcp.ai/api/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 
- `POST https://api.mcp.ai/api/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 
- `POST https://api.mcp.ai/api/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.
- `POST https://api.mcp.ai/api/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.
- `POST https://api.mcp.ai/api/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.
  - body: { member_id?: string }
- `POST https://api.mcp.ai/api/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 paramet
  - body: { limit?: integer, query?: string, offset?: integer, order_by?: string, member_id?: string }
- `POST https://api.mcp.ai/api/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.
- `POST https://api.mcp.ai/api/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.
  - body: { details?: boolean, subdomain: string }
- `POST https://api.mcp.ai/api/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. N
  - body: { subdomain: string }
- `POST https://api.mcp.ai/api/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
  - body: { employee_id?: string }
- `POST https://api.mcp.ai/api/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.
- `POST https://api.mcp.ai/api/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
- `POST https://api.mcp.ai/api/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, de
  - body: { check?: object, status: string, attachments?: object[], results_url?: string, background_check_id: string }
- `POST https://api.mcp.ai/api/workable/post/department/merge` — Tool to merge a department into another. Use after confirming both department IDs and optional force flag.
  - body: { id: string, force?: boolean, target_department_id: string }
- `POST https://api.mcp.ai/api/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.
  - body: { name: string, parent_id?: string }
- `POST https://api.mcp.ai/api/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 idemp
  - body: { id: string }
- `POST https://api.mcp.ai/api/workable/post/members/invite` — Tool to invite a member to your Workable account. Use when sending an invitation email.
  - body: { email: string, roles: string[], member_id?: string, collaboration_rules?: object[] }
- `POST https://api.mcp.ai/api/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.
  - body: { id: string, name: string, parent_id?: string }
- `POST https://api.mcp.ai/api/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 
  - body: { id: string, name?: string, email?: string, roles: string[], headline?: string, collaboration_rules?: object[] }
- `POST https://api.mcp.ai/api/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
  - body: { id: string, employee: object, member_id: string }
- `POST https://api.mcp.ai/api/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.
  - body: { id: string, documents: object[], member_id: string }

## Example prompts
- "What can I do in Workable?"
- "Show me a summary of my Workable account"

## More
- Page: https://mcp.ai/workable
- Agent spec (llms.txt): https://mcp.ai/workable/llms.txt
- Postman collection: https://mcp.ai/workable/postman.json
