Cerulean Jobs
Server Details
Open jobs at luxury houses and brands worldwide: search them, read one in full, find roles like it.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
Each tool serves a distinct purpose: fetch retrieves a specific listing by ID, search finds listings via criteria, and find_similar_jobs returns comparable listings to a given one. There is no overlap or ambiguity, making misselection unlikely.
All three tool names are imperative verbs (fetch, search, find_similar_jobs) following a consistent style. While not a strict verb_noun pattern, the naming convention is uniform and predictable, which satisfies the consistency requirement.
With 3 tools, the server is lean but well-scoped for a niche job-search domain. The tools cover the essential operations—retrieve, search, and similar—without unnecessary bloat, though the small count might slightly limit flexibility.
The tool surface covers the core read-only workflows: retrieving a specific listing, searching with filters, and finding similar roles. There are no obvious dead ends for typical use cases, though features like listing all brands or advanced aggregation are missing, which could be seen as minor gaps.
Available Tools
3 toolsfetchFetch a listingARead-onlyIdempotentInspect
Use this when someone asks about one specific Cerulean listing — its responsibilities, qualifications, skills, experience, education, pay when the employer states it, benefits or required languages — and its id or Cerulean URL is known. Returns that one listing in full as text, with its url and structured details. It does not search. An unknown or closed listing is an error.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The listing's id, as every result carries it, or its URL on a Cerulean site. | |
| locale | No | The user's language and region, as a BCP 47 tag: fr-CH for someone writing French in Geneva, say. It sets the language of titles and descriptions, and adds localizedUrl, the listing on that locale's Cerulean site, where the site carries it. It does not filter: country and location do. Cerulean's sites are en: ceruleanjobs.com, English, worldwide; fr-FR: cerulean.fr, French, France; fr-CH: ceruleanjobs.ch, French, Switzerland; de-CH: ceruleanjobs.ch, German, Switzerland; en-CA: ceruleanjobs.ca, English, Canada; fr-CA: ceruleanjobs.ca, French, Canada; de-DE: ceruleanjobs.de, German, Germany; en-GB: ceruleanjobs.co.uk, English, UK; es-ES: cerulean.es, Spanish, Spain; it-IT: ceruleanjobs.it, Italian, Italy. Any other tag takes its language's site, so fr-BE reads as fr-FR and en-US as en; another language reads as en. Defaults to en. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | The listing on ceruleanjobs.com, where a candidate reads it in full and applies. |
| text | Yes | The whole listing as text: its summary, responsibilities, qualifications, skills, experience, education, pay where stated, benefits and languages. |
| title | Yes | |
| metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint, idempotentHint, and non-destructive annotations, the description discloses that unknown or closed listings produce an error and that the tool returns the full listing as text with URL and structured details. These are non-obvious behavioral details useful for agent invocation, and nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the exact usage trigger, then states the return payload, the non-search behavior, and the error condition. Every sentence earns its place; no filler or redundant restating of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich parameter schema, output schema, and annotation coverage, the description covers all remaining decision-relevant context: when to use it, what it returns, what it does not do, and how errors behave. The agent has enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema already explains id and locale in detail including locale-specific site mappings. The description reinforces that id can be a URL, but it does not meaningfully add beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: fetching one specific Cerulean listing when its id or URL is known, and returns it in full. It explicitly distinguishes itself from searching ('It does not search.'), which separates it from the sibling tools search and find_similar_jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trigger is explicit: use when someone asks about one specific listing with a known id or URL. It also gives an exclusion ('It does not search.') and an error condition for unknown or closed listings. It does not explicitly name search or find_similar_jobs as alternatives, but the contrast is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_similar_jobsFind similar jobsARead-onlyIdempotentInspect
Use this when someone wants more roles like one specific Cerulean listing: the closest open roles by what the job is and where it is. Takes that listing's id, not keywords. If the listing is unknown or has no similarity data, it returns an error rather than unrelated results.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of the listing to find roles like, as every result carries it, or its URL on a Cerulean site. It is not among its own results. | |
| limit | No | How many similar roles to return, up to 20. Defaults to 12. | |
| locale | No | The user's language and region, as a BCP 47 tag: fr-CH for someone writing French in Geneva, say. It sets the language of titles and descriptions, and adds localizedUrl, the listing on that locale's Cerulean site, where the site carries it. It does not filter: country and location do. Cerulean's sites are en: ceruleanjobs.com, English, worldwide; fr-FR: cerulean.fr, French, France; fr-CH: ceruleanjobs.ch, French, Switzerland; de-CH: ceruleanjobs.ch, German, Switzerland; en-CA: ceruleanjobs.ca, English, Canada; fr-CA: ceruleanjobs.ca, French, Canada; de-DE: ceruleanjobs.de, German, Germany; en-GB: ceruleanjobs.co.uk, English, UK; es-ES: cerulean.es, Spanish, Spain; it-IT: ceruleanjobs.it, Italian, Italy. Any other tag takes its language's site, so fr-BE reads as fr-FR and en-US as en; another language reads as en. Defaults to en. | |
| offset | No | How many to skip, for the next page. Defaults to 0, maximum 10000. | |
| country | No | Keep only similar roles in this country. | |
| location | No | Keep only similar roles in this city, region or country. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| offset | Yes | |
| hasMore | Yes | |
| results | Yes | |
| warnings | No | |
| similarTo | Yes | |
| indexBuiltAt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, and destructive hints, so the description's main contribution is the error behavior: it returns an error for unknown listings or missing similarity data instead of unrelated results. This adds useful behavioral context beyond the annotations, though it doesn't detail output format (covered by the output schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the core purpose and usage, then adds the error behavior, which is essential for the agent to set expectations. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the input schema fully documents all 6 parameters, the description provides sufficient context for correct invocation: it clarifies the input type (id), the error case, and the general behavior. Nothing critical is missing for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are already documented with detailed descriptions (e.g., id, limit, locale, offset, country, location). The description adds minimal extra meaning beyond what the schema provides, mainly reinforcing that the id is a listing id, not keywords. This meets the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: finding similar jobs based on a specific listing's id, distinguishing it from keyword-based search. It uses a specific verb ('find') and resource ('similar jobs'), and explicitly notes it takes an id, not keywords, which separates it from the sibling 'search' tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use context ('when someone wants more roles like one specific Cerulean listing') and describes error behavior for invalid input. It doesn't explicitly name alternatives like 'fetch' or 'search', but the 'not keywords' phrasing implies when not to use it, making the guidance clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchSearch jobsARead-onlyIdempotentInspect
Use this when someone wants to find, browse, count or compare open roles at luxury houses and brands, the newest openings included. The listings are read from the houses' own career sites every four hours, and closed roles drop out. query takes keywords or a plain request ("senior client advisor, Cartier, Geneva"), and may be empty to browse; brand, place, employment type, seniority, industry and department can also be set as filters, and they combine; posted_within_days keeps only recent listings. Returns one page of listings — each with an id, a short summary and the url where candidates read it and apply — plus total, the number of matches.
| Name | Required | Description | Default |
|---|---|---|---|
| brand | No | A brand, by name or slug: "Tiffany & Co.", "LV", "louis-vuitton". A name that matches no brand comes back as an unknown_value warning with close spellings. | |
| limit | No | How many results to return, up to 20. Defaults to 12; more than 20 is served as 20 with a clamped warning. | |
| query | No | Keywords, or the request as a plain sentence ("senior client advisor, Cartier, Geneva"). A brand, place, country or employment type it names is applied as that filter, unless the filter is set, and reported in interpreted. Leave it out, or empty, to browse by filters alone. | |
| locale | No | The user's language and region, as a BCP 47 tag: fr-CH for someone writing French in Geneva, say. It sets the language of titles and descriptions, and adds localizedUrl, the listing on that locale's Cerulean site, where the site carries it. It does not filter: country and location do. Cerulean's sites are en: ceruleanjobs.com, English, worldwide; fr-FR: cerulean.fr, French, France; fr-CH: ceruleanjobs.ch, French, Switzerland; de-CH: ceruleanjobs.ch, German, Switzerland; en-CA: ceruleanjobs.ca, English, Canada; fr-CA: ceruleanjobs.ca, French, Canada; de-DE: ceruleanjobs.de, German, Germany; en-GB: ceruleanjobs.co.uk, English, UK; es-ES: cerulean.es, Spanish, Spain; it-IT: ceruleanjobs.it, Italian, Italy. Any other tag takes its language's site, so fr-BE reads as fr-FR and en-US as en; another language reads as en. Defaults to en. | |
| offset | No | How many results to skip, for the next page. Defaults to 0, maximum 10000. | |
| country | No | A country, by name or ISO code — "Switzerland", "US", "Deutschland". Narrower than location, and combinable with it. | |
| industry | No | Industry. | |
| location | No | A city, region or country, in any common spelling: "Geneva" or "Genève", "New York" or "NYC", "Lombardy", "UAE". | |
| department | No | Department. | |
| employment_type | No | Employment type. | |
| seniority_level | No | Seniority level. | |
| posted_within_days | No | Only listings posted in the last N days, by when Cerulean first saw them: 1 for today's, 7 for this week's. Up to 365. |
Output Schema
| Name | Required | Description |
|---|---|---|
| limit | Yes | |
| total | Yes | How many listings match, across every page. |
| offset | Yes | |
| hasMore | Yes | |
| results | Yes | |
| warnings | No | What was clamped, not recognised or matched nothing — what tells a typo from an empty shelf. |
| interpreted | No | How the query was read, when it named filters or carried words every search does. |
| indexBuiltAt | No | When the index was built, RFC 3339: how far results can trail the site. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, but the description adds rich behavioral context beyond that: data freshness ('read from the houses' own career sites every four hours, and closed roles drop out'), query interpretation ('a brand, place, country or employment type it names is applied as that filter'), result pagination ('Returns one page of listings... plus total'), and locale handling (site mapping and fallback behavior). These are not derivable from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Though long, every sentence earns its place. The description front-loads the primary purpose, then systematically covers filtering, query parsing, freshness, pagination, and locale behavior. It is organized logically and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters, multiple enums, locale mapping) and the presence of an output schema, the description is comprehensive. It explains the interaction of filters, query semantics, freshness, pagination, and locale without needing to describe the return structure (covered by output schema). Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, giving a baseline of 3, but the description substantially enriches parameter meaning. For query it explains empty-value browsing, sentence parsing, and filter inference; for locale it details BCP 47 usage, site mapping, and non-filtering semantics; for posted_within_days it clarifies the counting basis. It also clarifies that brand, place, employment type, etc. combine, which the schema does not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's function: 'find, browse, count or compare open roles at luxury houses and brands'. It names the resource (job listings) and the scope (luxury houses, newest openings included). Though it does not name sibling tools, the verb set and 'open roles' make it distinct from fetch (retrieve one) and find_similar_jobs (similarity matching).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with a clear when-to-use directive: 'Use this when someone wants to find, browse, count or compare open roles'. It explains filter combinations and query behavior. However, it does not explicitly mention when to prefer sibling tools (fetch or find_similar_jobs) or when not to use this tool, so it stops short of full exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
fetch - First observed
find_similar_jobs - First observed
search
Related MCP Connectors
Search Hosco's live hospitality jobs across Spain, Italy, France, the UK and Switzerland.
Search 4,000+ live UX & product-design jobs from jobs.uxjobs.io. Read-only, no auth.
Live job ads from StepStone, XING, Welcome to the Jungle, Naukri, JobStreet and more.
Search live remote jobs worldwide. Job search, remote salary bands, work-from-anywhere eligibility.
Related MCP Servers
- AlicenseAqualityDmaintenanceSearch Recruiter Roles: live recruiter jobs, companies, sectors, locations, and market stats.732 npm1MIT
- AlicenseAqualityDmaintenanceSearch current remote / work-from-home jobs by category, region, perk, or company — with ready-to-apply links.5MIT
- AlicenseAqualityCmaintenanceEnables real-time job search across thousands of companies' open roles from Greenhouse, Lever, Ashby, and SmartRecruiters, with full-text filtering and company-specific queries, no API key required.2MIT
- AlicenseNot gradedqualityBmaintenanceSearch live startup.jobs listings with filters for role, location, and employment type, plus get job details, company profiles, hiring trends, and salary benchmarks.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.