Jobherder job search
Server Details
Paid job search: 7 matched roles, each with a tailored CV and cover letter.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 5 tools
get_pricing, get_search_status, and register_agent are clearly distinct. The only potential overlap is quick_job_search vs start_job_search, but the descriptions explicitly differentiate them (one fast answer vs a shortlist of 7), so an agent can choose correctly.
Names are all snake_case and mostly follow a verb_noun pattern (get_pricing, get_search_status, register_agent, start_job_search). The lone deviation is quick_job_search, which uses an adjective rather than a verb, but overall the convention is predictable.
Five tools is well-scoped for a job search service, covering pricing, registration, two search modes, and status. Each tool earns its place with no redundancy.
The lifecycle is largely covered: register, pay via pricing info, run a search (quick or full), and poll status. Minor gaps exist, such as no explicit profile-setup tool or ability to cancel/list past searches, but core workflows are complete.
Available Tools
5 toolsget_pricingGet pricingARead-onlyIdempotentInspect
What a Jobherder search costs and how to pay for it, in card and stablecoin terms. No auth required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| x402 | Yes | Stablecoin payment terms, null if x402 is not configured |
| packs | Yes | Buyable credit packs |
| service | Yes | Service name |
| products | Yes | The two things Jobherder sells |
| card_checkout | Yes | URL for card payment |
| free_searches | Yes | Always false: registration grants no credits |
| credits_are_per_product | Yes | Always true: a quick credit cannot pay for a full search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint, idempotentHint, and openWorldHint=false, so safety is largely covered; the description usefully adds that no authentication is needed, which annotations do not convey. It discloses no rate limits or output characteristics, but this is a trivial read-only endpoint.
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 front-loaded sentence that names the cost topic first and the payment methods second, with the auth note appended. No filler, no repetition 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 parameterless, read-only tool with an output schema already defining the return shape and annotations covering safety, the description supplies everything needed: what it returns (cost/payment info) and the auth condition. Nothing material is 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?
The tool takes zero parameters, so the schema requires no supplementation and the baseline for a 0-param tool applies. The description correctly implies the call is argument-free.
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 resource (search pricing) and its scope (card and stablecoin payment terms) with a clear descriptive phrasing. No sibling tool touches pricing, so the agent can distinguish it immediately from get_search_status, start_job_search, etc.
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?
The clause 'No auth required' tells the agent it can call this tool without credentials, which is genuine usage context not present in the annotations. However, it offers no explicit when-to-use framing relative to alternatives or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_search_statusCheck a searchARead-onlyIdempotentInspect
Progress of a search, and the matched roles with the reason each was picked once it finishes.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | No | The run_id returned by start_job_search or quick_job_search. Omit to get the most recent run for this account |
Output Schema
| Name | Required | Description |
|---|---|---|
| done | No | True once the run has finished, whether or not it found anything |
| plan | No | Which product this run was: one_off or agent_quick |
| error | No | Present only on failure, e.g. "unauthorized" or "payment_required" |
| run_id | No | |
| status | No | running, success, no_matches or failed |
| matches | No | The delivered roles, each with its tailored documents. Absent until the run succeeds |
| message | No | Progress in plain language while running, or what to do about the error |
| started_at | No | |
| finished_at | No | |
| target_jobs | No | How many roles this run is meant to deliver |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds useful behavioral context: it reports progress while a search is ongoing and matched roles with reasons once complete. This clarifies the two-phase behavior, which is not deducible from the annotations. It does not describe edge cases like error handling or timeouts, but it adds meaningful transparency.
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?
The description is extremely brief, but it is not a complete sentence ('Progress of a search, and the matched roles...'). It front-loads the core purpose and uses no unnecessary words. However, the fragmentary grammar and lack of a clear verb slightly reduce clarity, so it is concise but not perfectly structured.
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?
Given the tool's simplicity (1 optional parameter, no nested objects, and an output schema), the description adequately conveys the tool's function. Annotations cover read-only and idempotent behavior, and the output schema likely documents return details. The main missing context is a clearer statement of when to call it, but overall it is sufficiently complete for an agent to invoke correctly.
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 for parameters is 100%; the run_id parameter is fully described in the schema including that it is optional and can be omitted for the most recent run. The description text itself adds no parameter-specific meaning beyond that, so it meets the baseline but does not exceed it.
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 title 'Check a search' and description 'Progress of a search, and the matched roles with the reason each was picked once it finishes' clearly identify a resource (search) and action (check/status). It distinguishes itself from sibling tools like start_job_search and quick_job_search by focusing on examining an existing search's progress and results rather than initiating one.
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?
The description does not explicitly state when to use this tool versus alternatives. It does not mention that it should be called after start_job_search or quick_job_search, nor does it exclude other scenarios. The only usage context comes from the schema's parameter description, not from the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quick_job_searchQuick job matchAInspect
The single best current role for a profile, with a tailored CV and cover letter, in minutes rather than an hour. $2.50 in USDC. Use this when you want one answer fast; use start_job_search when you want a shortlist of 7 to choose from. With no credit it returns an x402 PaymentRequired; retry the same call with the signed payment in _meta["x402/payment"].
| Name | Required | Description | Default |
|---|---|---|---|
| cv_json | No | The job seeker's existing CV as structured data, in the JSON Resume schema (jsonresume.org): basics, work, education, skills. Prefer this when you hold the CV as data — you do not need to render a file. Supply either cv_json or cv_base64 | |
| cv_type | No | Format of cv_base64: "pdf", "docx" or "txt". Ignored when cv_json is supplied | |
| profile | Yes | Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking | |
| cv_base64 | No | The job seeker's existing CV as a file, base64 encoded. PDF, DOCX or plain text, up to 10MB. Use cv_json instead if you have the CV as data rather than a file |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present only on failure, e.g. "unauthorized" or "payment_required" |
| run_id | No | Pass this to get_search_status to poll |
| status | No | Run state at the moment of starting, normally "running" |
| message | No | What happens next and roughly when, or what to do about the error |
| credits_remaining | No | Credits left for this product after the spend |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, idempotentHint=false), the description discloses key behaviors: the $2.50 USDC cost, the x402 PaymentRequired response when credit is insufficient, and the exact retry mechanism via _meta["x402/payment"]. This is meaningful behavioral context not present in the structured metadata.
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?
The description is three sentences long, front-loaded with the core purpose, then cost, usage alternatives, and payment retry behavior. There is no filler or redundant repetition of schema fields; every sentence adds distinct value.
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?
Given that an output schema exists and the input schema documents the 4 parameters thoroughly, the description covers the remaining contextual needs: cost, speed, choice between tools, and payment failure handling. It is complete for this complexity level.
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 description coverage is 100%, and the schema already provides detailed parameter descriptions for profile, cv_json, cv_base64, and cv_type. The tool description itself adds no parameter-specific semantics beyond referring to 'a profile', so the baseline score of 3 applies.
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 clearly states the tool returns 'the single best current role for a profile, with a tailored CV and cover letter' – a specific verb and resource. It distinguishes itself from the sibling tool start_job_search by contrasting the single result with a 7-option shortlist.
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?
Explicit usage guidance is given: 'Use this when you want one answer fast; use start_job_search when you want a shortlist of 7 to choose from.' It also provides error-handling instructions for the payment-required case, including how to retry with the signed payment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_agentRegister for an API keyAInspect
Create an agent identity and receive an API key. Registration is free and includes no free searches.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Display name for the account. Optional; the profile name is used on documents regardless | |
| Yes | Email that will own the account and receive results. Must be the job seeker's own address, and must match cfg_email on every later search |
Output Schema
| Name | Required | Description |
|---|---|---|
| next | No | Suggested next call |
| note | No | |
| No | The address the account is registered to | |
| error | No | Present only on failure, e.g. "unauthorized" or "payment_required" |
| api_key | No | Bearer token for every later call. Shown once and never again |
| message | No | What to do about the error, when one is present |
| owner_action_url | No | Present only on account_owned_by_human. A person already owns this address, so no key can be issued here. Send them to this page to create one and paste it back |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, providing minimal safety or mutation context. The description adds useful behavioral information: 'Registration is free and includes no free searches,' and that it creates an identity and returns an API key. Yet it does not disclose potential caveats like rate limits, key activation, or the relationship between the key and later searches.
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?
The description is two sentences long, front-loaded with the main purpose and followed by a relevant caveat. Every word earns its place—no filler or repetition.
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 simple registration tool with an output schema and full parameter coverage, the description covers the essentials: what it creates, what it returns, and cost-related behavior. It does not need to explain output format given the output schema. A minor gap is the lack of explicit guidance on how the API key integrates with sibling tools, but this is not critical.
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% with descriptive parameter details (email must be job seeker's own address, must match cfg_email later). The description adds no parameter-level meaning, so it does not improve on the schema. Baseline 3 applies.
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 ('Create') and identifies the resource ('agent identity and receive an API key'). It clearly distinguishes the tool from siblings like search and pricing tools, and the extra detail about free registration and no free searches reinforces its unique purpose.
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?
The context is clear: this tool is for registering to get an API key, distinct from the search and pricing siblings. However, it does not explicitly state when to use it versus alternatives, nor does it provide exclusions or prerequisites beyond the schema's email constraint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_job_searchStart a job searchAInspect
Spend one credit to run a full search: 7 roles matched to the profile, each with a tailored CV and cover letter returned as markdown by get_search_status and emailed as PDFs. Requires an API key. With no credit left it returns an x402 PaymentRequired; retry the same call with the signed payment in _meta["x402/payment"] to pay in USDC and run immediately.
| Name | Required | Description | Default |
|---|---|---|---|
| cv_json | No | The job seeker's existing CV as structured data, in the JSON Resume schema (jsonresume.org): basics, work, education, skills. Prefer this when you hold the CV as data — you do not need to render a file. Supply either cv_json or cv_base64 | |
| cv_type | No | Format of cv_base64: "pdf", "docx" or "txt". Ignored when cv_json is supplied | |
| profile | Yes | Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking | |
| cv_base64 | No | The job seeker's existing CV as a file, base64 encoded. PDF, DOCX or plain text, up to 10MB. Use cv_json instead if you have the CV as data rather than a file |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Present only on failure, e.g. "unauthorized" or "payment_required" |
| run_id | No | Pass this to get_search_status to poll |
| status | No | Run state at the moment of starting, normally "running" |
| message | No | What happens next and roughly when, or what to do about the error |
| credits_remaining | No | Credits left for this product after the spend |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant behavioral context beyond the annotations: it consumes a credit, emails PDFs, requires an API key, and returns an x402 PaymentRequired when no credit is left, with a retry payment mechanism. This complements the annotations (readOnlyHint false, openWorldHint true) and explains side effects clearly.
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?
The description is two sentences, front-loaded with the core action ('Spend one credit to run a full search'), and efficiently conveys cost, output, delivery method, authentication, and error handling. Every phrase contributes information, with no filler.
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 tool with four parameters (including a complex nested profile object) and an output schema, the description covers the essential aspects: what it does, cost, delivery, API key requirement, and payment retry. It doesn't detail the response structure but defers to get_search_status, which is acceptable. The description is complete enough for an agent to use the tool correctly in most scenarios.
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?
The schema already provides detailed descriptions for all four parameters (cv_json, cv_type, profile, cv_base64), covering semantics thoroughly. The description adds a small amount of value by mentioning '7 roles matched to the profile' and 'tailored CV and cover letter,' which ties the parameters to expected outcomes, but this is marginal. Baseline 3 is appropriate given 100% schema coverage.
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 clearly states the tool's function: 'run a full search: 7 roles matched to the profile, each with a tailored CV and cover letter.' It uses a specific verb ('run') and identifies the resource (profile, roles). It doesn't explicitly contrast with sibling tools like quick_job_search, but the phrase 'full search' hints at differentiation.
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?
The description provides context on when to use the tool: it requires one credit and an API key, and it describes the payment flow when credits are exhausted. However, it does not explicitly state when to prefer this tool over alternatives like quick_job_search or get_search_status. The guidance is implied through the 'full search' wording but not directly stated.
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.
5 tool updates
- First observed
get_pricing - First observed
get_search_status - First observed
quick_job_search - First observed
register_agent - First observed
start_job_search
Related MCP Connectors
Paid job search: 7 matched roles, each with a tailored CV and cover letter.
Tailored, graded job applications: a CV, cover letter and form answers built per vacancy.
The serious candidate's edge: ATS scoring, per-role resumes, interview prep, applications sent.
Search jobs, tailor your resume, write cover letters, and file applications for you.
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables local job-search automation, from finding and scoring postings to drafting tailored CVs and cover letters, compiling PDFs, and tracking applications through your AI assistant.19MIT
- FlicenseNot gradedqualityDmaintenanceAI-powered job matching and CV generation tool that searches jobs on LinkedIn and Seek, analyzes CV fit, and generates tailored CVs.-
- AlicenseAqualityAmaintenanceScans 130+ company careers pages and scores every role against your resume with an LLM (0–100), surfacing top matches. Drafts tailored cover letters and resume bullets for any job on demand, and exports scan results to CSV.3207MIT
- AlicenseAqualityAmaintenanceTailor your CV to any job posting with ATS keyword scoring and clean PDF/DOCX export.63MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.