workable_comment_ on_ candidateAdd a comment to a candidate's timeline.
Ask where a candidate stands, see how each job's pipeline is moving and who has gone quiet, move people between stages, leave comments and ratings, and check who is off next week, all in the Workable account your team already uses.
PopMCPWorkable
Every documented operation in Workable's API, with the everyday hiring tools loaded by default and the rest, from departments and member access to time tracking, performance reviews and surveys, one search away. A few more do what the API cannot in one call, such as finding a job by title or a candidate by name.
112 tools in the full catalog: 66 read and 46 write. 38 load by default, and the rest are found with tool search.
workable_comment_ on_ candidateAdd a comment to a candidate's timeline.
workable_copy_ candidate_ to_ jobCopy a candidate to another job and KEEP them on this one, so two records exist.
workable_create_ candidateAdd a candidate to a job.
workable_disqualify_ candidateDisqualify a candidate.
workable_get_ candidateGet a candidate's full profile: contact details, stage, job, education, experience, answers, skills, tags.
workable_get_ candidate_ offerGet the offer data on one candidate.
workable_list_ candidate_ activitiesList a candidate's timeline: stage moves, comments, ratings, messages, interviews.
workable_list_ candidate_ filesList the files on a candidate's Files tab by name.
workable_list_ candidatesList candidates, oldest first.
workable_move_ candidate_ to_ stageMove a candidate to another stage of their job.
workable_relocate_ candidate_ to_ jobMove a candidate to another job, REMOVING them from this one.
workable_revert_ candidate_ disqualificationUndo a disqualification, returning the candidate to active on the job.
workable_update_ candidateUpdate a candidate.
workable_update_ candidate_ tagsReplace a candidate's tags.
workable_upsert_ candidate_ ratingCreate or update a member's evaluation of a candidate on a stage.
workable_list_ disqualification_ reasonsList the account's disqualification reasons.
workable_list_ membersList the people who use this Workable account.
workable_list_ stagesList the account's recruiting pipeline stages: slug, name, kind, position.
workable_get_ employeeGet one employee in full.
workable_get_ jobGet one job in full by shortcode.
workable_get_ job_ application_ formGet a job's application form: which fields are required, and its questions.
workable_list_ employeesList employees.
workable_list_ job_ questionsList a job's application questions.
workable_list_ job_ stagesList the pipeline stages of one job: slug, name, kind, position.
workable_list_ jobsList jobs, oldest first.
workable_get_ requisitionGet one requisition by its code, such as REQ-1234.
workable_list_ requisitionsList headcount requisitions.
workable_advance_ candidateMove a candidate to a stage by its name, or to the next stage of their job when you pass none.
workable_candidate_ overviewEverything about one candidate in one call: profile, stage, job, recent timeline, file names and offer.
workable_download_ fileRead a file on a candidate or an employee: a resume, attachment, offer document or employee document.
workable_find_ candidateFind a candidate by email or name, since Workable's API has no name search.
workable_find_ jobFind a job by its title, since Workable's API cannot search jobs.
workable_job_ pipelineHow one job's hiring is going: its stages with how many active candidates are in each, how many are disqualified, and who has had no update for the longest.
workable_list_ timeoff_ balancesList time off balances across every category.
workable_list_ timeoff_ requestsList time off requests from from_date (required, YYYY-MM-DD).
workable_create_ subscriptionHave Workable POST to a URL when something happens.
workable_list_ subscriptionsList this connection's active webhook subscriptions.
workable_list_ eventsList scheduled calls, interviews and meetings.
workable_create_ talent_ pool_ candidateAdd a candidate to the talent pool, with no job.
workable_list_ custom_ attributesList the account's custom attributes for candidates.
workable_rate_ candidateAdd an evaluation of a candidate.
workable_update_ candidate_ custom_ attributeSet a custom attribute on a candidate.
workable_create_ departmentCreate a department, optionally under parent_id.
workable_deactivate_ memberDeactivate a member, taking their access away.
workable_delete_ departmentDelete a department.
workable_enable_ memberRestore a deactivated member.
workable_get_ accountGet this connection's Workable account: id, name, subdomain, description, summary, website_url.
workable_get_ collaboration_ permissionsGet the effective collaboration permissions configuration for the account.
workable_invite_ memberInvite someone to the Workable account by email with roles such as ats.simple or hris.employee, or names from workable_list_permission_sets.
workable_list_ accountsShow the Workable account this connection is for.
workable_list_ departmentsList the account's departments: id, name, parent_id.
workable_list_ legal_ entitiesList the account's legal entities.
workable_list_ permission_ setsList the account's custom permission sets.
workable_list_ recruitersList the account's external recruiters.
workable_merge_ departmentMerge a department into target_department_id, moving everything in it.
workable_update_ departmentRename or move a department.
workable_update_ memberChange a member's roles or collaboration rules.
workable_create_ review_ templateCreate a performance review template from a title and a questionnaire of sections and questions.
workable_get_ employee_ review_ aggregateGet one employee's review task in a cycle, with every review the caller may see.
workable_get_ reviewGet one review with its questionnaire and saved answers.
workable_get_ review_ cycleGet one review cycle with its dates and review types.
workable_get_ review_ formGet a task's form of one review type (self, manager, peer, upwards) with its questionnaire.
workable_get_ review_ templateGet one performance review template with its sections and questions.
workable_list_ review_ cycle_ answersPull the question answers of a cycle for reporting.
workable_list_ review_ cyclesList performance review cycles.
workable_list_ review_ tasksList the caller's own review tasks in a cycle: preparation tasks, and active tasks to write, view, share or sign.
workable_list_ review_ templatesList performance review master templates.
workable_mark_ review_ task_ readyMark a preparation task ready, locking its forms.
workable_share_ reviewShare an employee's reviews with them and notify them.
workable_sign_ reviewSign a shared review as the reviewee or the manager.
workable_submit_ reviewSave or submit answers to a review.
workable_update_ review_ formReplace the form of one review type on a preparation task.
workable_create_ employeeCreate an employee.
workable_get_ employee_ orgchartGet the org chart: each node holds an employee, parent_id (their manager) and direct reports.
workable_list_ employee_ documentsList an employee's documents by name.
workable_list_ employee_ fieldsList the employee fields configured on the account: which keys workable_create_employee and workable_update_employee take.
workable_list_ job_ activitiesList a job's activity stream.
workable_list_ job_ custom_ attributesList the custom attributes that apply to one job.
workable_list_ job_ membersList the members collaborating on one job.
workable_list_ job_ recruitersList the external recruiters on one job.
workable_list_ work_ schedulesList the account's work schedules.
workable_update_ employeeUpdate an employee.
workable_upload_ employee_ documentsAttach documents to an employee from links Workable downloads.
workable_approve_ requisitionApprove a requisition awaiting approval.
workable_create_ requisitionCreate a requisition.
workable_list_ requisition_ attribute_ choicesList the allowed choices of a dropdown or multiple choice requisition custom attribute.
workable_list_ requisition_ custom_ attributesList the fields of the account's requisition custom attributes.
workable_reject_ requisitionReject a requisition awaiting approval, with an optional rejection_reason.
workable_update_ requisitionUpdate a requisition.
workable_create_ survey_ templateCreate a survey template from a title and a questionnaire of sections and questions.
workable_get_ surveyGet one survey cycle.
workable_get_ survey_ outcomesGet a survey's aggregated results: response overview and per-question statistics.
workable_get_ survey_ templateGet one survey template with its questionnaire.
workable_list_ survey_ answersList a survey's individual submitted answers.
workable_list_ survey_ templatesList survey master templates.
workable_list_ surveysList survey cycles.
workable_archive_ time_ entryArchive a time entry.
workable_bulk_ create_ time_ entriesCreate complete time entries for several employees in one call, at most 500.
workable_create_ time_ entryAdd a time entry for an employee.
workable_create_ timeoff_ requestCreate a time off request.
workable_decide_ timeoff_ approvalApprove or reject a pending time off approval.
workable_list_ time_ entriesList time entries.
workable_list_ timeoff_ categoriesList the time off categories.
workable_update_ time_ entryChange a time entry's clock_in_time, clock_out_time or note.
workable_approve_ offerApprove an offer awaiting approval.
workable_delete_ subscriptionStop a webhook subscription.
workable_get_ offerGet an offer by id.
workable_list_ public_ departmentsList the departments with public jobs, with counts.
workable_list_ public_ jobsRead a company's public careers page: its published jobs.
workable_list_ public_ locationsList the locations with public jobs, with counts.
workable_reject_ offerReject an offer awaiting approval, with an optional rejection_reason.
workable_get_ eventGet one scheduled event.
Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Workable side.
Open Workable in PopMCP, click Connect Workable, sign in and approve. If your login has several Workable accounts, choose the one this connection is for. There is no developer app or callback URL to set up, and no subdomain to look up. If you would rather use an access token, an Admin makes one in Workable under Settings, Integrations, Apps, and it goes under More options.
your-workable-valueyou@company.com••••••••••••3f7aReading changes nothing, and a sign-in sees what your role in Workable allows. Moving and disqualifying candidates, comments, ratings and every other change wait until an owner or admin allows write actions in PopMCP, and new connections start read-only. Each connection is locked to the one Workable account you chose.
Drop the PopMCP URL into Claude, ChatGPT, Claude Code, Codex or any other supported client. It signs in through PopMCP with OAuth, so your Workable credential never leaves the server.
app.popmcp.com/mcpAsk for something harmless before the agent changes anything. Writes run as soon as it calls them, so confirm it reads the right account first.
Where is Ada Byron in our hiring process, and what has the team said about her?
workable_find_candidateok
Then just ask for the work
“Where is Ada Byron in our hiring process, and what has the team said about her?”
“How is the Senior Engineer job going? Who has had no update for the longest?”
“Move Ada to the Phone Screen stage and leave a comment that the referral checked out”
“Read this candidate's resume and sum up their last two roles”
“Add Jane Doe to the Office Manager job from these details, without emailing her”
“Who is off next week, and how many days does the team have left?”
One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.
Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.
The same endpoint, registered in the browser. Nothing to install on the machine you are working from.
Register PopMCP as a custom connector, then let ChatGPT read and update the account.
Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.
Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.
Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.
FAQ
What teams ask before putting Workable behind an AI client.
Nothing typed in. Click Connect Workable, sign in to Workable and approve. PopMCP is already registered with Workable, so there is no developer app, and it finds your account's subdomain by itself. Under More options, an access token made by an Admin works instead.
Sign in if you can. It acts with your role, renews by itself, and is the only way to read and approve offers. An access token is made by an Admin, reaches the whole account within the scopes ticked on it, ends on the expiry date chosen for it, and is limited to 10 requests every 10 seconds.
Workable records a member on each of these. Add your Workable email under More options when you connect and they show under your name. Without it they show under the account's Admin when there is only one, and otherwise the AI asks who to record.
Temporary file links are held back from the conversation, so a resume is opened only when the AI is asked to read it. Bank and national id numbers on employee records are masked in every answer. A sign-in sees only what your role allows, and a token only what its scopes allow.
Yes, if your account has it: employees and their documents, the org chart, time off, time tracking, performance reviews and surveys. On an account without it those tools answer that the feature is not available. Requisitions need Workable's Hiring Plan feature in the same way.
Yes. Every connection starts read-only, and an owner or admin can allow write actions later. With an access token you can also tick only the read scopes, and Workable itself refuses every change.
No. PopMCP calls Workable's documented API directly and adds tools that do several steps in one call, alongside your other connected apps from a single MCP URL. Workable's server is a separate product with its own tool set.
PopMCP can watch for candidates being added, moved or deleted, jobs being created, changed or deleted, new requisitions, new and changed employees, finished onboarding and time off changes.
No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.
Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.
Connect Workable in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Workable on the consent screen. The Workable tools are then available in that session, and no Workable credential is stored on your machine.
Loading 112 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 38-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.
A tool is something your AI calls, and there are 112 here. A trigger is something PopMCP watches for you: 13 Workable events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Workable.
Launch a hosted MCP endpoint for Workable, keep tool access under control, and start testing real workflow prompts right away.