# Workable — MCP server on 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. By: mcp.ai · official Page: https://mcp.ai/workable ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_workable?ms=1787293440000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/workable/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/workable/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/workable/skill.md Postman collection (v2.1): https://mcp.ai/workable/postman.json ## Tools - workable_create_employee(state: string, employee: object, member_id: string) — 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 - workable_delete_department(id: string, force?: string) — Tool to delete a department. Use when removing an obsolete or restructured department after confirming dependent resources. - workable_delete_subscription(id: string) — Tool to unsubscribe from an event by deleting a webhook subscription. Use when you need to stop receiving notifications for a specific event. - workable_get_account(subdomain: string) — Tool to return the specified account. Use when you need account metadata by subdomain after listing available accounts. - 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 - workable_get_background_check_packages(provider: string) — Tool to retrieve a list of available background check packages from a specified provider. Use after identifying the provider to view available package options. - 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 - workable_get_candidates(email?: string, limit?: integer, stage?: string, created_after?: string, job_shortcode?: string, updated_after?: string) — 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 - workable_get_employee(id: string, member_id?: string) — 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 - workable_get_events(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) — 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 - workable_get_jobs(limit?: integer, state?: string, max_id?: string, since_id?: string, created_after?: string, updated_after?: string, include_fields?: string) — 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 - workable_get_legal_entities() — Tool to retrieve a collection of your account legal entities. Use after confirming valid authentication and enabling Employee Management. - workable_get_members(name?: string, role?: string, email?: string, limit?: integer, max_id?: string, status?: string, since_id?: string, shortcode?: string) — 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 - workable_get_recruiters(shortcode?: string) — 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 - workable_get_requisitions(limit?: integer, created_after?: string, updated_after?: string) — Tool to retrieve a collection of requisitions in the account. Use after authentication succeeds. - 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. - 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 - 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 - 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. - 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. - workable_list_employee_fields(member_id?: string) — 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. - workable_list_employees(limit?: integer, query?: string, offset?: integer, order_by?: string, member_id?: string) — 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 - 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. - workable_list_public_jobs(details?: boolean, subdomain: string) — 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. - workable_list_public_locations(subdomain: string) — 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 - workable_list_timeoff_balances(employee_id?: string) — 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 - 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. - 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 - workable_post_background_check(check?: object, status: string, attachments?: object[], results_url?: string, background_check_id: string) — 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 - workable_post_department_merge(id: string, force?: boolean, target_department_id: string) — Tool to merge a department into another. Use after confirming both department IDs and optional force flag. - workable_post_departments(name: string, parent_id?: string) — Tool to create a department in your account. Use when you need to add a new department for organizing teams under your Workable account. - workable_post_member_enable(id: string) — 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 - workable_post_members_invite(email: string, roles: string[], member_id?: string, collaboration_rules?: object[]) — Tool to invite a member to your Workable account. Use when sending an invitation email. - workable_put_departments(id: string, name: string, parent_id?: string) — Tool to update an existing department in your account. Use when renaming a department or changing its parent after confirming its ID. - workable_put_members(id: string, name?: string, email?: string, roles: string[], headline?: string, collaboration_rules?: object[]) — 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 - workable_update_employee(id: string, employee: object, member_id: string) — 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 - workable_upload_employee_documents(id: string, documents: object[], member_id: string) — 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. ## Example prompts - "What can I do in Workable?" - "Show me a summary of my Workable account" ## Links Docs: https://mcp.ai/docs/mcps/workable Website: https://mcp.ai/mcps/workable