JobShifu
Server Details
Search jobs on employer career sites, check if a posting is still open, and tailor in JobShifu.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
Each tool has a distinct input signature and purpose: search_jobs for discovery, get_job by job_id for full detail, check_posting by URL for liveness. The boundary between check_posting and get_job is slightly blurred since both report freshness/first-seen data, but the input types (URL vs job_id) and outputs differentiate them.
All three follow a clean verb_noun snake_case pattern: check_posting, get_job, search_jobs. Predictable and readable throughout.
Three tools is on the thin side but matches the tightly scoped read-only purpose of job discovery and verification. Each tool clearly earns its place with no filler.
The surface covers the core loop: search, fetch details, verify posting liveness/reposting. Minor gaps exist for a job-search domain—no saved searches, alerts, or employer-level browsing—but agents can work around these.
Available Tools
3 toolscheck_postingCheck if a job posting is still openARead-onlyIdempotentInspect
Given the URL of a job posting on an employer's career site or applicant tracking system (Greenhouse, Lever, Ashby, Workday and others), report whether it is still open, when JobShifu first saw it, and whether it has been reposted.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The job posting's URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds real value beyond that by disclosing the three things returned (open status, first-seen date, repost flag), which is the main behavioral unknown for a lookup tool. It does not say what happens for an unsupported or malformed URL, which is the remaining gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the input and the primary output, with the source examples placed where they disambiguate. No filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read-only lookup with no output schema, the description does the important work of enumerating the return fields and the accepted source domains. Only the failure behavior (unsupported URL, unreachable page) and the sibling distinction are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With one parameter at 100% schema coverage, the baseline is 3; the description earns above baseline by constraining the URL to employer career sites and named ATS platforms, which is meaning the schema's bare 'The job posting's URL' does not convey. It still doesn't specify whether redirects, expired pages, or non-ATS URLs are tolerated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('report whether it is still open') on a specific resource ('the URL of a job posting') and even names the target ecosystem (Greenhouse, Lever, Ashby, Workday). It is immediately distinguishable in intent, though it never mentions the siblings get_job or search_jobs to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is the tool for verifying liveness of a known URL, but there is no explicit 'use this when X, use search_jobs when Y' routing. No prerequisites, error conditions, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobGet one job postingARead-onlyIdempotentInspect
One posting in full by its job_id (from search_jobs or check_posting): what it requires, pay as published, freshness, and the employer's description.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The job_id from search_jobs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context by specifying what the returned payload contains (pay as published, freshness, employer description) in the absence of an output schema; it does not mention behavior on unknown or expired job_ids.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the resource and key, then the returned contents. No filler or restatement of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with full annotation coverage, the description supplies the missing return-content orientation an agent would otherwise lack. It leaves minor gaps around failure modes for invalid or stale job_ids.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description adds a second valid provenance for the value (check_posting) beyond the schema's note that it comes from search_jobs. It still adds no format or constraint detail for job_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific retrieval verb and resource (one posting, in full) keyed on job_id, and enumerates the payload dimensions (requirements, pay as published, freshness, employer description). This is clearly distinguishable from search_jobs (listing) and check_posting, which are named as the sources of the identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It establishes the workflow context by saying the job_id comes from search_jobs or check_posting, which tells an agent when this tool is the right next step. It stops short of an explicit exclusion (e.g., 'do not use for listings' or 'use check_posting for liveness only'), so it is clear but not fully prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsSearch jobsBRead-onlyIdempotentInspect
Search jobs posted on employer career sites. Returns short cards: title, employer, location, pay as published, when the posting was first seen and whether it was reposted, with a link and the job_id.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | 0 for the first page. Later pages need a signed-in account. | |
| limit | No | ||
| query | No | Role or keywords, e.g. "data analyst". | |
| remote | No | Only remote roles. | |
| country | No | Two-letter country code, e.g. US, CA, GB, AU. | |
| location | No | City or region, e.g. "Toronto, ON". | |
| posted_within_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so the safety profile is covered. The description adds genuine value by disclosing the return shape (short cards, pay as published, first-seen/reposted flags, link, job_id), but omits rate limits, result caps, and the signed-in requirement for later pages.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and followed by the return fields. No filler; the field enumeration earns its place because there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description usefully summarizes return cards and the job_id handoff. Combined with the low-complexity, all-optional parameter set, this is nearly complete, with only sorting/default ordering and pagination limits left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 71%, with page, query, remote, country, and location documented inline and only limit and posted_within_days bare. The description adds nothing about parameters, so the baseline 3 holds; the residual gap is small enough not to demand compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Search jobs posted on employer career sites.' An agent can distinguish this as a discovery/list tool from get_job or check_posting, but the description never names or contrasts those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus get_job or check_posting, no prerequisites, and no mention that pagination beyond page 0 requires an account (that constraint lives only in the schema). Usage is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
check_posting - First observed
get_job - First observed
search_jobs
Related MCP Connectors
Search 500K+ open jobs from company career sites, save monitors, tailor your resume to a job.
Search open jobs from employers' own career sites: roles, companies and posting status.
Search jobs on verified employer job boards. Every link is the employer's own posting.
Search open jobs on employers' own careers sites, each confirmed open in the last 3 days.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables job search and application management across employers' own hiring systems, with tools to find jobs, verify openings, check application support, and track application status—usable without a key for basic searches.MIT
- AlicenseAqualityAmaintenanceWatches company job boards (Greenhouse, Lever, Ashby, Workable, Workday and more) for new roles that match your filters, ranks them in a digest optionally fit-scored against your resume, and tracks every application with interview prep sheets. It never applies for you.231241 PyPIMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to find live job postings from employer career sites and rank them against a user's resume, with each requirement matched and tiered for fit.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to search and analyze job listings from verified company boards privately, matching resumes to roles with evidence and suggesting resume improvements.37 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.