Connect Hermes to Workable
Set up in minutes
Choose where it runs
On your computer through your own Hermes, or hosted in the cloud. The rest of setup adapts to your choice:
Pick what it can do in Workable
A preset of real Workable operations. Each one becomes a tool the agent can call, and it can't touch anything outside the list.
Connect Workable
One sign-in. The agent acts through your account, scoped to the operations you picked.
Add your personal MCP link
The last step mints a private MCP URL for this agent and walks you through exactly this, with your real link filled in. The page flips to Connected the moment your Hermes first calls in. Hermes connects when it next starts a session.
1. Run this in your terminal
2. Answer no when asked if the server requires authentication — the link itself is the key
<your-link> is your personal server URL — setup mints it for you.
Tools Hermes gets
Workable
82 toolsReturns a collection of all the accounts you have access to. Required scope: `r_jobs`. Accessible with all token types.
Returns the specified account. Required scope: `r_jobs`. Accessible with all token types.
Returns a collection of your account departments. Required scope: `r_account`. Accessible with all token types.
Returns a collection of your account members. Required scope: `r_jobs`. Accessible with account tokens and user tokens.
Updates a member. Required scope: `w_members`. Accessible with all token types.
Invites a member. Required scope: `w_members`. Accessible with all token types.
Deactivates a member. Required scope: `w_members`. Accessible with all token types.
Restores a deactivated member. Required scope: `w_members`. Accessible with all token types.
Returns a collection of your account external recruiters. Required scope: `r_jobs`. Accessible with account tokens and user tokens.
Returns a collection of your recruitment pipeline stages. Required scope: r_jobs. Accessible with all token types.
Returns a collection of your recruitment pipeline stages. Required scope: r_jobs. Accessible with all token types.
Returns a collection of your account departments. Required scope: `r_account`. Accessible with all token types.
Creates a department in your account. Required scope: `w_departments`. Accessible with all token types.
Updates an existing department in your account. Required scope: `w_departments`. Accessible with all token types.
Merges an existing department with a target one in your account. Required scope: `w_departments`. Accessible with all token types.
Deletes a department. Required scope: `w_departments`. Accessible with all token types.
Returns a collection of your account legal entities. Required scope: `r_account`. Accessible with all token types.
Returns a collection of account’s disqualification reasons. Required scope: `r_jobs`. Accessible with all token types.
Returns a collection of your account requisitions. Required scope: `r_requisitions`. Accessible with all token types for accounts with Hiring Plan.
Returns a requisition. Required scope: `r_requisitions`. Accessible with all token types for accounts with Hiring Plan.
Creates a requisition. Required scope: `w_requisitions`. For accounts with Hiring Plan.
Updates a requisition. Required scope: `w_requisitions`. For accounts with Hiring Plan.
Approves a requisition (must be in a compatible state). Required scope: `w_requisitions`. For accounts with Hiring Plan.
Rejects a requisition (must be in a compatible state). Required scope: `w_requisitions`. For accounts with Hiring Plan.
Returns an offer. Required scope: `r_offers`. Accessible only with user tokens.
Approves an offer (must be in a compatible state). Required scope: `w_offers`. Accessible only with user tokens.
Rejects an offer (must be in a compatible state). Required scope: `w_offers`. Accessible only with user tokens.
Returns a collection of your account jobs. Required scope: `r_jobs`. Accessible with all token types.
Returns the details of the specified job. Required scope: `r_jobs`. Accessible with all token types.
Returns the activity stream of the given job. Requires scope `r_candidates`. Accessible with all token types.
Returns the application form details for the specified job. Required scope: `r_jobs`. Accessible with all token types.
Returns the questions for the specified job. Required scope: `r_jobs`. Accessible with all token types.
Returns a collection of your recruitment pipeline stages. Required scope: `r_jobs`. Accessible with all token types.
Returns a collection of the custom attributes that are relevant to a specific job. Required scope: `r_jobs`. Accessible with all token types.
Returns a collection of your account members. Required scope: `r_jobs`. Accessible with account tokens and user tokens.
Returns a collection of your account external recruiters. Required scope: `r_jobs`. Accessible with account tokens and user tokens.
Returns a collection of the job's candidates. Required scope: `r_candidates`. Accessible with all token types.
Creates a candidate at the specified job. Required scope: `w_candidates`. Accessible with all token types.
Creates a candidate in the talent pool. Required scope: `w_candidates`. Accessible with all token types.
Returns specified candidate. Required scope: `r_candidates`. Accessible with all token types.
Partially updates a candidate. Required scope: `w_candidates`. Accessible with all token types.
Returns the activity stream of the given candidate. Required scope: `r_candidates`. Accessible with all token types.
Returns the files associated with the given candidate. Accessible with all token types.
Returns the offer related data of the given candidate. Required scope: `r_candidates`. Accessible with all token types.
Creates a comment on the candidate's timeline. Required scope: `w_candidates` or `w_comments`. Accessible with all token types.
Updates candidate's tags. Required scope: `w_candidates`. Accessible with all token types.
Disqualifies a candidate. Required scope: `w_candidates`. Accessible with all token types.
Reverts a candidate's disqualification. Required scope: `w_candidates`. Accessible with all token types.
Copies a candidate to another job. Required scope: `w_candidates`. Accessible with all token types.
Moves a candidate to another job. Required scope: `w_candidates`. Accessible with all token types.
Moves the candidate to another stage. Required scope: `w_candidates`. Accessible with all token types.
Creates a rating for a candidate. Required scope: `w_candidates`. Accessible with all token types.
Updates or creates an evaluation for a candidate. Required scope: `w_candidates`. Accessible with all token types. If an evaluation already exists for the given member on the given stage, it is updated. Otherwise, a new one is created. The stage defaults to the candidate's current stage when stage_id is not provided.
Updates a custom attribute value for a candidate. Required scope: `r_jobs`. Accessible with all token types.
Returns a collection of the account's custom attributes. Required scope: `r_jobs`. Accessible with all token types.
Returns a collection of events. Required scope: `r_jobs`. Accessible with account tokens and user tokens.
Returns date for the identified event. Required scope: `r_jobs`. Accessible with account tokens and user tokens.
Returns a collection of your account employees. Required scope: `r_employees`.
Returns a collection of your account employee_fields. Required scope: `r_account`.
Returns all relevant information for a specific employee. Required scope: `r_employees`. Accessible with user access tokens and with account level tokens that provide member_id query param.
Returns a collection of the uploaded documents for a specific employee. Required scope: `r_employees`. Accessible with user level tokens and account level tokens that provide the member_id query param. Use the `type` query parameter to select which class of documents to return. `type=i_9_form_document` is only accessible to the employee who owns the document or a member with the `SignaturesView` permission; other callers receive `403 Forbidden`.
Returns org chart nodes for the account. Required scope: `r_employees`. Supports account tokens. Each node contains an employee `content` payload, its `parent_id` (the manager's SPI key), and `direct_reports_count` (loaded only at the currently requested level). When no filters and no `employee_id` are provided, the response contains top-level employees (those without a manager) together with their first-level direct reports. Provide `employee_id` to return the direct reports of a specific emp
Returns a collection of your account work_schedules. Required scope: `r_account`.
Creates an employee for your account. Required scope: `w_employees`.
Updates an existing employee. Required scope: `w_employees`.
Uploads a list of documents for a specific employee. Required scope: `w_employees`.
Lists the time off categories configured for your account. Required scope: `r_timeoff`.
Creates a new time off request. Required scope: `w_timeoff`. Supports both user and account level tokens.
Returns a paginated collection of time off requests. Required scope: `r_timeoff`. Supports both user and account tokens. **Account token** — when `employee_id`/`employee_ids` are omitted, returns all requests in the account. **User token** — when `employee_id`/`employee_ids` are omitted, returns the user's own requests plus all direct and indirect descendants' requests. A user with the **time off requests view** permission receives all account requests.
Approves or rejects a pending time off approval. Required scope: `w_timeoff`.
Returns a collection of your time off balances concerning all time off categories. Required scope: `r_timeoff`.
Returns a paginated list of time entries. Required scope: `r_time_tracking`. Supports both user and account tokens. **Account token** — when `employee_ids` is omitted, returns all entries in the account. **User token** — when `employee_ids` is omitted, returns the user's own entries plus all direct and indirect descendants' entries. A user with the **time tracking manage** permission receives all account entries.
Creates a single time entry for the specified employee. Supports five clock modes. Supports both user and account tokens. Required scope: `w_time_tracking`.
Bulk creates complete time entries for one or more employees (max 500). Supports both user and account tokens. Required scope: `w_time_tracking`.
Updates an existing time entry. At least one of `clock_in_time`, `clock_out_time`, or `note` must be provided. Supports both user and account tokens. Required scope: `w_time_tracking`.
Archives a time entry (soft-delete). Returns 204 No Content on success. Supports both user and account tokens. Required scope: `w_time_tracking`.
Returns the account's performance review master templates. Required scope: `r_reviews`. Requires a user token with permission to view performance templates. Only the latest, non-deleted master templates in the `performance_review` category are returned. Pagination is optional via `limit` and `offset`; when omitted every template is returned.
Returns a single performance review master template by its id. Required scope: `r_reviews`. Requires a user token with permission to view performance templates. Only the latest, non-deleted master template in the `performance_review` category is returned. Templates belonging to a different category (e.g. surveys) return `404`.
Creates a performance review master template for the account. Required scope: `w_reviews`. Requires a user token with permission to manage performance templates. The `questionnaire` is normalised before being persisted — `position` is auto-assigned when omitted, and `type` / `semantic_type` accept either snake_case (e.g. `star_rated`) or PascalCase (e.g. `StarRated`). The response is returned in snake_case.
Subscribe to an event. Required scope: `r_candidates` or `r_employees`. Accessible with all token types.
Subscribe to an event. Required scope: `r_candidates` or `r_employees`. Accessible with all token types.
Unsubscribe from an event. Required scope: `r_candidates` or `r_employees`. Accessible with all token types.
About Hermes
Frequently asked questions
More ways to connect
More tools for Hermes
Use Workable with other agents
Open your Hermes agent in one click.
NoClick runs Hermes for you with Workable wired in as tools. Connect your account and run.