Cerulean Jobs

Open jobs at luxury houses and brands worldwide: search them, read one in full, find roles like it.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
97%
Naming quality
100%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (1)

  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~3,712Tokens (tool definitions)
~13.3 KBTypical response size
Significant attention impact (2.90% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "search": {
      "url": "https://ceruleanjobs.com/api/mcp"
    }
  }
}

Remote endpoints

https://ceruleanjobs.com/api/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟒 Read-only🟑 WriteπŸ”΄ Deleteβšͺ Unknown
🟒fetch(id, locale)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The listing's id, as every result carries it, or its URL on a Cerulean site."
    },
    "locale": {
      "type": "string",
      "description": "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.",
      "pattern": "^([A-Za-z]{2,3}([-_][A-Za-z0-9]{1,8})*)?$"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string",
      "description": "The whole listing as text: its summary, responsibilities, qualifications, skills, experience, education, pay where stated, benefits and languages."
    },
    "url": {
      "type": "string",
      "description": "The listing on ceruleanjobs.com, where a candidate reads it in full and applies."
    },
    "metadata": {
      "type": "object",
      "properties": {
        "brand": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string",
              "description": "The brand filter's value for this brand."
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "slug",
            "name"
          ],
          "additionalProperties": false
        },
        "city": {
          "type": "string"
        },
        "region": {
          "type": "string"
        },
        "country": {
          "type": "string"
        },
        "datePosted": {
          "type": "string"
        },
        "employmentType": {
          "type": "string"
        },
        "seniorityLevel": {
          "type": "string"
        },
        "industry": {
          "type": "string"
        },
        "department": {
          "type": "string"
        },
        "compensation": {
          "type": [
            "null",
            "object"
          ],
          "properties": {
            "min": {
              "type": [
                "null",
                "number"
              ]
            },
            "max": {
              "type": [
                "null",
                "number"
              ]
            },
            "currency": {
              "type": "string"
            },
            "period": {
              "type": "string"
            },
            "text": {
              "type": "string"
            }
          },
          "description": "The pay the listing states: a range, either end of which may be open, or text. Absent when it states none.",
          "additionalProperties": false
        },
        "languages": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "The languages the role asks for, as ISO 639 codes."
        },
        "localizedUrl": {
          "type": "string"
        },
        "indexBuiltAt": {
          "type": "string"
        },
        "warnings": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "parameter": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "suggestions": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "code",
              "message"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "brand"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url",
    "metadata"
  ],
  "additionalProperties": false
}
🟒find_similar_jobs(id, location, country, locale, limit, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "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."
    },
    "location": {
      "type": "string",
      "description": "Keep only similar roles in this city, region or country."
    },
    "country": {
      "type": "string",
      "description": "Keep only similar roles in this country."
    },
    "locale": {
      "type": "string",
      "description": "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.",
      "pattern": "^([A-Za-z]{2,3}([-_][A-Za-z0-9]{1,8})*)?$"
    },
    "limit": {
      "type": "integer",
      "description": "How many similar roles to return, up to 20. Defaults to 12."
    },
    "offset": {
      "type": "integer",
      "description": "How many to skip, for the next page. Defaults to 0, maximum 10000."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "similarTo": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "brand": {
          "type": "object",
          "properties": {
            "slug": {
              "type": "string",
              "description": "The brand filter's value for this brand."
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "slug",
            "name"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "id",
        "title",
        "brand"
      ],
      "additionalProperties": false
    },
    "results": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The listing's id: what fetch and find_similar_jobs take."
          },
          "title": {
            "type": "string",
            "description": "The job title, in the language of locale where the listing has a translation."
          },
          "url": {
            "type": "string",
            "description": "The listing on ceruleanjobs.com, where a candidate reads it in full and applies."
          },
          "text": {
            "type": "string",
            "description": "The listing's summary, up to 300 characters."
          },
          "brand": {
            "type": "object",
            "properties": {
              "slug": {
                "type": "string",
                "description": "The brand filter's value for this brand."
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "slug",
              "name"
            ],
            "additionalProperties": false
          },
          "city": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "datePosted": {
            "type": "string",
            "description": "When the listing was first seen, RFC 3339."
          },
          "employmentType": {
            "type": "string",
            "description": "An employment_type filter value."
          },
          "seniorityLevel": {
            "type": "string",
            "description": "A seniority_level filter value."
          },
          "industry": {
            "type": "string",
            "description": "An industry filter value."
          },
          "department": {
            "type": "string",
            "description": "A department filter value."
          },
          "localizedUrl": {
            "type": "string",
            "description": "The listing on the Cerulean site for locale, when that site carries it."
          }
        },
        "required": [
          "id",
          "title",
          "url",
          "brand"
        ],
        "additionalProperties": false
      }
    },
    "hasMore": {
      "type": "boolean"
    },
    "offset": {
      "type": "integer"
    },
    "limit": {
      "type": "integer"
    },
    "indexBuiltAt": {
      "type": "string"
    },
    "warnings": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "parameter": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "suggestions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "similarTo",
    "results",
    "hasMore",
    "offset",
    "limit"
  ],
  "additionalProperties": false
}
🟒search(query, brand, location, country, employment_type, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "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."
    },
    "brand": {
      "type": "string",
      "description": "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."
    },
    "location": {
      "type": "string",
      "description": "A city, region or country, in any common spelling: \"Geneva\" or \"Genève\", \"New York\" or \"NYC\", \"Lombardy\", \"UAE\"."
    },
    "country": {
      "type": "string",
      "description": "A country, by name or ISO code β€” \"Switzerland\", \"US\", \"Deutschland\". Narrower than location, and combinable with it."
    },
    "employment_type": {
      "type": "string",
      "description": "Employment type.",
      "enum": [
        "full-time",
        "part-time",
        "contract",
        "temporary",
        "seasonal",
        "internship",
        "volunteer",
        "per-diem",
        "other"
      ]
    },
    "seniority_level": {
      "type": "string",
      "description": "Seniority level.",
      "enum": [
        "intern",
        "entry-level",
        "junior",
        "mid-level",
        "senior",
        "lead",
        "supervisor",
        "manager",
        "director",
        "executive"
      ]
    },
    "industry": {
      "type": "string",
      "description": "Industry.",
      "enum": [
        "fashion-apparel-leather",
        "watches-horology",
        "high-jewelry",
        "perfumes-cosmetics-beauty",
        "eyewear-vision-care",
        "wines-spirits-gastronomy",
        "luxury-hospitality-travel",
        "selective-retailing",
        "luxury-real-estate",
        "yachting-aviation-mobility",
        "pre-owned-vintage-luxury",
        "media-art-culture",
        "luxury-automotive",
        "luxury-furniture-homewares",
        "high-end-audio-electronics",
        "premium-sporting-equipment",
        "photography-optics"
      ]
    },
    "department": {
      "type": "string",
      "description": "Department.",
      "enum": [
        "retail-operations",
        "wholesale-b2b",
        "merchandising-buying",
        "ecommerce-digital",
        "clienteling-crm",
        "creative-design",
        "research-innovation",
        "visual-merchandising-architecture",
        "heritage-archives",
        "manufacturing-artisanal",
        "supply-chain-logistics",
        "culinary-food-production",
        "food-beverage-service",
        "front-office-guest-experience",
        "housekeeping-cleaning",
        "spa-wellness",
        "engineering-facilities",
        "real-estate-asset-management",
        "corporate-affairs-csr",
        "human-resources",
        "finance-accounting",
        "it-technology",
        "medical-clinical",
        "legal-compliance",
        "executive-management",
        "other"
      ]
    },
    "locale": {
      "type": "string",
      "description": "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.",
      "pattern": "^([A-Za-z]{2,3}([-_][A-Za-z0-9]{1,8})*)?$"
    },
    "posted_within_days": {
      "type": "integer",
      "description": "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."
    },
    "limit": {
      "type": "integer",
      "description": "How many results to return, up to 20. Defaults to 12; more than 20 is served as 20 with a clamped warning."
    },
    "offset": {
      "type": "integer",
      "description": "How many results to skip, for the next page. Defaults to 0, maximum 10000."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The listing's id: what fetch and find_similar_jobs take."
          },
          "title": {
            "type": "string",
            "description": "The job title, in the language of locale where the listing has a translation."
          },
          "url": {
            "type": "string",
            "description": "The listing on ceruleanjobs.com, where a candidate reads it in full and applies."
          },
          "text": {
            "type": "string",
            "description": "The listing's summary, up to 300 characters."
          },
          "brand": {
            "type": "object",
            "properties": {
              "slug": {
                "type": "string",
                "description": "The brand filter's value for this brand."
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "slug",
              "name"
            ],
            "additionalProperties": false
          },
          "city": {
            "type": "string"
          },
          "region": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "datePosted": {
            "type": "string",
            "description": "When the listing was first seen, RFC 3339."
          },
          "employmentType": {
            "type": "string",
            "description": "An employment_type filter value."
          },
          "seniorityLevel": {
            "type": "string",
            "description": "A seniority_level filter value."
          },
          "industry": {
            "type": "string",
            "description": "An industry filter value."
          },
          "department": {
            "type": "string",
            "description": "A department filter value."
          },
          "localizedUrl": {
            "type": "string",
            "description": "The listing on the Cerulean site for locale, when that site carries it."
          }
        },
        "required": [
          "id",
          "title",
          "url",
          "brand"
        ],
        "additionalProperties": false
      }
    },
    "total": {
      "type": "integer",
      "description": "How many listings match, across every page.",
      "minimum": 0
    },
    "hasMore": {
      "type": "boolean"
    },
    "offset": {
      "type": "integer"
    },
    "limit": {
      "type": "integer"
    },
    "interpreted": {
      "type": [
        "null",
        "object"
      ],
      "properties": {
        "brand": {
          "type": "string",
          "description": "The brand the sentence named, as the brand filter's slug."
        },
        "location": {
          "type": "string",
          "description": "The place the sentence named, applied as the location filter."
        },
        "country": {
          "type": "string",
          "description": "A second place the sentence named, a country, applied as the country filter."
        },
        "employmentType": {
          "type": "string",
          "description": "The employment type the sentence named, applied as that filter."
        },
        "query": {
          "type": "string",
          "description": "The words left to search as text: empty when the sentence named only filters."
        }
      },
      "description": "How the query was read, when it named filters or carried words every search does.",
      "required": [
        "query"
      ],
      "additionalProperties": false
    },
    "indexBuiltAt": {
      "type": "string",
      "description": "When the index was built, RFC 3339: how far results can trail the site."
    },
    "warnings": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "parameter": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "suggestions": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": false
      },
      "description": "What was clamped, not recognised or matched nothing β€” what tells a typo from an empty shelf."
    }
  },
  "required": [
    "results",
    "total",
    "hasMore",
    "offset",
    "limit"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools