# Workable

> Manage Workable recruiting - jobs, candidates, stages, interviews, offers and requisitions.

Lets an agent run your Workable recruiting pipeline - browse jobs and
candidates, move people between stages, leave comments and ratings, schedule
work around interviews, and handle offers and requisitions.

## What it can do

| Method | What it does |
| --- | --- |
| `workable_list_accounts` | List accounts you can access (each one's subdomain). |
| `workable_get_account` | Get one account by subdomain. |
| `workable_list_stages` | List the account's recruitment pipeline stages. |
| `workable_list_departments` | List account departments. |
| `workable_list_legal_entities` | List account legal entities. |
| `workable_list_disqualification_reasons` | List disqualification reasons (with ids). |
| `workable_list_recruiters` | List external recruiters. |
| `workable_list_permission_sets` | List account permission sets. |
| `workable_list_custom_attributes` | List the account's custom attributes. |
| `workable_list_members` | List members, or members assigned to a job. |
| `workable_list_jobs` | List account jobs; filter by state, paginate by cursor. |
| `workable_get_job` | Get one job by shortcode. |
| `workable_list_job_stages` | List a job's pipeline stages. |
| `workable_list_job_recruiters` | List a job's external recruiters. |
| `workable_list_job_questions` | List a job's application questions. |
| `workable_get_job_application_form` | Get a job's application form. |
| `workable_list_job_custom_attributes` | List a job's custom attributes. |
| `workable_list_job_activities` | Get a job's activity stream. |
| `workable_list_candidates` | List candidates account-wide or for a job; filter by email/stage. |
| `workable_get_candidate` | Get one candidate by id. |
| `workable_list_candidate_activities` | Get a candidate's activity stream. |
| `workable_list_candidate_files` | List a candidate's files. |
| `workable_list_candidate_ratings` | List a candidate's evaluation ratings. |
| `workable_get_candidate_offer` | Get a candidate's offer data. |
| `workable_create_candidate` | Create a candidate on a job. |
| `workable_create_talent_pool_candidate` | Create a candidate in the talent pool. |
| `workable_update_candidate` | Partially update a candidate. |
| `workable_move_candidate` | Move a candidate to another stage. |
| `workable_hire_candidate` | Move a candidate to a hired stage, supplying the requisition payload required on hiring-plan accounts. |
| `workable_disqualify_candidate` | Disqualify a candidate with a reason. |
| `workable_revert_candidate` | Revert a candidate's disqualification. |
| `workable_create_candidate_comment` | Add a comment to a candidate's timeline. |
| `workable_create_candidate_rating` | Leave an evaluation rating for a candidate. |
| `workable_copy_candidate` | Copy a candidate to another job. |
| `workable_relocate_candidate` | Move a candidate to another job. |
| `workable_update_candidate_tags` | Replace a candidate's tags. |
| `workable_update_candidate_custom_attribute` | Set a candidate's custom attribute value. |
| `workable_list_events` | List events (interviews and other scheduled events). |
| `workable_get_event` | Get one event (e.g. an interview) by id. |
| `workable_get_offer` | Get one offer by id. |
| `workable_approve_offer` | Approve an offer. |
| `workable_reject_offer` | Reject an offer. |
| `workable_list_requisitions` | List requisitions. |
| `workable_get_requisition` | Get one requisition by code. |
| `workable_approve_requisition` | Approve a requisition. |
| `workable_reject_requisition` | Reject a requisition. |
| `workable_list_subscriptions` | List active webhook subscriptions (with their ids). |
| `workable_create_subscription` | Create a webhook subscription for a candidate/employee event. |
| `workable_delete_subscription` | Delete a webhook subscription by id. |
| `workable_follow_paging` | Fetch the next page of any list by following its `paging.next` URL. |

## How to get credentials

1. In Workable, open **Settings** (the gear) and go to
   **Integrations**.
2. Under **Access tokens (API)** select **Generate new token**.
3. Name the token (e.g. *FlyMyAI Agent*) and grant the scopes the agent
   needs - typically read on jobs and candidates plus write on
   candidates if you want to create, move, comment or rate them.
4. Copy the generated token - you will not be able to see it again.
5. Note your **account subdomain** - it is the first part of your
   Workable URL, `https://{subdomain}.workable.com`.

Full guide:
[help.workable.com - Generating an API access token](https://help.workable.com/hc/en-us/articles/115015785428).

## Fields to fill in FlyMyAI

| FlyMyAI field | Where it comes from |
| --- | --- |
| `WORKABLE_API_KEY` | Settings → Integrations → Access tokens (API) |
| `WORKABLE_SUBDOMAIN` | The `{subdomain}` in `{subdomain}.workable.com` |

## Links

- [Generate an API access token](https://help.workable.com/hc/en-us/articles/115015785428)
- [Workable API reference](https://workable.readme.io/reference)
