Skip to main content
Glama

Jobero job search

Server Details

Paid job search: 7 matched roles, each with a tailored CV and cover letter.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Unhealthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation5/5

Each tool serves a distinct purpose: pricing, search initiation (quick vs full), status retrieval, and agent registration. The two search tools are explicitly differentiated by speed and output size, so there is no ambiguity.

Naming Consistency4/5

Most tools follow a verb_noun pattern (get_pricing, get_search_status, register_agent, start_job_search), but 'quick_job_search' uses an adjective_noun construction. The naming is consistent in style (lowercase snake_case) and generally predictable, with only one minor deviation.

Tool Count5/5

Five tools is well-scoped for a focused job search service, covering core operations without unnecessary redundancy. Each tool earns its place.

Completeness4/5

The tool set covers the essential workflow: registration, pricing, starting searches, and retrieving results. Minor gaps such as profile management or search history are not critical for the core purpose, making it reasonably complete.

Available Tools

5 tools
get_pricingGet pricingA
Read-onlyIdempotent
Inspect

What a Jobero search costs and how to pay for it, in card and stablecoin terms. No auth required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
x402YesStablecoin payment terms, null if x402 is not configured
packsYesBuyable credit packs
serviceYesService name
productsYesThe two things Jobero sells
card_checkoutYesURL for card payment
free_searchesYesAlways false: registration grants no credits
credits_are_per_productYesAlways true: a quick credit cannot pay for a full search

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, but the description adds valuable behavioral context: no authentication is required, and it specifies the output will cover card and stablecoin terms.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the purpose ('What a Jobero search costs') and adds one key qualifier. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and an output schema available, the description sufficiently covers the tool's purpose and key usage context. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the baseline of 4 applies. The description does not need to explain parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides cost and payment details for a Jobero search, distinguishing it from sibling tools like get_search_status or quick_job_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use it (to understand pricing and payment options), and notes 'No auth required' as a usage condition. It does not explicitly exclude alternatives, but siblings are obviously different in function.

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 searchA
Read-onlyIdempotent
Inspect

Progress of a search, and the matched roles with the reason each was picked once it finishes.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idNoThe run_id returned by start_job_search or quick_job_search. Omit to get the most recent run for this account

Output Schema

ParametersJSON Schema
NameRequiredDescription
doneNoTrue once the run has finished, whether or not it found anything
planNoWhich product this run was: one_off or agent_quick
errorNoPresent only on failure, e.g. "unauthorized" or "payment_required"
run_idNo
statusNorunning, success, no_matches or failed
matchesNoThe delivered roles, each with its tailored documents. Absent until the run succeeds
messageNoProgress in plain language while running, or what to do about the error
started_atNo
finished_atNo
target_jobsNoHow many roles this run is meant to deliver

TDQS

A3.7/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

register_agentRegister for an API keyAInspect

Create an agent identity and receive an API key. Registration is free and includes no free searches.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoDisplay name for the account. Optional; the profile name is used on documents regardless
emailYesEmail 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

