MCP Server

Jobs by Workable

io.github.external-submissions-workable/jobs-by-workable
Business & Operations Search & Research Public & reachable MCP 2025-11-25

What this MCP does

Searches Workable job listings, retrieves company and job details, provides recommendations, and manages candidate profiles and applications.

get_company
Get company
Get the full profile of a company by its id (Workable UUID or database _id), including open job listings.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['companyId'], 'properties': {'companyId': {'type': 'string', 'description': 'Company id â\x80\x94 accepts either the Workable UUID or the database _id (returned as company.id by other tools)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id', 'name', 'slug', 'openJobCount', 'openJobs', 'openJobsUrl'], 'properties': {'id': {'type': 'string'}, 'logo': {'type': ['string', 'null']}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'website': {'type': ['string', 'null']}, 'openJobs': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'location'], 'properties': {'uid': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}, 'location': {'type': 'string'}, 'workplace': {'enum': ['on_site', 'hybrid', 'remote'], 'type': 'string'}, 'employmentType': {'type': 'string'}}, 'additionalProperties': False}}, 'description': {'type': 'string'}, 'openJobsUrl': {'type': 'string'}, 'openJobCount': {'type': 'number'}}, 'additionalProperties': False}
get_job
Get job
Get the full details of a single published job by its advertising UID.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['uid'], 'properties': {'uid': {'type': 'string', 'description': 'Advertising UUID of the job (accepts full or shortened form)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['uid', 'title'], 'properties': {'uid': {'type': 'string'}, 'title': {'type': 'string'}, 'company': {'anyOf': [{'type': 'object', 'properties': {'id': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'applyUrl': {'type': 'string'}, 'benefits': {'type': ['string', 'null']}, 'location': {'anyOf': [{'type': 'object', 'properties': {'city': {'type': ['string', 'null']}, 'coords': {'type': ['string', 'null']}, 'zip_code': {'type': ['string', 'null']}, 'subregion': {'type': ['string', 'null']}, 'state_code': {'type': ['string', 'null']}, 'country_code': {'type': ['string', 'null']}, 'country_name': {'type': ['string', 'null']}}, 'additionalProperties': False}, {'type': 'null'}]}, 'workplace': {'type': ['string', 'null']}, 'department': {'type': ['string', 'null']}, 'description': {'type': ['string', 'null']}, 'requirements': {'type': ['string', 'null']}, 'employmentType': {'type': ['string', 'null']}}, 'additionalProperties': False}
get_job_locations
Get job locations
List city/country pairs where jobs are published. Optionally filter by a partial city or country name. Supports pagination via after_key.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'size': {'type': 'integer', 'maximum': 150, 'minimum': 1, 'description': 'Maximum number of location buckets to return (default 100)'}, 'after': {'type': 'object', 'properties': {'city': {'type': ['string', 'null']}, 'country': {'type': ['string', 'null']}}, 'description': 'Pagination cursor from a previous response after_key', 'additionalProperties': False}, 'query': {'type': 'string', 'description': 'Partial city or country name to filter by (case-insensitive prefix match)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['locations'], 'properties': {'after_key': {'type': 'object', 'properties': {'city': {'type': ['string', 'null']}, 'country': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'locations': {'type': 'array', 'items': {'type': 'object', 'properties': {'city': {'type': ['string', 'null']}, 'country': {'type': ['string', 'null']}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_my_applications
Get my applications
List your submitted job applications, most recent first, paginated. Each item includes jobOpen, indicating whether the job is still open, and isWithdrawable, indicating whether the application can be withdrawn via the withdraw_application tool. If isWithdrawable is false, the application cannot be withdrawn from MCP; it can still be withdrawn from the confirmation email sent when applying. Recruiting-pipeline stages (in_review, interviewed, offered, rejected) are not tracked here.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'page': {'type': 'integer', 'default': 1, 'minimum': 1, 'description': '1-based page number; 10 applications per page (default 1)'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['totalItems', 'page', 'pageSize', 'totalPages', 'hasMore', 'applications'], 'properties': {'page': {'type': 'number'}, 'hasMore': {'type': 'boolean'}, 'pageSize': {'type': 'number'}, 'totalItems': {'type': 'number'}, 'totalPages': {'type': 'number'}, 'applications': {'type': 'array', 'items': {'type': 'object', 'required': ['applicationId', 'uid', 'title', 'location', 'applicationDate', 'jobOpen', 'isWithdrawable'], 'properties': {'uid': {'type': 'string', 'description': 'Job/posting identifier (use with get_job)'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}, 'company': {'type': 'object', 'properties': {'id': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'jobOpen': {'type': 'boolean', 'description': 'Whether the job is still active/open'}, 'location': {'type': 'string'}, 'workplace': {'type': 'string'}, 'applicationId': {'type': 'string', 'description': 'Application identifier (use with withdraw_application)'}, 'employmentType': {'type': 'string'}, 'isWithdrawable': {'type': 'boolean', 'description': 'Whether this application can be withdrawn via the withdraw_application MCP tool. If false, it cannot be withdrawn from MCP; it can still be withdrawn from the confirmation email sent when applying.'}, 'applicationDate': {'type': 'string', 'description': 'ISO date the application was submitted'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_my_profile
Get my profile
Get your candidate profile: name, contact details, headline, summary, resume, education and experience.
Read only
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'email': {'type': 'string'}, 'phone': {'type': 'string'}, 'resume': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}, 'address': {'type': 'string'}, 'summary': {'type': 'string'}, 'headline': {'type': 'string'}, 'lastname': {'type': 'string'}, 'education': {'type': 'array', 'items': {'type': 'object', 'properties': {'degree': {'type': 'string', 'description': 'e.g. BSc, MSc, PhD'}, 'school': {'type': 'string', 'description': 'School or university name'}, 'end_date': {'type': 'string', 'description': 'ISO date; omit if ongoing'}, 'start_date': {'type': 'string', 'description': 'ISO date, e.g. 2019-09-01'}, 'field_of_study': {'type': 'string'}}, 'additionalProperties': False}}, 'firstname': {'type': 'string'}, 'experience': {'type': 'array', 'items': {'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Job title'}, 'company': {'type': 'string', 'description': 'Company name'}, 'current': {'type': 'boolean', 'description': 'Set true if this is the current role'}, 'summary': {'type': 'string', 'description': 'Role description'}, 'end_date': {'type': 'string', 'description': 'ISO date; omit if current role'}, 'industry': {'type': 'string'}, 'start_date': {'type': 'string', 'description': 'ISO date, e.g. 2020-01-01'}}, 'additionalProperties': False}}, 'coverLetter': {'type': 'string'}}, 'additionalProperties': False}
get_recent_searches
Get recent searches
List popular/recent job search terms, tailored to your last known location, with a URL to run each search.
Read only
Input schema
{'type': 'object', 'properties': {}}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['searches'], 'properties': {'searches': {'type': 'array', 'items': {'type': 'object', 'required': ['query', 'display', 'url'], 'properties': {'url': {'type': 'string'}, 'query': {'type': 'string'}, 'display': {'type': 'string'}, 'location': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
get_recommendations
Get recommendations
Get personalized job recommendations for you. Recommendations are matched to your profile (skills, education, experience) and exclude jobs you have already applied to. If your profile is incomplete, recommendations fall back to jobs near your location.
Read only
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 10, 'maximum': 50, 'minimum': 1, 'description': 'Number of recommendations to return (default 10)'}, 'pageToken': {'type': 'string', 'description': 'Opaque cursor returned as nextPageToken from a previous call; pass it to fetch the next page'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobs'], 'properties': {'jobs': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'location'], 'properties': {'uid': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}, 'remote': {'type': 'boolean'}, 'company': {'type': 'object', 'properties': {'id': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'location': {'type': 'string'}, 'workplace': {'enum': ['on_site', 'hybrid', 'remote'], 'type': 'string'}, 'employmentType': {'type': 'string'}}, 'additionalProperties': False}}, 'nextPageToken': {'type': 'string'}}, 'additionalProperties': False}
search_jobs
Search jobs
Search published jobs on the Workable job board.
Read only Open world
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'query': {'type': 'string', 'description': 'Free-text search across job title, description, skills, company, name'}, 'location': {'type': 'string', 'description': 'City, region, or country to filter by'}, 'companyId': {'type': 'string', 'description': 'Restrict to a single company by id'}, 'day_range': {'type': 'integer', 'minimum': 0, 'description': 'Restrict to jobs posted in the last N days'}, 'pageToken': {'type': 'string', 'description': 'Opaque cursor returned as nextPageToken from a previous call; pass with the same filters to fetch the next page'}, 'workplace': {'type': 'array', 'items': {'enum': ['on_site', 'hybrid', 'remote'], 'type': 'string'}, 'description': 'Filter by workplace types'}, 'employment_type': {'type': 'array', 'items': {'enum': ['full', 'part', 'contract', 'temporary', 'internship'], 'type': 'string'}, 'description': 'Filter by employment types'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['totalItems', 'jobs'], 'properties': {'jobs': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'location'], 'properties': {'uid': {'type': 'string'}, 'url': {'type': 'string'}, 'title': {'type': 'string'}, 'remote': {'type': 'boolean'}, 'company': {'type': 'object', 'properties': {'id': {'type': ['string', 'null']}, 'name': {'type': ['string', 'null']}}, 'additionalProperties': False}, 'benefits': {'type': 'string'}, 'location': {'type': 'string'}, 'workplace': {'enum': ['on_site', 'hybrid', 'remote'], 'type': 'string'}, 'department': {'type': 'string'}, 'description': {'type': 'string'}, 'requirements': {'type': 'string'}, 'employmentType': {'type': 'string'}}, 'additionalProperties': False}}, 'totalItems': {'type': 'number'}, 'nextPageToken': {'type': 'string'}}, 'additionalProperties': False}
update_my_profile
Update my profile
Update your candidate profile: name, phone, location, education, and work experience.
Destructive
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'phone': {'type': 'string', 'description': 'Phone number'}, 'address': {'type': 'string', 'description': 'Postal address or location'}, 'lastname': {'type': 'string', 'description': 'Last name'}, 'education': {'type': 'array', 'items': {'type': 'object', 'required': ['school'], 'properties': {'degree': {'type': 'string', 'description': 'e.g. BSc, MSc, PhD'}, 'school': {'type': 'string', 'description': 'School or university name'}, 'end_date': {'type': 'string', 'description': 'ISO date; omit if ongoing'}, 'start_date': {'type': 'string', 'description': 'ISO date, e.g. 2019-09-01'}, 'field_of_study': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Full education history â\x80\x94 replaces existing list'}, 'firstname': {'type': 'string', 'description': 'First name'}, 'experience': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'company'], 'properties': {'title': {'type': 'string', 'description': 'Job title'}, 'company': {'type': 'string', 'description': 'Company name'}, 'current': {'type': 'boolean', 'description': 'Set true if this is the current role'}, 'summary': {'type': 'string', 'description': 'Role description'}, 'end_date': {'type': 'string', 'description': 'ISO date; omit if current role'}, 'industry': {'type': 'string'}, 'start_date': {'type': 'string', 'description': 'ISO date, e.g. 2020-01-01'}}, 'additionalProperties': False}, 'description': 'Full work experience â\x80\x94 replaces existing list'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'phone': {'type': 'string'}, 'address': {'type': 'string'}, 'lastname': {'type': 'string'}, 'education': {'type': 'array', 'items': {'type': 'object', 'properties': {'degree': {'type': 'string', 'description': 'e.g. BSc, MSc, PhD'}, 'school': {'type': 'string', 'description': 'School or university name'}, 'end_date': {'type': 'string', 'description': 'ISO date; omit if ongoing'}, 'start_date': {'type': 'string', 'description': 'ISO date, e.g. 2019-09-01'}, 'field_of_study': {'type': 'string'}}, 'additionalProperties': False}}, 'firstname': {'type': 'string'}, 'experience': {'type': 'array', 'items': {'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Job title'}, 'company': {'type': 'string', 'description': 'Company name'}, 'current': {'type': 'boolean', 'description': 'Set true if this is the current role'}, 'summary': {'type': 'string', 'description': 'Role description'}, 'end_date': {'type': 'string', 'description': 'ISO date; omit if current role'}, 'industry': {'type': 'string'}, 'start_date': {'type': 'string', 'description': 'ISO date, e.g. 2020-01-01'}}, 'additionalProperties': False}}}, 'additionalProperties': False}
withdraw_application
Withdraw application
Withdraw one of your submitted job applications by its application id. This action cannot be undone from here.
Destructive
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['applicationId'], 'properties': {'applicationId': {'type': 'string', 'description': 'Application identifier, as returned by get_my_applications. Only applications with isWithdrawable true can be withdrawn via this tool'}}, 'additionalProperties': False}
Output schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['applicationId', 'withdrawn'], 'properties': {'withdrawn': {'type': 'boolean'}, 'applicationId': {'type': 'string'}}, 'additionalProperties': False}
Added
withdraw_application
Sept. 17, 2026, 12:41 p.m.
Added
get_recent_searches
Sept. 17, 2026, 12:41 p.m.
Added
get_recommendations
Sept. 17, 2026, 12:41 p.m.
Added
get_my_applications
Sept. 17, 2026, 12:41 p.m.
Added
update_my_profile
Sept. 17, 2026, 12:41 p.m.
Added
get_my_profile
Sept. 17, 2026, 12:41 p.m.
Added
get_job_locations
Sept. 17, 2026, 12:41 p.m.
Added
get_company
Sept. 17, 2026, 12:41 p.m.
Added
get_job
Sept. 17, 2026, 12:41 p.m.
Added
search_jobs
Sept. 17, 2026, 12:41 p.m.