Index / MCP servers / Workorai

Workorai MCP server

Workorai is a remote MCP server that gives an AI agent 29 tools, among them candidate.accept_invitation, candidate.apply_to_job, candidate.decline_invitation. It answers at https://workorai.com/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 11 September 2026; the last check, on 24 October 2026, succeeded.

Status
Answering
Tools
29
Reliability
6 of 6 checks
Response time
51 ms
Transport
streamable HTTP
Last checked
24 October 2026

WorkorAI talent marketplace MCP: candidate job search and employer hiring with explainable matching

Description as the publisher wrote it.

The 29 tools Workorai offers

ToolWhat it does
candidate.accept_invitationAccept an employer's invitation to a job (INVITED -> APPLIED). Idempotent — accepting an already-accepted invite succeeds. Returns NOT_INVITED when there is no open invitation (e.g. already withdrawn/declined), and NOT_FOUND when the job/in
Inputs: apiKey, jobId
candidate.apply_to_jobApply the candidate to a PUBLISHED job, reusing their evaluated profile interview as evidence. Idempotent (re-applying succeeds; `reused` is true when an application row already existed). Requires a completed + evaluated interview — otherwi
Inputs: apiKey, jobId
candidate.decline_invitationDecline an employer's invitation to a job (INVITED -> DECLINED). TERMINAL — a declined invite blocks any re-invite from the employer, so only decline when the candidate is sure. Idempotent (declining again succeeds). Returns NOT_INVITED whe
Inputs: apiKey, jobId
candidate.get_applicationsList the candidate's own job applications (newest first) with status, dates, the originating interview score, and a job summary. Returns only the caller's applications — no jobId input, so it is not an enumeration surface.
Inputs: apiKey
candidate.get_jobFetch a single published job by id.
Inputs: apiKey, jobId
candidate.get_saved_jobsList the candidate's saved (bookmarked) jobs, newest first. Only currently PUBLISHED jobs are returned — a job saved earlier then closed/archived is omitted.
Inputs: apiKey
candidate.search_jobsSemantically rank published jobs against the authenticated candidate profile (embedding-based fit). Optional tier (best|good|weak) narrows to a match-quality band — start with tier:'best' for the strongest fits and cascade only if needed; o
Inputs: apiKey, q, workModel, seniority, jobType, limit
candidate.set_saved_jobSet whether a PUBLISHED job is in the candidate's saved list (idempotent desired-state, NOT a toggle — pass saved:true to bookmark, saved:false to remove). Returns NOT_FOUND for a missing or non-public job.
Inputs: apiKey, jobId, saved
candidate.withdraw_applicationWithdraw the candidate's active application to a job (APPLIED -> WITHDRAWN). Idempotent (withdrawing again succeeds). Returns NOT_APPLIED when there is no active application (e.g. only an open invitation, or already declined), and NOT_FOUND
Inputs: apiKey, jobId
employer.archive_jobTransition a CLOSED job to ARCHIVED. Returns NOT_FOUND for missing or non-owner jobs and CONFLICT when the job is not in CLOSED.
Inputs: apiKey, jobId
employer.cancel_invitationCancel a pending invitation sent to a candidate. The invitation record is deleted; the employer can re-invite the same candidate later.
Inputs: apiKey, jobId, candidateUserId
employer.close_jobTransition a PUBLISHED job to CLOSED. Returns NOT_FOUND for missing or non-owner jobs and CONFLICT when the job is not in PUBLISHED.
Inputs: apiKey, jobId
employer.create_jobParse raw text via Gemini AI and create a DRAFT job under the current employer. Synchronous: latency 5-30s. The agent can then call employer.update_job to refine fields and employer.publish_job to make it live.
Inputs: apiKey, rawText
employer.delete_jobPermanently delete a DRAFT job that was never published. Returns NOT_FOUND for missing or non-owner jobs and CONFLICT when the job is not in DRAFT.
Inputs: apiKey, jobId
employer.get_applicant_detailFull applicant bundle: resume, interview light slice (overallScore + summary + facts), GitHub analysis, LinkedIn analysis. The verbatim transcript is delivered by employer.get_applicant_transcript; the resume's contact fields are blanked un
Inputs: apiKey, applicationId
employer.get_applicant_transcriptVerbatim interview transcript for one applicant. Ownership-only gate (same as the UI Download button — no SHORTLISTED/HIRED requirement). Returns an empty array when the source interview never produced turns.
Inputs: apiKey, applicationId
employer.get_candidateFetch a discoverable candidate by user id. Returns search-entry shape plus a light interview slice (overallScore + summary + completedAt + evaluatedAt) and `existingApplications`: every JobApplication this candidate has on any of the employ
Inputs: apiKey, userId
employer.get_candidate_evidenceFetch the interview EVIDENCE (facts proven in the interview + their Q&A, the interview summary, the résumé summary, and GitHub/LinkedIn signals) for ONE candidate AGAINST one of your published jobs — the white-box basis to explain WHY a can
Inputs: apiKey, jobId, userId
employer.get_jobFetch a single employer job record by id. Returns NOT_FOUND for missing jobs and for jobs owned by another employer (no existence leak).
Inputs: apiKey, jobId
employer.invite_candidateInvite a discoverable candidate to one of the employer's PUBLISHED jobs. Creates a JobApplication with status=INVITED. If a prior WITHDRAWN row exists for this (candidate, job) pair, the row is UPDATEd back to INVITED (re-invite is allowed
Inputs: apiKey, jobId, candidateUserId
employer.list_applicantsList the live (APPLIED) applicants on one of the employer's jobs. The candidate showcase + interview overallScore/summary are always returned; contact fields are only included when the application is SHORTLISTED or HIRED.
Inputs: apiKey, jobId
employer.list_invitationsList the pending (INVITED) candidates on one of the employer's jobs — candidates who have been invited but have not yet accepted or declined.
Inputs: apiKey, jobId
employer.list_jobsList jobs owned by the current employer account.
Inputs: apiKey, status, limit, offset
employer.publish_jobTransition a DRAFT job to PUBLISHED. Returns NOT_FOUND for missing or non-owner jobs and CONFLICT when the job is not in DRAFT.
Inputs: apiKey, jobId
employer.search_candidates_by_queryFree-form semantic search across discoverable (interviewed) candidates with no job context. The query is embedded and candidates are ranked by semantic similarity — a preliminary search with no per-vacancy fit score (there is no vacancy to
Inputs: apiKey, query, page, pageSize
employer.search_candidates_for_jobSemantically rank discoverable (interviewed) candidates against one of the employer's own jobs, with a per-candidate fit score AND a white-box explanation. WORKFLOW for finding the best hire: 1) call with tier:'best' to get the strongest ca
Inputs: apiKey, jobId, sort, page, pageSize, tier
employer.set_review_statusUpdate the employer review state on an application (NEW / REVIEWING / SHORTLISTED / REJECTED / HIRED). SHORTLISTED and HIRED unlock the candidate's direct contact in subsequent list_applicants / get_applicant_detail calls. WITHDRAWN applica
Inputs: apiKey, applicationId, reviewStatus
employer.update_jobUpdate the fields of an existing employer job. Accepts a partial whitelist; rawInput and dataSource are not editable (the wrapper auto-flips dataSource to USER_EDITED on every agent update). Non-owner reads return NOT_FOUND.
Inputs: apiKey, jobId, fields
request_accessUse when someone wants to find work/jobs (candidate) or hire/find candidates (employer) but the authenticated role tools are not usable yet. Explains role-specific onboarding (candidate profile interview, employer key generation), MCP key l
Inputs: role

Add Workorai to your AI client

Every block below points at https://workorai.com/mcp. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http workorai https://workorai.com/mcp
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "workorai": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://workorai.com/mcp"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "workorai": {
      "url": "https://workorai.com/mcp"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "workorai": {
      "type": "http",
      "url": "https://workorai.com/mcp"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "workorai": {
      "url": "https://workorai.com/mcp"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "workorai": {
      "serverUrl": "https://workorai.com/mcp"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "workorai": {
      "url": "https://workorai.com/mcp"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: Workorai
version: 0.0.1
schema: v1
mcpServers:
  - name: Workorai
    type: streamable-http
    url: https://workorai.com/mcp
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "workorai": {
      "httpUrl": "https://workorai.com/mcp"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "workorai": {
      "type": "http",
      "url": "https://workorai.com/mcp"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "workorai": {
      "url": "https://workorai.com/mcp"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fworkorai.com%2Fmcp&type=streamable_http&id=workorai&name=Workorai

Is Workorai up right now?

It answered our last check on 24 October 2026 in 51 ms. Over 6 checks since 11 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to Workorai

Questions about Workorai

How many tools does Workorai have?

29, as returned by the server's own tools/list on 22 September 2026: candidate.accept_invitation, candidate.apply_to_job, candidate.decline_invitation, candidate.get_applications, candidate.get_job, candidate.get_saved_jobs, candidate.search_jobs, candidate.set_saved_job, and 21 more.

Is Workorai down?

It answered our last check on 24 October 2026 in 51 ms. Over 6 checks since 11 September 2026 it answered 6.

How do I add Workorai to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://workorai.com/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does Workorai need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: io.github.work0r-ai. Endpoint host: workorai.com. ARD identifier: urn:air:io.github.work0r-ai:mcp:workorai. First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.