ParametersJSON Schema
NameRequiredDescription
nextNoSuggested next call
noteNo
emailNoThe address the account is registered to
errorNoPresent only on failure, e.g. "unauthorized" or "payment_required"
api_keyNoBearer token for every later call. Shown once and never again
messageNoWhat to do about the error, when one is present
owner_action_urlNoPresent 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

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedquick_job_search9 fields changed
      • changedInput schema / properties / profile / properties / cfg_industries / description
        Previous value: -"Comma-separated industries of interest, e.g. \"fintech, healthtech, climate\". Broad terms work better than niche ones"New value: +"Comma-separated sectors of interest, e.g. \"Music, Fintech, Healthcare\". Sectors only — job functions go in cfg_target_titles"
      • addedInput schema / properties / profile / properties / cfg_local_country
        Added value: +{
        +  "description": "ISO country name for where they live, e.g. \"Germany\". Required so local vs remote gating does not guess from a free-text city line",
        +  "type": "string"
        +}
      • removedInput schema / properties / profile / properties / cfg_seniority
        Removed value: -{
        -  "description": "Target level in the job seeker's own words, e.g. \"senior\", \"staff engineer\" or \"head of engineering\". Drives the seniority band a role must sit in to be delivered",
        -  "type": "string"
        -}
      • addedInput schema / properties / profile / properties / cfg_seniority_level
        Added value: +{
        +  "description": "Seniority band as a single label or a contiguous range, e.g. \"Director\" or \"Manager – Head of Department\". Not a free-text mix of titles and industries",
        +  "type": "string"
        +}
      • addedInput schema / properties / profile / properties / cfg_target_titles
        Added value: +{
        +  "description": "Comma-separated target job titles, e.g. \"Head of Production, COO, Product Director\"",
        +  "type": "string"
        +}
      • addedInput schema / properties / profile / properties / cfg_uk_onsite
        Added value: +{
        +  "default": "no",
        +  "description": "Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag",
        +  "enum": [
        +    "yes",
        +    "no"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / profile / properties / cfg_work_style / description
        Previous value: -"remote_only rejects anything requiring office attendance; hybrid wants a mix of office and home; mix accepts any arrangement"New value: +"remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions"
      • changedInput schema / properties / profile / properties / cfg_work_style / enum
        Previous value: -[
        -  "remote_only",
        -  "mix",
        -  "hybrid"
        -]New value: +[
        +  "remote_only",
        +  "mix"
        +]
      • changedInput schema / properties / profile / required
        Previous value: -[
        -  "cfg_name",
        -  "cfg_email",
        -  "cfg_location",
        -  "cfg_location_preference",
        -  "cfg_work_style",
        -  "cfg_want_remote_eu",
        -  "cfg_want_remote_uk",
        -  "cfg_want_usa",
        -  "cfg_seniority",
        -  "cfg_industries"
        -]New value: +[
        +  "cfg_name",
        +  "cfg_email",
        +  "cfg_location",
        +  "cfg_location_preference",
        +  "cfg_work_style",
        +  "cfg_want_remote_eu",
        +  "cfg_want_remote_uk",
        +  "cfg_want_usa",
        +  "cfg_seniority_level",
        +  "cfg_target_titles",
        +  "cfg_local_country",
        +  "cfg_industries"
        +]
    • Changedstart_job_search9 fields changed
      • changedInput schema / properties / profile / properties / cfg_industries / description
        Previous value: -"Comma-separated industries of interest, e.g. \"fintech, healthtech, climate\". Broad terms work better than niche ones"New value: +"Comma-separated sectors of interest, e.g. \"Music, Fintech, Healthcare\". Sectors only — job functions go in cfg_target_titles"
      • addedInput schema / properties / profile / properties / cfg_local_country
        Added value: +{
        +  "description": "ISO country name for where they live, e.g. \"Germany\". Required so local vs remote gating does not guess from a free-text city line",
        +  "type": "string"
        +}
      • removedInput schema / properties / profile / properties / cfg_seniority
        Removed value: -{
        -  "description": "Target level in the job seeker's own words, e.g. \"senior\", \"staff engineer\" or \"head of engineering\". Drives the seniority band a role must sit in to be delivered",
        -  "type": "string"
        -}
      • addedInput schema / properties / profile / properties / cfg_seniority_level
        Added value: +{
        +  "description": "Seniority band as a single label or a contiguous range, e.g. \"Director\" or \"Manager – Head of Department\". Not a free-text mix of titles and industries",
        +  "type": "string"
        +}
      • addedInput schema / properties / profile / properties / cfg_target_titles
        Added value: +{
        +  "description": "Comma-separated target job titles, e.g. \"Head of Production, COO, Product Director\"",
        +  "type": "string"
        +}
      • addedInput schema / properties / profile / properties / cfg_uk_onsite
        Added value: +{
        +  "default": "no",
        +  "description": "Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag",
        +  "enum": [
        +    "yes",
        +    "no"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / profile / properties / cfg_work_style / description
        Previous value: -"remote_only rejects anything requiring office attendance; hybrid wants a mix of office and home; mix accepts any arrangement"New value: +"remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions"
      • changedInput schema / properties / profile / properties / cfg_work_style / enum
        Previous value: -[
        -  "remote_only",
        -  "mix",
        -  "hybrid"
        -]New value: +[
        +  "remote_only",
        +  "mix"
        +]
      • changedInput schema / properties / profile / required
        Previous value: -[
        -  "cfg_name",
        -  "cfg_email",
        -  "cfg_location",
        -  "cfg_location_preference",
        -  "cfg_work_style",
        -  "cfg_want_remote_eu",
        -  "cfg_want_remote_uk",
        -  "cfg_want_usa",
        -  "cfg_seniority",
        -  "cfg_industries"
        -]New value: +[
        +  "cfg_name",
        +  "cfg_email",
        +  "cfg_location",
        +  "cfg_location_preference",
        +  "cfg_work_style",
        +  "cfg_want_remote_eu",
        +  "cfg_want_remote_uk",
        +  "cfg_want_usa",
        +  "cfg_seniority_level",
        +  "cfg_target_titles",
        +  "cfg_local_country",
        +  "cfg_industries"
        +]
  2. 3 tool updates
    • Changedquick_job_search5 fields changed
      • changedInput schema / properties / cv_base64 / description
        Previous value: -"The job seeker's existing CV, base64 encoded. PDF or DOCX, up to 10MB. This is the only source for the tailored CVs, which never invent experience it does not contain"New value: +"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"
      • addedInput schema / properties / cv_json
        Added value: +{
        +  "description": "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",
        +  "properties": {
        +    "awards": {
        +      "items": {
        +        "properties": {
        +          "awarder": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "date": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "summary": {
        +            "maxLength": 1000,
        +            "type": "string"
        +          },
        +          "title": {
        +            "maxLength": 200,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": "array"
        +    },
        +    "basics": {
        +      "properties": {
        +        "email": {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        "label": {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        "location": {
        +          "properties": {
        +            "address": {
        +              "maxLength": 200,
        +              "type": "string"
        +            },
        +            "city": {
        +              "maxLength": 120,
        +              "type": "string"
        +            },
        +            "countryCode": {
        +              "maxLength": 10,
        +              "type": "string"
        +            },
        +            "postalCode": {
        +              "maxLength": 30,
        +              "type": "string"
        +            },
        +            "region": {
        +              "maxLength": 120,
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "name": {
        +          "maxLength": 120,
        +          "type": "string"
        +        },
        +        "phone": {
        +          "maxLength": 60,
        +          "type": "string"
        +        },
        +        "profiles": {
        +          "items": {
        +            "properties": {
        +              "network": {
        +                "maxLength": 80,
        +                "type": "string"
        +              },
        +              "url": {
        +                "maxLength": 300,
        +                "type": "string"
        +              },
        +              "username": {
        +                "maxLength": 120,
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "maxItems": 20,
        +          "type": "array"
        +        },
        +        "summary": {
        +          "maxLength": 4000,
        +          "type": "string"
        +        },
        +        "url": {
        +          "maxLength": 300,
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "certificates": {
        +      "items": {
        +        "properties": {
        +          "date": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "issuer": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 200,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": "array"
        +    },
        +    "education": {
        +      "items": {
        +        "properties": {
        +          "area": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "courses": {
        +            "items": {
        +              "maxLength": 2000,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "endDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "institution": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "score": {
        +            "maxLength": 60,
        +            "type": "string"
        +          },
        +          "startDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "studyType": {
        +            "maxLength": 100,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    "interests": {
        +      "items": {
        +        "properties": {
        +          "keywords": {
        +            "items": {
        +              "maxLength": 80,
        +              "type": "string"
        +            },
        +            "maxItems": 30,
        +            "type": "array"
        +          },
        +          "name": {
        +            "maxLength": 120,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    "languages": {
        +      "items": {
        +        "properties": {
        +          "fluency": {
        +            "maxLength": 80,
        +            "type": "string"
        +          },
        +          "language": {
        +            "maxLength": 80,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    "projects": {
        +      "items": {
        +        "properties": {
        +          "description": {
        +            "maxLength": 3000,
        +            "type": "string"
        +          },
        +          "endDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "highlights": {
        +            "items": {
        +              "maxLength": 2000,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "keywords": {
        +            "items": {
        +              "maxLength": 80,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "name": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "startDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "url": {
        +            "maxLength": 300,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": "array"
        +    },
        +    "publications": {
        +      "items": {
        +        "properties": {
        +          "name": {
        +            "maxLength": 300,
        +            "type": "string"
        +          },
        +          "publisher": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "releaseDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "summary": {
        +            "maxLength": 1000,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": "array"
        +    },
        +    "skills": {
        +      "items": {
        +        "properties": {
        +          "keywords": {
        +            "items": {
        +              "maxLength": 80,
        +              "type": "string"
        +            },
        +            "maxItems": 60,
        +            "type": "array"
        +          },
        +          "level": {
        +            "maxLength": 60,
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 120,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 40,
        +      "type": "array"
        +    },
        +    "volunteer": {
        +      "items": {
        +        "properties": {
        +          "company": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "endDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "highlights": {
        +            "items": {
        +              "maxLength": 2000,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "location": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "position": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "startDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "summary": {
        +            "maxLength": 3000,
        +            "type": "string"
        +          },
        +          "url": {
        +            "maxLength": 300,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    "work": {
        +      "items": {
        +        "properties": {
        +          "company": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "endDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "highlights": {
        +            "items": {
        +              "maxLength": 2000,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "location": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "position": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "startDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "summary": {
        +            "maxLength": 3000,
        +            "type": "string"
        +          },
        +          "url": {
        +            "maxLength": 300,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 40,
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / cv_type / default
        Removed value: -"application/pdf"
      • changedInput schema / properties / cv_type / description
        Previous value: -"MIME type of cv_base64, or just \"pdf\" or \"docx\""New value: +"Format of cv_base64: \"pdf\", \"docx\" or \"txt\". Ignored when cv_json is supplied"
      • changedInput schema / required
        Previous value: -[
        -  "profile",
        -  "cv_base64"
        -]New value: +[
        +  "profile"
        +]
    • Changedregister_agent1 field changed
      • addedOutput schema / properties / owner_action_url
        Added value: +{
        +  "description": "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",
        +  "type": "string"
        +}
    • Changedstart_job_search5 fields changed
      • changedInput schema / properties / cv_base64 / description
        Previous value: -"The job seeker's existing CV, base64 encoded. PDF or DOCX, up to 10MB. This is the only source for the tailored CVs, which never invent experience it does not contain"New value: +"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"
      • addedInput schema / properties / cv_json
        Added value: +{
        +  "description": "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",
        +  "properties": {
        +    "awards": {
        +      "items": {
        +        "properties": {
        +          "awarder": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "date": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "summary": {
        +            "maxLength": 1000,
        +            "type": "string"
        +          },
        +          "title": {
        +            "maxLength": 200,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": "array"
        +    },
        +    "basics": {
        +      "properties": {
        +        "email": {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        "label": {
        +          "maxLength": 200,
        +          "type": "string"
        +        },
        +        "location": {
        +          "properties": {
        +            "address": {
        +              "maxLength": 200,
        +              "type": "string"
        +            },
        +            "city": {
        +              "maxLength": 120,
        +              "type": "string"
        +            },
        +            "countryCode": {
        +              "maxLength": 10,
        +              "type": "string"
        +            },
        +            "postalCode": {
        +              "maxLength": 30,
        +              "type": "string"
        +            },
        +            "region": {
        +              "maxLength": 120,
        +              "type": "string"
        +            }
        +          },
        +          "type": "object"
        +        },
        +        "name": {
        +          "maxLength": 120,
        +          "type": "string"
        +        },
        +        "phone": {
        +          "maxLength": 60,
        +          "type": "string"
        +        },
        +        "profiles": {
        +          "items": {
        +            "properties": {
        +              "network": {
        +                "maxLength": 80,
        +                "type": "string"
        +              },
        +              "url": {
        +                "maxLength": 300,
        +                "type": "string"
        +              },
        +              "username": {
        +                "maxLength": 120,
        +                "type": "string"
        +              }
        +            },
        +            "type": "object"
        +          },
        +          "maxItems": 20,
        +          "type": "array"
        +        },
        +        "summary": {
        +          "maxLength": 4000,
        +          "type": "string"
        +        },
        +        "url": {
        +          "maxLength": 300,
        +          "type": "string"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "certificates": {
        +      "items": {
        +        "properties": {
        +          "date": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "issuer": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 200,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": "array"
        +    },
        +    "education": {
        +      "items": {
        +        "properties": {
        +          "area": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "courses": {
        +            "items": {
        +              "maxLength": 2000,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "endDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "institution": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "score": {
        +            "maxLength": 60,
        +            "type": "string"
        +          },
        +          "startDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "studyType": {
        +            "maxLength": 100,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    "interests": {
        +      "items": {
        +        "properties": {
        +          "keywords": {
        +            "items": {
        +              "maxLength": 80,
        +              "type": "string"
        +            },
        +            "maxItems": 30,
        +            "type": "array"
        +          },
        +          "name": {
        +            "maxLength": 120,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    "languages": {
        +      "items": {
        +        "properties": {
        +          "fluency": {
        +            "maxLength": 80,
        +            "type": "string"
        +          },
        +          "language": {
        +            "maxLength": 80,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    "projects": {
        +      "items": {
        +        "properties": {
        +          "description": {
        +            "maxLength": 3000,
        +            "type": "string"
        +          },
        +          "endDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "highlights": {
        +            "items": {
        +              "maxLength": 2000,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "keywords": {
        +            "items": {
        +              "maxLength": 80,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "name": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "startDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "url": {
        +            "maxLength": 300,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": "array"
        +    },
        +    "publications": {
        +      "items": {
        +        "properties": {
        +          "name": {
        +            "maxLength": 300,
        +            "type": "string"
        +          },
        +          "publisher": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "releaseDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "summary": {
        +            "maxLength": 1000,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 30,
        +      "type": "array"
        +    },
        +    "skills": {
        +      "items": {
        +        "properties": {
        +          "keywords": {
        +            "items": {
        +              "maxLength": 80,
        +              "type": "string"
        +            },
        +            "maxItems": 60,
        +            "type": "array"
        +          },
        +          "level": {
        +            "maxLength": 60,
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 120,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 40,
        +      "type": "array"
        +    },
        +    "volunteer": {
        +      "items": {
        +        "properties": {
        +          "company": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "endDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "highlights": {
        +            "items": {
        +              "maxLength": 2000,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "location": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "position": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "startDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "summary": {
        +            "maxLength": 3000,
        +            "type": "string"
        +          },
        +          "url": {
        +            "maxLength": 300,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 20,
        +      "type": "array"
        +    },
        +    "work": {
        +      "items": {
        +        "properties": {
        +          "company": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "endDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "highlights": {
        +            "items": {
        +              "maxLength": 2000,
        +              "type": "string"
        +            },
        +            "maxItems": 50,
        +            "type": "array"
        +          },
        +          "location": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "name": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "position": {
        +            "maxLength": 200,
        +            "type": "string"
        +          },
        +          "startDate": {
        +            "maxLength": 40,
        +            "type": "string"
        +          },
        +          "summary": {
        +            "maxLength": 3000,
        +            "type": "string"
        +          },
        +          "url": {
        +            "maxLength": 300,
        +            "type": "string"
        +          }
        +        },
        +        "type": "object"
        +      },
        +      "maxItems": 40,
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
      • removedInput schema / properties / cv_type / default
        Removed value: -"application/pdf"
      • changedInput schema / properties / cv_type / description
        Previous value: -"MIME type of cv_base64, or just \"pdf\" or \"docx\""New value: +"Format of cv_base64: \"pdf\", \"docx\" or \"txt\". Ignored when cv_json is supplied"
      • changedInput schema / required
        Previous value: -[
        -  "profile",
        -  "cv_base64"
        -]New value: +[
        +  "profile"
        +]
  3. 5 tool updates
    • Changedget_pricing1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "card_checkout": {
        +      "description": "URL for card payment",
        +      "type": "string"
        +    },
        +    "credits_are_per_product": {
        +      "description": "Always true: a quick credit cannot pay for a full search",
        +      "type": "boolean"
        +    },
        +    "free_searches": {
        +      "description": "Always false: registration grants no credits",
        +      "type": "boolean"
        +    },
        +    "packs": {
        +      "description": "Buyable credit packs",
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "buys": {
        +            "description": "Which product these credits are valid for: search or quick",
        +            "type": "string"
        +          },
        +          "credits": {
        +            "description": "How many runs the pack buys",
        +            "type": "number"
        +          },
        +          "description": {
        +            "type": "string"
        +          },
        +          "pack": {
        +            "description": "Pack code to pass to checkout or to pay for over x402",
        +            "type": "string"
        +          },
        +          "price": {
        +            "description": "Human-readable price",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "pack",
        +          "credits",
        +          "price",
        +          "buys",
        +          "description"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "products": {
        +      "description": "The two things Jobero sells",
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "price": {
        +            "description": "Human-readable price",
        +            "type": "string"
        +          },
        +          "tool": {
        +            "description": "Which tool buys this product",
        +            "type": "string"
        +          },
        +          "typical_time": {
        +            "description": "How long delivery usually takes",
        +            "type": "string"
        +          },
        +          "unit": {
        +            "description": "What one purchase delivers",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "tool",
        +          "unit",
        +          "price",
        +          "typical_time"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "service": {
        +      "description": "Service name",
        +      "type": "string"
        +    },
        +    "x402": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "asset": {
        +              "description": "Token accepted, USDC",
        +              "type": "string"
        +            },
        +            "how": {
        +              "description": "How to complete the payment loop",
        +              "type": "string"
        +            },
        +            "network": {
        +              "description": "Chain the payment settles on",
        +              "type": "string"
        +            },
        +            "pay_to": {
        +              "description": "Receiving address",
        +              "type": "string"
        +            },
        +            "prices": {
        +              "additionalProperties": {
        +                "type": "string"
        +              },
        +              "description": "Pack code to atomic USDC amount",
        +              "propertyNames": {
        +                "type": "string"
        +              },
        +              "type": "object"
        +            }
        +          },
        +          "required": [
        +            "network",
        +            "asset",
        +            "pay_to",
        +            "prices",
        +            "how"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "Stablecoin payment terms, null if x402 is not configured"
        +    }
        +  },
        +  "required": [
        +    "service",
        +    "products",
        +    "packs",
        +    "credits_are_per_product",
        +    "card_checkout",
        +    "x402",
        +    "free_searches"
        +  ],
        +  "type": "object"
        +}
    • Changedget_search_status2 fields changed
      • changedInput schema / properties / run_id / description
        Previous value: -"Omit to get the most recent run for this account"New value: +"The run_id returned by start_job_search or quick_job_search. Omit to get the most recent run for this account"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "done": {
        +      "description": "True once the run has finished, whether or not it found anything",
        +      "type": "boolean"
        +    },
        +    "error": {
        +      "description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
        +      "type": "string"
        +    },
        +    "finished_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "matches": {
        +      "description": "The delivered roles, each with its tailored documents. Absent until the run succeeds",
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "company": {
        +            "description": "Hiring company",
        +            "type": "string"
        +          },
        +          "documents": {
        +            "anyOf": [
        +              {
        +                "additionalProperties": false,
        +                "properties": {
        +                  "cover_letter_markdown": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ],
        +                    "description": "A cover letter written for this specific role, as markdown"
        +                  },
        +                  "cv_markdown": {
        +                    "anyOf": [
        +                      {
        +                        "type": "string"
        +                      },
        +                      {
        +                        "type": "null"
        +                      }
        +                    ],
        +                    "description": "The CV rewritten for this specific role, as markdown"
        +                  }
        +                },
        +                "required": [
        +                  "cv_markdown",
        +                  "cover_letter_markdown"
        +                ],
        +                "type": "object"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "description": "The tailored documents for this role. Null while the run is still going, and on older runs that predate document return"
        +          },
        +          "match_reason": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "description": "Why this role was picked for this profile"
        +          },
        +          "rank": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "description": "Position in the delivered set, 1 is the strongest match"
        +          },
        +          "score": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ],
        +            "description": "Fit score out of 100, higher is better"
        +          },
        +          "title": {
        +            "description": "Job title as advertised",
        +            "type": "string"
        +          },
        +          "url": {
        +            "description": "Link to the live posting",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "company",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "message": {
        +      "description": "Progress in plain language while running, or what to do about the error",
        +      "type": "string"
        +    },
        +    "plan": {
        +      "description": "Which product this run was: one_off or agent_quick",
        +      "type": "string"
        +    },
        +    "run_id": {
        +      "type": "string"
        +    },
        +    "started_at": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "status": {
        +      "description": "running, success, no_matches or failed",
        +      "type": "string"
        +    },
        +    "target_jobs": {
        +      "description": "How many roles this run is meant to deliver",
        +      "type": "number"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedquick_job_search19 fields changed
      • changedInput schema / properties / cv_base64 / description
        Previous value: -"The job seeker CV as base64, PDF or DOCX"New value: +"The job seeker's existing CV, base64 encoded. PDF or DOCX, up to 10MB. This is the only source for the tailored CVs, which never invent experience it does not contain"
      • changedInput schema / properties / cv_type / description
        Previous value: -"pdf, docx, or the MIME type"New value: +"MIME type of cv_base64, or just \"pdf\" or \"docx\""
      • addedInput schema / properties / profile / description
        Added value: +"Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking"
      • changedInput schema / properties / profile / properties / cfg_additional_context / description
        Previous value: -"Anything else that shapes the search"New value: +"Anything else that shapes the search and is not covered by the other fields: visa position, notice period, salary floor, companies to avoid"
      • addedInput schema / properties / profile / properties / cfg_advisory_open / description
        Added value: +"Whether to include advisory, fractional, board and consulting roles alongside employment"
      • changedInput schema / properties / profile / properties / cfg_email / description
        Previous value: -"Must match the email the API key is registered to"New value: +"Must match the email the API key is registered to. Results are emailed here as well as returned by get_search_status"
      • changedInput schema / properties / profile / properties / cfg_industries / description
        Previous value: -"Comma-separated industries of interest"New value: +"Comma-separated industries of interest, e.g. \"fintech, healthtech, climate\". Broad terms work better than niche ones"
      • addedInput schema / properties / profile / properties / cfg_languages / description
        Added value: +"Working languages, lower case, e.g. [\"english\", \"german\"]. Roles requiring a language not listed here are dropped"
      • changedInput schema / properties / profile / properties / cfg_location / description
        Previous value: -"Where they live, e.g. \"Limassol, Cyprus\""New value: +"Where the job seeker actually lives, e.g. \"Limassol, Cyprus\". Used for commute and time zone reasoning, not as a filter on its own"
      • changedInput schema / properties / profile / properties / cfg_location_preference / description
        Previous value: -"Prose description of acceptable locations"New value: +"Prose description of acceptable locations, e.g. \"anywhere remote in Europe, or on-site in Berlin\". Free text; matching reads it as intent rather than parsing it"
      • changedInput schema / properties / profile / properties / cfg_name / description
        Previous value: -"Full name of the job seeker"New value: +"Full name of the job seeker, as it should appear on the tailored CV"
      • changedInput schema / properties / profile / properties / cfg_not_interested_in / description
        Previous value: -"Comma-separated industries to exclude"New value: +"Comma-separated industries or employer types to exclude, e.g. \"gambling, defence\". Applied as a hard filter"
      • changedInput schema / properties / profile / properties / cfg_seniority / description
        Previous value: -"Target level, e.g. \"senior\" or \"head of engineering\""New value: +"Target level in the job seeker's own words, e.g. \"senior\", \"staff engineer\" or \"head of engineering\". Drives the seniority band a role must sit in to be delivered"
      • addedInput schema / properties / profile / properties / cfg_share_with_employers / description
        Added value: +"Consent to share the profile with employers. \"no\" keeps the search entirely one-way"
      • addedInput schema / properties / profile / properties / cfg_want_remote_eu / description
        Added value: +"Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes"
      • addedInput schema / properties / profile / properties / cfg_want_remote_uk / description
        Added value: +"Include roles advertised as remote within the UK"
      • addedInput schema / properties / profile / properties / cfg_want_usa / description
        Added value: +"Include roles in the USA. Say no unless the job seeker can legally work there or the role is genuinely remote-worldwide"
      • addedInput schema / properties / profile / properties / cfg_work_style / description
        Added value: +"remote_only rejects anything requiring office attendance; hybrid wants a mix of office and home; mix accepts any arrangement"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "credits_remaining": {
        +      "description": "Credits left for this product after the spend",
        +      "type": "number"
        +    },
        +    "error": {
        +      "description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
        +      "type": "string"
        +    },
        +    "message": {
        +      "description": "What happens next and roughly when, or what to do about the error",
        +      "type": "string"
        +    },
        +    "run_id": {
        +      "description": "Pass this to get_search_status to poll",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Run state at the moment of starting, normally \"running\"",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedregister_agent3 fields changed
      • changedInput schema / properties / email / description
        Previous value: -"Email that will own the account and receive results"New value: +"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"
      • addedInput schema / properties / name / description
        Added value: +"Display name for the account. Optional; the profile name is used on documents regardless"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "api_key": {
        +      "description": "Bearer token for every later call. Shown once and never again",
        +      "type": "string"
        +    },
        +    "email": {
        +      "description": "The address the account is registered to",
        +      "type": "string"
        +    },
        +    "error": {
        +      "description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
        +      "type": "string"
        +    },
        +    "message": {
        +      "description": "What to do about the error, when one is present",
        +      "type": "string"
        +    },
        +    "next": {
        +      "description": "Suggested next call",
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedstart_job_search19 fields changed
      • changedInput schema / properties / cv_base64 / description
        Previous value: -"The job seeker CV as base64, PDF or DOCX"New value: +"The job seeker's existing CV, base64 encoded. PDF or DOCX, up to 10MB. This is the only source for the tailored CVs, which never invent experience it does not contain"
      • changedInput schema / properties / cv_type / description
        Previous value: -"pdf, docx, or the MIME type"New value: +"MIME type of cv_base64, or just \"pdf\" or \"docx\""
      • addedInput schema / properties / profile / description
        Added value: +"Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking"
      • changedInput schema / properties / profile / properties / cfg_additional_context / description
        Previous value: -"Anything else that shapes the search"New value: +"Anything else that shapes the search and is not covered by the other fields: visa position, notice period, salary floor, companies to avoid"
      • addedInput schema / properties / profile / properties / cfg_advisory_open / description
        Added value: +"Whether to include advisory, fractional, board and consulting roles alongside employment"
      • changedInput schema / properties / profile / properties / cfg_email / description
        Previous value: -"Must match the email the API key is registered to"New value: +"Must match the email the API key is registered to. Results are emailed here as well as returned by get_search_status"
      • changedInput schema / properties / profile / properties / cfg_industries / description
        Previous value: -"Comma-separated industries of interest"New value: +"Comma-separated industries of interest, e.g. \"fintech, healthtech, climate\". Broad terms work better than niche ones"
      • addedInput schema / properties / profile / properties / cfg_languages / description
        Added value: +"Working languages, lower case, e.g. [\"english\", \"german\"]. Roles requiring a language not listed here are dropped"
      • changedInput schema / properties / profile / properties / cfg_location / description
        Previous value: -"Where they live, e.g. \"Limassol, Cyprus\""New value: +"Where the job seeker actually lives, e.g. \"Limassol, Cyprus\". Used for commute and time zone reasoning, not as a filter on its own"
      • changedInput schema / properties / profile / properties / cfg_location_preference / description
        Previous value: -"Prose description of acceptable locations"New value: +"Prose description of acceptable locations, e.g. \"anywhere remote in Europe, or on-site in Berlin\". Free text; matching reads it as intent rather than parsing it"
      • changedInput schema / properties / profile / properties / cfg_name / description
        Previous value: -"Full name of the job seeker"New value: +"Full name of the job seeker, as it should appear on the tailored CV"
      • changedInput schema / properties / profile / properties / cfg_not_interested_in / description
        Previous value: -"Comma-separated industries to exclude"New value: +"Comma-separated industries or employer types to exclude, e.g. \"gambling, defence\". Applied as a hard filter"
      • changedInput schema / properties / profile / properties / cfg_seniority / description
        Previous value: -"Target level, e.g. \"senior\" or \"head of engineering\""New value: +"Target level in the job seeker's own words, e.g. \"senior\", \"staff engineer\" or \"head of engineering\". Drives the seniority band a role must sit in to be delivered"
      • addedInput schema / properties / profile / properties / cfg_share_with_employers / description
        Added value: +"Consent to share the profile with employers. \"no\" keeps the search entirely one-way"
      • addedInput schema / properties / profile / properties / cfg_want_remote_eu / description
        Added value: +"Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes"
      • addedInput schema / properties / profile / properties / cfg_want_remote_uk / description
        Added value: +"Include roles advertised as remote within the UK"
      • addedInput schema / properties / profile / properties / cfg_want_usa / description
        Added value: +"Include roles in the USA. Say no unless the job seeker can legally work there or the role is genuinely remote-worldwide"
      • addedInput schema / properties / profile / properties / cfg_work_style / description
        Added value: +"remote_only rejects anything requiring office attendance; hybrid wants a mix of office and home; mix accepts any arrangement"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "https://json-schema.org/draft/2020-12/schema",
        +  "additionalProperties": false,
        +  "properties": {
        +    "credits_remaining": {
        +      "description": "Credits left for this product after the spend",
        +      "type": "number"
        +    },
        +    "error": {
        +      "description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
        +      "type": "string"
        +    },
        +    "message": {
        +      "description": "What happens next and roughly when, or what to do about the error",
        +      "type": "string"
        +    },
        +    "run_id": {
        +      "description": "Pass this to get_search_status to poll",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Run state at the moment of starting, normally \"running\"",
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
  4. 1 tool update
    • Addedquick_job_search
  5. 4 tool updates
    • First observedget_pricing
    • First observedget_search_status
    • First observedregister_agent
    • First observedstart_job_search

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources