Skip to main content
Glama

jopp

Server Details

Search open jobs in Switzerland and Liechtenstein and read jopp job briefs.

Ownership verified
Status
Healthy
Uptime
99.9% over 23 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation3/5

There are two clear overlapping pairs: 'fetch' and 'get_job' both retrieve a single job by id, and 'search' and 'search_jobs' both perform keyword searches. The descriptions do distinguish them (fetch returns readable text vs. get_job returns structured details; search_jobs adds filters), but an agent can still easily pick the wrong one.

Naming Consistency3/5

Names are all snake_case, but the verb style is mixed: bare verbs ('fetch', 'search') alongside verb_noun compounds ('get_job', 'list_categories', 'search_jobs'). The synonym split between 'fetch' and 'get' adds inconsistency.

Tool Count5/5

Five tools is well within the healthy 3-15 range and suits a focused job-search domain: two search variants, two retrieval variants, and one category helper. The set is compact and not bloated.

Completeness4/5

Core workflows are covered: keyword search, filtered search, single-job details, full-text retrieval, and category/role lookup. Minor gaps exist (e.g., no explicit company search or saved-job/alert operations), but agents can work around these.

Available Tools

5 tools
fetchFetch a jobA
Read-onlyIdempotent
Inspect

The full text of one job by its id from search, as a readable document.

NameRequiredDescriptionDefault
idYesThe job id from search.

Output Schema

NameRequiredDescription
idYes
urlYes
textYes
titleYes
metadataYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint, so the safety profile is covered. The description adds only that the result is a 'readable document,' with no details on formatting, size limits, or error behavior – modest added context.

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 front-loaded sentence that conveys scope and output form with no filler.

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

Completeness3/5

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

For a one-parameter read tool with an output schema and full annotations, most burdens are handled elsewhere. However, the description omits sibling differentiation against get_job, which is a notable gap given the near-identical names.

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%, so the id parameter and its origin ('from search') are fully documented in the schema. The description adds no syntax or format details beyond the schema's baseline.

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?

States a specific verb ('Fetch'), resource ('one job by its id'), and output form ('full text ... as a readable document'). Distinguishes from siblings like search by emphasizing retrieval of a single job's full content rather than listing or searching.

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?

It implies usage by mentioning 'from search' but offers no explicit when-to-use guidance, and it does not mention the sibling get_job or how fetch differs from it despite the overlapping purpose, leaving routing ambiguous.

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

get_jobGet a jobA
Read-onlyIdempotent
Inspect

Full details of one job by its id from search_jobs: facts, salary, description (usually a jopp brief) and the link to the original advert.

NameRequiredDescriptionDefault
idYesThe job id from search_jobs.

Output Schema

NameRequiredDescription
idYes
urlYesThe job on jopp.ai.
roleYes
startYesAn ISO date, "immediately" or "by_agreement".
titleYes
salaryYes"stated" comes from the advert. "estimated" is a jopp estimate of the yearly salary at 100 % workload and is not from the advert.
statusYes
companyYes
applyUrlYesThe original advert: the employer's or source's page to read it in full and apply.
categoryYes
industryYes
isAgencyYes
languageYesLanguage of title and description.
workModeYes
workloadYes
educationYesLowest education the advert asks for.
locationsYes
offerKindYes
seniorityYes
experienceYesYears of experience the advert asks for.
lastSeenAtYesISO date jopp last saw the advert online.
leadershipYes
descriptionYesMarkdown. Usually jopp's brief, a factual summary of the advert; the original advert at applyUrl is authoritative.
publishedAtYes
contractTypeYes
withJoppAccountYesWhat a person can do with this job after signing in to jopp.
requiredLanguagesYes
advantageLanguagesYes

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description earns credit by disclosing what the payload actually contains – facts, salary, description, and the link to the original advert – which the annotations do not.

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?

A single front-loaded sentence with the payload contents appended; nothing is wasted. Minor drag from the unclear 'usually a jopp brief' phrasing (likely a typo), which slightly blurs the return description.

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?

With an output schema present, return values need not be explained, and annotations cover the safety profile. For a one-parameter lookup tool this is essentially complete, with only the vague 'jopp brief' wording leaving a small gap.

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% and the schema already states 'The job id from search_jobs', so the description's 'by its id from search_jobs' is largely redundant. Baseline 3 applies when the schema carries the parameter documentation.

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?

States a specific verb and resource ('Full details of one job') and pins the scope to a single record by id, which cleanly separates it from search_jobs. The mention of 'from search_jobs' further anchors it against the sibling list.

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 phrase 'by its id from search_jobs' implies the workflow (search first, then fetch full detail) and names the sibling that supplies the id. It does not explicitly state when not to use it or contrast with 'fetch', so it stops short of a 5.

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

list_categoriesList job categoriesA
Read-onlyIdempotent
Inspect

jopp's occupation categories and their roles, for the category and role filters of search_jobs. Pass a category key to get its roles with typical job titles.

NameRequiredDescriptionDefault
categoryNoA category key to list its roles in detail.

Output Schema

NameRequiredDescription
categoriesYes

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety and side-effect profile is fully covered. The description adds helpful context about what the tool returns (categories and roles, with typical job titles) and its relationship to search_jobs, but it does not go beyond the annotations to describe any additional behavioral traits like rate limits or specific output details.

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 extremely concise, two sentences, and front-loads the core purpose. Every sentence earns its place by clarifying what the tool returns and its connection to search_jobs without any filler.

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 that the tool has an output schema and rich annotations, the description is nearly complete. It explains the tool's role and return values well. It could be slightly more complete by explicitly mentioning the default behavior (listing all categories when no category is provided) and possibly the format of keys, but the essentials are covered.

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%, so the schema already explains the single parameter 'category' as a key to list its roles in detail. The description adds meaning by noting that passing a category key returns its roles with typical job titles, and that omitting it gives the top-level categories. This is slightly more context than the schema, but not substantially beyond what's structured; it meets the baseline for high schema coverage.

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 provides a specific verb+resource: it tells the agent this tool lists occupation categories and their roles. It also explicitly differentiates from the sibling search_jobs by stating these categories and roles are meant to be used as filters for that tool. This gives an unambiguous sense of purpose.

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

Usage Guidelines3/5

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

The description gives a clear use case (to get category and role filters for search_jobs), implying when to use it. However, it does not explicitly state when *not* to use it, or contrast it with other siblings like fetch or search. It also doesn't mention whether calling it without a category is the standard way to list all categories.

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

search_jobsSearch jobs in SwitzerlandA
Read-onlyIdempotent
Inspect

Search open jobs in Switzerland and Liechtenstein by keywords and filters. Only jobs whose advert is still online are returned. Lehrstellen are listed only with segment apprenticeships. Returns up to 20 jobs per page, newest first for filter-only searches; keyword searches rank by relevance, favouring recent adverts and mixing companies. Use get_job for a job's full description.

NameRequiredDescriptionDefault
roleNoA role key from list_categories; requires its category.
limitNo
queryNoKeywords matched against job title, company and description, with German word forms (e.g. "Pflegefachfrau", "Software Engineer Python"). All words must match; use OR between alternatives, "quotes" for phrases and -word to exclude. Place names match only the text; use cantons to filter by location.
cursorNonextCursor of a previous search_jobs result; the other arguments are then ignored.
cantonsNoTwo-letter canton codes (ZH, BE, VD, GE, …) or LI for Liechtenstein.
segmentNojobs (default): regular jobs and internships. apprenticeships: only Lehrstellen (Swiss vocational apprenticeships, Berufslehre). A search lists one of the two, never both.jobs
categoryNoA category key from list_categories.
workModesNo
senioritiesNo
workloadMaxNoHighest workload in percent of full time (10–100).
workloadMinNoLowest workload in percent of full time (10–100).
salaryStatedNoOnly jobs whose advert states a salary.
contractTypesNoNot for segment apprenticeships.
advertLanguagesNoLanguage the advert is written in.
excludeAgenciesNoLeave out recruitment agencies.
requiredLanguagesNoOnly jobs that require all of these languages.
publishedWithinDaysNo

