io.github.work0r-ai/workorai
io.github.work0r-ai/workorai · v0.4.3 · MCP 2025-11-25
WorkorAI talent marketplace MCP: candidate job search and employer hiring with explainable matching
Reachability
reachable
checked 2026-07-14 04:30 UTC
Registry status active
Tools pinned 29
475e73d7680d
Tools last changed
unchanged since first capture 2026-07-14
Provenance
Registry namespace io.github.work0r-ai
(GitHub-account verified by the official registry)
Repository
github.com/work0r-ai/agent-kit
Remote endpoints
https://workorai.com/mcp (streamable-http)
Observed changes
| When (UTC) | Event | Detail |
|---|---|---|
| 2026-07-14 03:22 | first capture | 29 tools pinned |
Pinned tool definitions (29)
| Tool | Description |
|---|---|
| request_access | Use 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... |
| candidate.search_jobs | Semantically 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... |
| candidate.get_job | Fetch a single published job by id. |
| candidate.get_applications | List 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. |
| candidate.set_saved_job | Set 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. |
| candidate.get_saved_jobs | List the candidate's saved (bookmarked) jobs, newest first. Only currently PUBLISHED jobs are returned — a job saved earlier then closed/archived is omitted. |
| candidate.accept_invitation | Accept 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... |
| candidate.decline_invitation | Decline 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... |
| candidate.withdraw_application | Withdraw 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... |
| candidate.apply_to_job | Apply 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 —... |
| employer.list_jobs | List jobs owned by the current employer account. |
| employer.get_job | Fetch a single employer job record by id. Returns NOT_FOUND for missing jobs and for jobs owned by another employer (no existence leak). |
| employer.create_job | Parse 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. |
| employer.update_job | Update 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. |
| employer.publish_job | Transition a DRAFT job to PUBLISHED. Returns NOT_FOUND for missing or non-owner jobs and CONFLICT when the job is not in DRAFT. |
| employer.close_job | Transition a PUBLISHED job to CLOSED. Returns NOT_FOUND for missing or non-owner jobs and CONFLICT when the job is not in PUBLISHED. |
| employer.archive_job | Transition a CLOSED job to ARCHIVED. Returns NOT_FOUND for missing or non-owner jobs and CONFLICT when the job is not in CLOSED. |
| employer.delete_job | Permanently 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. |
| employer.search_candidates_for_job | Semantically 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... |
| employer.search_candidates_by_query | Free-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... |
| employer.get_candidate | Fetch 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... |
| employer.get_candidate_evidence | Fetch 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... |
| employer.invite_candidate | Invite 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... |
| employer.list_applicants | List 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. |
| employer.set_review_status | Update 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... |
| employer.get_applicant_detail | Full 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... |
| employer.get_applicant_transcript | Verbatim 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. |
| employer.list_invitations | List the pending (INVITED) candidates on one of the employer's jobs — candidates who have been invited but have not yet accepted or declined. |
| employer.cancel_invitation | Cancel a pending invitation sent to a candidate. The invitation record is deleted; the employer can re-invite the same candidate later. |
Status badge
[](https://toolpin.dev/servers/io.github.work0r-ai/workorai)
Maintain this server? Add the badge to your README — it links your users to this live status page.