cats_get_site
Get CATS site
The CATS site (account) this API key belongs to: id, mode (recruiter or employer) and subdomain. GET /site.
Takes no parameters.
io.usefulapiPublished by usefulapi.ioOfficial publisherv1.8.4Updated Nov 7, 2026
Read CATS candidates, jobs and pipelines, and make explicitly confirmed recruiting changes.
The publisher's own server: Ably MCP by usefulapi
Read and search CATS recruiting data — candidates, jobs, pipelines, companies and contacts — and make explicitly confirmed recruiting changes.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.usefulapi%2Fcats-ats/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"cats-by-usefulapi": {
"type": "http",
"url": "https://cats-ats.usefulapi.io/mcp"
}
}
}https://cats-ats.usefulapi.io/mcp.claude mcp add --transport http cats-ats https://cats-ats.usefulapi.io/mcp, then run /mcp to log in.Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your CATS credentials.
Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/cats-ats/
read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.
*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].
Pro covers this server only. Subscribe with cats_upgrade (it returns a Stripe Checkout link). Cancel any time with cats_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running cats_upgrade before then undoes the cancel. Or write to [email protected].
MIT
Create a v3 API key in CATS under Administration → API Keys. Legacy Transaction Codes do not work. The generation form offers no read-only scope selector. Authorize UsefulAPI and your selected AI client to process only data you are entitled to share. CATS account eligibility and vendor charges remain separate from UsefulAPI plans. This independent connector makes no claim of vendor approval or endorsement.
Candidate/contact records contain personal information. Do not use this workflow for government IDs, health data, personal financial information or other CATS Prohibited Data. Known credential and sensitive financial/health fields and HAL link blocks are filtered; customers must still review free text and custom fields. Tool results reach your chosen AI client and LLM provider, whose privacy and retention policies also apply. Revoke the API key in CATS to stop vendor access; disconnect UsefulAPI to end this connection.
CATS documents a rolling 500 API requests/hour limit; its counter scope is not specified. Collection pages default to 25, maximum 100. Authentication is capped at 10 seconds/64 KiB; operation replies at 30 seconds/8 MiB. Billing follows the verified CATS site ID, so rotation of a key within the same site keeps the account identity.
All four writes require confirm:true: create a candidate, log candidate activity, create a task or change pipeline status. Assigned tasks may notify a user. No email/SMS-send request is made by an activity note, even when its activity type is email or text_message. Independently configured account automation and webhooks can still react to changes.
Pipeline moves read the workflow/status metadata, explicitly request every returned trigger be suppressed with fire:false, and send create_activity=false. An already-current status makes no write. Preflight reads are not an atomic lock, so concurrent changes remain possible; independent webhooks are not suppressed. No email delivery, delete, attachment download, bulk-export endpoint or webhook-management tool is exposed.
No vendor request is automatically replayed. Creates require the documented 201 and a matching Location record ID; inconsistent or uncertain acknowledgements are errors. Inspect CATS before retrying a write. Date-only task/activity dates are sent at midnight UTC.
The 34 vendor tools were checked against the current API reference and local mocks. Actual own-trial reads verified account identity and HAL response structures, including vendor-supplied sample records. No real customer recruiting records or business writes were tested. Current terms allow customer-directed third-party software, and the vendor publishes external API-key setup guidance; this does not assert CATS reviewed UsefulAPI.
References: API v3, terms, external-key setup.
Source: servers/cats-ats/README.md at commit 4046075
Get CATS site
The CATS site (account) this API key belongs to: id, mode (recruiter or employer) and subdomain. GET /site.
Takes no parameters.
List users
List the CATS users (recruiters) with id, name, title and access level. Use the ids as owner or assignee. GET /users.
pageper_pageList candidates
List candidates (personal data: name, emails, address, employer, skills, notes), one page at a time, max 100 per page. Use cats_search_candidates or cats_filter_candidates to find specific people. GET /candidates.
pageper_pageGet candidate
One candidate by id (personal data). GET /candidates/{id}.
candidate_idrequiredSearch candidates
Free-text search over candidates (name, email, skills, resume text...), paged. GET /candidates/search?query=.
pagequeryrequiredper_pageFilter candidates
Filter candidates by fields (read-only, although it is a POST): first_name, last_name, title, emails.primary, address.city/state/postal_code, country_code, current_employer, key_skills, notes, dates (date_created, date_modified), owner_id, is_hot... Each condition is {field, filter, value}; filters: exactly, contains, between {gte,lte}, greater_than, less_than, is_empty, geo_distance. Paged. POST /candidates/search.
pagematchper_pageconditionsrequiredList a candidate's pipelines
The jobs a candidate is in the pipeline for, with rating, workflow and current status id. GET /candidates/{id}/pipelines.
pageper_pagecandidate_idrequiredList a candidate's activities
The activity log of a candidate (calls, meetings, notes, pipeline changes), paged. GET /candidates/{id}/activities.
pageper_pagecandidate_idrequiredList a candidate's tasks
Tasks attached to a candidate. GET /candidates/{id}/tasks.
pageper_pagecandidate_idrequiredList a candidate's attachments (metadata)
File names, sizes and whether each file is a resume, for a candidate's attachments. Metadata only: file contents are never downloaded. GET /candidates/{id}/attachments.
pageper_pagecandidate_idrequiredList jobs
List job orders with title, location, company, recruiter, status and workflow ids, dates. Paged. GET /jobs.
pageper_pageGet job
One job order by id, with its description. GET /jobs/{id}.
job_idrequiredSearch jobs
Free-text search over job orders, paged. GET /jobs/search?query=.
pagequeryrequiredper_pageList a job's pipeline
The candidates in the pipeline of a job: pipeline id, candidate id, rating and current status id. Paged. GET /jobs/{id}/pipelines.
pagejob_idrequiredper_pageList job statuses
The statuses a job order can have (Active, OnHold, Closed...). GET /jobs/statuses.
pageper_pageList pipelines
List candidate-to-job pipelines (candidate id, job id, rating, workflow id, status id), paged. GET /pipelines.
pageper_pageGet pipeline
One pipeline (a candidate on a job) by id. GET /pipelines/{id}.
pipeline_idrequiredFilter pipelines
Filter pipelines by id, candidate_id, job_id, status_id, rating, date_created or date_modified (read-only, although it is a POST). Each condition is {field, filter, value}. Paged. POST /pipelines/search.
pagematchper_pageconditionsrequiredGet pipeline status history
The status changes of a pipeline over time (status, who, when). GET /pipelines/{id}/statuses.
pageper_pagepipeline_idrequiredList pipeline workflows
The pipeline workflows (sets of statuses such as Contacted, Interviewing, Offered). GET /pipelines/workflows.
pageper_pageList workflow statuses
The statuses of one pipeline workflow (id, title, prerequisites, triggers). Use the ids with cats_change_pipeline_status. GET /pipelines/workflows/{id}/statuses.
pageper_pageworkflow_idrequiredList companies
List client companies (name, address, website, owner), paged. GET /companies.
pageper_pageGet company
One company by id. GET /companies/{id}.
company_idrequiredSearch companies
Free-text search over companies, paged. GET /companies/search?query=.
pagequeryrequiredper_pageList contacts
List client contacts (personal data: name, title, emails, company), paged. GET /contacts.
pageper_pageGet contact
One client contact by id (personal data). GET /contacts/{id}.
contact_idrequiredSearch contacts
Free-text search over client contacts, paged. GET /contacts/search?query=.
pagequeryrequiredper_pageList tasks
List tasks (description, priority 1-5, due date, assignee, completion, the record it is about), paged. GET /tasks.
pageper_pageGet task
One task by id. GET /tasks/{id}.
task_idrequiredList activities
The site-wide activity log (calls, emails logged, meetings, notes) with the record each is about, paged. GET /activities.
pageper_pageAdd an activity (note) to a candidate
WRITE: Requires confirm:true. log an activity (a call, meeting, note...) on a candidate's record. It only records the entry in CATS: no email/SMS-send request is made, even for type 'email' or 'text_message'. Creates a new entry each time (not idempotent). POST /candidates/{id}/activities.
datetyperequirednotesrequiredconfirmrequiredcandidate_idrequiredregarding_job_idCreate a task
WRITE: Requires confirm:true. create a task in CATS, optionally about a candidate, contact, company or job and assigned to a user. Creates a new task each time (not idempotent); CATS may notify the assignee. POST /tasks.
confirmrequiredabout_iddate_duepriorityabout_typedescriptionrequiredassigned_to_idMove a candidate to another pipeline status
WRITE: Requires confirm:true. change the status of a pipeline (move a candidate to another stage of a job's workflow, e.g. Interviewing, Offered, Rejected). Get the pipeline id from cats_list_candidate_pipelines and the status id from cats_list_workflow_statuses. Requires confirm:true. Requests that status triggers (which can e-mail people or change records) be suppressed: every trigger attached to the target status is sent with fire=false. CATS remains responsible for enforcing its trigger semantics; independently configured webhooks may still run. The change is recorded in the pipeline's status history. POST /pipelines/{id}/status.
confirmrequiredstatus_idrequiredpipeline_idrequiredCreate a candidate
WRITE: Requires confirm:true. create one candidate record (personal data) with name, optional contact details and notes. Refuses when CATS finds a duplicate (check_duplicate=true, the default). Creates a new record each time (not idempotent); no email-send request is made to the candidate and no login is created. POST /candidates.
cityemailnotesphonestatetitlesourceconfirmrequiredowner_idlast_namerequiredfirst_namerequiredkey_skills+5 more100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
io.usefulapiOfficial publisher
Hosted MCP server for Ably realtime messaging: inspect channel history, presence and occupancy, publish messages, and review app usage and configuration.
io.usefulapiOfficial publisher
Hosted read-only MCP server that lets an assistant look up Woffu company users, employment contracts, departments and offices.
io.usefulapiOfficial publisher
Hosted MCP server for White Label Loyalty: browse rewards, read a customer's points wallet and tier progress, and buy rewards with points.
io.usefulapiOfficial publisher
Hosted Weekdone connector that lets an assistant read weekly reports, teams, objectives and KPIs, and add report items, comments and KPI values.
io.usefulapiOfficial publisher
Hosted read-only MCP server that lets an assistant list WebinarKit webinars, their dates, series, meetings and white-label sub-accounts.
{ "mcpServers": { "cats-ats": { "url": "https://cats-ats.usefulapi.io/mcp" } }}