Skip to main content
Glama

WeJob

Search WeJob formations

wejob_search_formations
Read-only

Search public active WeJob formations.

Input Schema

NameRequiredDescriptionDefault
pageNoOne-based result page number.
sortNoOptional public result sort order.
limitNoMaximum number of results.
queryNoFree-text search over titles, descriptions and programs, e.g. cybersécurité.
skillsNoComma-separated hard skills, e.g. Java, SQL. Only matches skills listed on the offer: prefer query for a broad search.
companyNoCompany name filter, e.g. WeJob Sàrl.
locationNoCity or canton, e.g. Genève, Vaud, Lausanne, Zurich. Comma-separate several places.
tarif_maxNoMaximum price as a number, e.g. 3000.
tarif_minNoMinimum price as a number, e.g. 500.
categoriesNoComma-separated category names, e.g. Développement & IT.
duration_maxNoMaximum duration in days, e.g. 30.
duration_minNoMinimum duration in days, e.g. 5.
technologiesNoComma-separated technologies, e.g. React, AWS.
formation_modeNoComma-separated training mode: presentiel, distanciel, hybride (on-site, online, hybrid are accepted).
certification_typeNoComma-separated certification: certificat, diplome, attestation, bootcamp, aucun (certificate, diploma, none are accepted).

Output Schema

NameRequiredDescriptionDefault
resultsYes
paginationNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed21 schema fields changed
    • addedInput schema / properties / categories / description
      Added value: +"Comma-separated category names, e.g. Développement & IT."
    • addedInput schema / properties / certification_type / description
      Added value: +"Comma-separated certification: certificat, diplome, attestation, bootcamp, aucun (certificate, diploma, none are accepted)."
    • changedInput schema / properties / company / description
      Previous value: -"Company filter."New value: +"Company name filter, e.g. WeJob Sàrl."
    • addedInput schema / properties / duration_max / description
      Added value: +"Maximum duration in days, e.g. 30."
    • addedInput schema / properties / duration_min / description
      Added value: +"Minimum duration in days, e.g. 5."
    • removedInput schema / properties / employment_type
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / experience_level
      Removed value: -{
      -  "type": "string"
      -}
    • addedInput schema / properties / formation_mode / description
      Added value: +"Comma-separated training mode: presentiel, distanciel, hybride (on-site, online, hybrid are accepted)."
    • removedInput schema / properties / industries
      Removed value: -{
      -  "type": "string"
      -}
    • changedInput schema / properties / location / description
      Previous value: -"Location filter."New value: +"City or canton, e.g. Genève, Vaud, Lausanne, Zurich. Comma-separate several places."
    • changedInput schema / properties / query / description
      Previous value: -"Search query."New value: +"Free-text search over titles, descriptions and programs, e.g. cybersécurité."
    • removedInput schema / properties / salary_max
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / salary_min
      Removed value: -{
      -  "type": "string"
      -}
    • removedInput schema / properties / sizes
      Removed value: -{
      -  "type": "string"
      -}
    • changedInput schema / properties / skills / description
      Previous value: -"Comma-separated skills filter."New value: +"Comma-separated hard skills, e.g. Java, SQL. Only matches skills listed on the offer: prefer query for a broad search."
    • changedInput schema / properties / sort / enum
      Previous value: -[
      -  "newest",
      -  "oldest",
      -  "deadline_soon",
      -  "deadline_later",
      -  "price_asc",
      -  "price_desc",
      -  "smallest",
      -  "largest",
      -  "founded_newest",
      -  "founded_oldest",
      -  "most_jobs"
      -]New value: +[
      +  "newest",
      +  "oldest",
      +  "deadline_soon",
      +  "deadline_later",
      +  "price_asc",
      +  "price_desc",
      +  "duration_asc"
      +]
    • addedInput schema / properties / tarif_max / description
      Added value: +"Maximum price as a number, e.g. 3000."
    • addedInput schema / properties / tarif_min / description
      Added value: +"Minimum price as a number, e.g. 500."
    • addedInput schema / properties / technologies / description
      Added value: +"Comma-separated technologies, e.g. React, AWS."
    • removedInput schema / properties / work_mode
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / results / items / properties / location
      Added value: +{
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • addedInput schema / properties / page
      Added value: +{
      +  "default": 1,
      +  "description": "One-based result page number.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / pagination
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "has_more": {
      +      "type": "boolean"
      +    },
      +    "limit": {
      +      "type": "integer"
      +    },
      +    "page": {
      +      "type": "integer"
      +    },
      +    "total": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "page",
      +    "limit",
      +    "has_more"
      +  ],
      +  "type": "object"
      +}
  3. Changed15 schema fields changed
    • addedInput schema / properties / categories
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / certification_type
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / duration_max
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / duration_min
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / employment_type
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / experience_level
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / formation_mode
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / industries
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / salary_max
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / salary_min
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / sizes
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / tarif_max
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / tarif_min
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / technologies
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / work_mode
      Added value: +{
      +  "type": "string"
      +}
  4. Changed1 schema field changed
    • addedInput schema / properties / sort
      Added value: +{
      +  "description": "Optional public result sort order.",
      +  "enum": [
      +    "newest",
      +    "oldest",
      +    "deadline_soon",
      +    "deadline_later",
      +    "price_asc",
      +    "price_desc",
      +    "smallest",
      +    "largest",
      +    "founded_newest",
      +    "founded_oldest",
      +    "most_jobs"
      +  ],
      +  "type": "string"
      +}
  5. First observed

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description contributes one genuinely useful behavioral fact - that only *active* and *public* records are matched - but says nothing about pagination behavior, result caps, or rate limits beyond what the schema shows.

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

Conciseness3/5

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

It is a single front-loaded sentence with zero padding, which is structurally clean. But at five words it is under-specified rather than concise - the brevity removes information an agent needs rather than removing waste.

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

Completeness2/5

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

An output schema and annotations exist, so return format and safety need not be described. But for a 15-parameter search tool sitting among seven siblings including two other search tools, the description omits the sibling routing and the active/public filtering nuances that would let an agent choose and call it 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 description coverage is 100% across all 15 parameters, and several field descriptions already carry examples and cross-field advice (e.g. skills vs. query). The description adds no parameter-level meaning on top of that, which is the expected baseline-3 outcome when the schema does the heavy lifting.

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

Purpose3/5

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

The description gives a concrete verb and resource ('Search ... WeJob formations') plus a scope qualifier ('public active'), so the agent knows roughly what it returns. However, it draws no distinction from its near-identical siblings wejob_search_jobs and wejob_search_companies, and 'formations' (training programs) is not clarified for a non-French reader.

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?

There is no statement of when to use this tool versus wejob_get_formation or the other search_* siblings, no mention of prerequisites, and no guidance on paging through large result sets despite a page/limit schema. Usage is only implied by the word 'Search'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.