Output Schema

NameRequiredDescription
totalYesHow many open jobs match.
resultsYes
searchUrlYesThe same search on jopp.ai.
nextCursorYesPass as cursor for the next page; null at the end.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description adds real behavioural context beyond them: only still-online adverts are returned, results are capped at 20 per page, filter-only searches are newest-first while keyword searches are relevance-ranked with recency bias and company mixing. It stops short of describing pagination termination or any rate limits.

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?

Four compact sentences, front-loaded with scope and the online-only constraint, then ranking behaviour, then the sibling hand-off. Every sentence carries distinct information with no filler.

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?

With an output schema present, return-shape explanation is unnecessary, and the description covers the non-obvious constraints an agent needs (online-only, segment exclusivity, page cap, ranking differences). For a 17-parameter tool it could have hinted at how cursor paging terminates, but coverage is strong overall.

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 76% and the schema itself carries detailed semantics (query syntax, OR/quotes/exclusion, role-requires-category, cursor overriding other args). The description largely restates the segment constraint and the 20-per-page limit rather than adding new meaning, so the 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?

States a specific verb and resource (search open jobs) plus the geographic scope (Switzerland and Liechtenstein) and the filter/keyword duality. It also explicitly routes full-description lookups to the sibling get_job, so an agent can distinguish it from neighbours without opening a schema.

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?

Gives clear context for when this tool applies (open adverts only, keyword vs filter mode) and names the alternative for detail retrieval ('Use get_job for a job's full description'). It does not, however, say when to prefer list_categories to discover role/category keys, which the schema requires as inputs.

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. 1 tool update
    • Changedsearch_jobs3 fields changed
      • addedInput schema / properties / contractTypes / description
        Added value: +"Not for segment apprenticeships."
      • changedInput schema / properties / contractTypes / items / enum
        Previous value: -[
        -  "permanent",
        -  "temporary",
        -  "internship",
        -  "apprenticeship",
        -  "freelance"
        -]New value: +[
        +  "permanent",
        +  "temporary",
        +  "internship",
        +  "freelance"
        +]
      • addedInput schema / properties / segment
        Added value: +{
        +  "default": "jobs",
        +  "description": "jobs (default): regular jobs and internships. apprenticeships: only Lehrstellen (Swiss vocational apprenticeships, Berufslehre). A search lists one of the two, never both.",
        +  "enum": [
        +    "jobs",
        +    "apprenticeships"
        +  ],
        +  "type": "string"
        +}
  2. 5 tool updates
    • First observedfetch
    • First observedget_job
    • First observedlist_categories
    • First observedsearch
    • First observedsearch_jobs

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to search, filter, and apply to salary-transparent tech jobs across nine international job boards, including Switzerland's jobs.ch and jobup.ch and Singapore's MyCareersFuture. Results are returned as JSON with salary, remote, tech, and posting-date filters, and previously applied postings are remembered so they drop out of subsequent listings.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables users to search public job listings and retrieve details for individual postings from inside AI assistants, including ranked results, filters, and pagination. It is read-only and requires no account, authentication, or API key.
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to search, filter, and apply to salary-transparent tech jobs across nine job boards in eight countries, including Swiss and Singapore government portals, while remembering past applications. It exposes job listings, board metadata, salary filters, and application flow as JSON-first MCP tools so agents can drive the entire job hunt without opening a browser.
    -
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to search salary-transparent tech job boards across Switzerland, Germany, the UK, the US/Canada, the Netherlands, France, and Singapore, filter postings by pay, remote work, technology, and other criteria, and track which roles have already been applied to. It also exposes board metadata and structured JSON results so agents can query, compare, and drive job applications entirely from the terminal or an LLM workflow.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources