Skip to main content
Glama

Read and save your resume (CV, Lebenslauf)

upload_resume
DestructiveIdempotent

Use this when the user is looking for a job (Stelle) and shares their resume, CV or Lebenslauf, or wants to change the one on file. Two steps with the same tool. First call it with freitext (the resume as text), pdf (a PDF, Base64) or datei (an attached PDF): the resume is only read, the extracted fields come back under entwurf, and nothing is saved yet — except that a PDF is kept as the user’s one resume document and replaces the previous one. Show the user these fields and let them correct whatever was misread. Then call this tool again with felder: only that saves the resume, and the first time it also selects five job matches — call get_job_matches to show them. Never save fields the user has not seen. Each user has exactly one resume; saving again updates it and brings no new job matches — those come only from refresh_job_matches. Jobroulette covers IT, sales, operations, engineering, marketing, finance and legal, and HR: if the saved resume carries imZuschnitt false, tell the user that their resume does not look like any of these fields and the matches will therefore probably not fit them. Before the first resume, the user has to consent to its processing themselves on the Jobroulette website; until then this tool fails with einwilligung_fehlt, quoting the consent text and the page where the user gives it. Show both to the user — you cannot consent on their behalf. Exactly one of freitext, pdf, datei, felder per call. Scope: cv:schreiben.

Input Schema

NameRequiredDescriptionDefault
pdfNoDer CV als PDF mit Textebene, Base64-kodiert, höchstens 5 MiB. Scans werden abgelehnt. Wird gelesen, nicht hinterlegt.
dateiNoThe resume as an attached PDF file.
felderNoDer vom Pro bestätigte CV in einzelnen Angaben — nur damit wird hinterlegt. Pflicht: Berufsbezeichnung, Berufsjahre, mindestens eine Kenntnis.
wunschNoWas der Pro sucht und seinem CV nicht zu entnehmen ist, in seinen Worten, höchstens 280 Zeichen — etwa „nur remote, Vollzeit, ab März". Daraus werden Umfang, Vertragsart, Arbeitsort, Orte, Seniorität, Branchen, Mindestgehalt, Unternehmensgröße und ausgeschlossene Arbeitgeber gelesen. Nur mit felder; ohne ihn bleibt der bisherige.
freitextNoDer CV als Text, so wie der Pro ihn geschrieben oder eingefügt hat. Wird gelesen, nicht hinterlegt.

Output Schema

NameRequiredDescriptionDefault
entwurfNoBei freitext oder pdf: die gelesenen Felder. Es ist nichts hinterlegt worden. Lege sie dem Pro vor, lass ihn korrigieren und rufe dann erneut mit felder auf.
angelegtNoBei felder: der hinterlegte CV. Beim ersten stehen damit fünf Stellenvorschläge bereit, get_job_matches zeigt sie. Ein geänderter CV ändert sie nicht; neue gibt es nur mit refresh_job_matches.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / datei
      Added value: +{
      +  "description": "The resume as an attached PDF file.",
      +  "properties": {
      +    "download_url": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "file_id": {
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    "file_name": {
      +      "type": "string"
      +    },
      +    "mime_type": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "download_url",
      +    "file_id"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / angelegt / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "angelegtAm": {
      -        "format": "date-time",
      -        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -        "type": "string"
      -      },
      -      "auswahl": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "anlass": {
      -            "enum": [
      -              "cv",
      -              "erneuert"
      -            ],
      -            "type": "string"
      -          },
      -          "cvId": {
      -            "format": "uuid",
      -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -            "type": "string"
      -          },
      -          "erneuerbarAb": {
      -            "anyOf": [
      -              {
      -                "format": "date-time",
      -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "erzeugtAm": {
      -            "format": "date-time",
      -            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -            "type": "string"
      -          },
      -          "grenze": {
      -            "maximum": 9007199254740991,
      -            "minimum": 1,
      -            "type": "integer"
      -          },
      -          "hinweis": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "id": {
      -            "format": "uuid",
      -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -            "type": "string"
      -          },
      -          "protokollId": {
      -            "format": "uuid",
      -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -            "type": "string"
      -          },
      -          "stellen": {
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "arbeitgeber": {
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "arbeitsort": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "vor_ort",
      -                        "hybrid",
      -                        "fern"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "begruendung": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "dafuer": {
      -                          "items": {
      -                            "oneOf": [
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "skills",
      -                                    "type": "string"
      -                                  },
      -                                  "gefordert": {
      -                                    "maximum": 9007199254740991,
      -                                    "minimum": 1,
      -                                    "type": "integer"
      -                                  },
      -                                  "treffer": {
      -                                    "items": {
      -                                      "minLength": 1,
      -                                      "type": "string"
      -                                    },
      -                                    "minItems": 1,
      -                                    "type": "array"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "treffer",
      -                                  "gefordert"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "ort",
      -                                    "type": "string"
      -                                  },
      -                                  "entfernungKm": {
      -                                    "maximum": 9007199254740991,
      -                                    "minimum": 0,
      -                                    "type": "integer"
      -                                  },
      -                                  "stellenort": {
      -                                    "minLength": 1,
      -                                    "type": "string"
      -                                  },
      -                                  "wunschort": {
      -                                    "minLength": 1,
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "stellenort",
      -                                  "wunschort",
      -                                  "entfernungKm"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "arbeitsort",
      -                                    "type": "string"
      -                                  },
      -                                  "wert": {
      -                                    "enum": [
      -                                      "vor_ort",
      -                                      "hybrid",
      -                                      "fern"
      -                                    ],
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "wert"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "fern",
      -                                    "type": "string"
      -                                  },
      -                                  "orte": {
      -                                    "items": {
      -                                      "minLength": 1,
      -                                      "type": "string"
      -                                    },
      -                                    "minItems": 1,
      -                                    "type": "array"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "orte"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "umfang",
      -                                    "type": "string"
      -                                  },
      -                                  "wert": {
      -                                    "enum": [
      -                                      "vollzeit",
      -                                      "teilzeit"
      -                                    ],
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "wert"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "vertragsart",
      -                                    "type": "string"
      -                                  },
      -                                  "wert": {
      -                                    "enum": [
      -                                      "befristet",
      -                                      "unbefristet"
      -                                    ],
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "wert"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "stufe",
      -                                    "type": "string"
      -                                  },
      -                                  "wert": {
      -                                    "enum": [
      -                                      "praktikum",
      -                                      "einstieg",
      -                                      "junior",
      -                                      "mittel",
      -                                      "senior",
      -                                      "lead",
      -                                      "leitung"
      -                                    ],
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "wert"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "branche",
      -                                    "type": "string"
      -                                  },
      -                                  "wert": {
      -                                    "enum": [
      -                                      "software",
      -                                      "it_dienstleistung",
      -                                      "telekommunikation",
      -                                      "finanzen",
      -                                      "versicherung",
      -                                      "krypto",
      -                                      "handel",
      -                                      "konsumgueter",
      -                                      "gesundheit",
      -                                      "pharma_biotech",
      -                                      "industrie",
      -                                      "automobil",
      -                                      "luft_raumfahrt",
      -                                      "ruestung",
      -                                      "energie",
      -                                      "logistik",
      -                                      "immobilien_bau",
      -                                      "medien",
      -                                      "marketing",
      -                                      "gaming",
      -                                      "gluecksspiel",
      -                                      "beratung",
      -                                      "recht_steuern",
      -                                      "personal",
      -                                      "bildung_forschung",
      -                                      "freizeit",
      -                                      "oeffentlich_gemeinnuetzig"
      -                                    ],
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "wert"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "gehalt",
      -                                    "type": "string"
      -                                  },
      -                                  "bis": {
      -                                    "anyOf": [
      -                                      {
      -                                        "maximum": 9007199254740991,
      -                                        "minimum": -9007199254740991,
      -                                        "type": "integer"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "mindestens": {
      -                                    "exclusiveMinimum": 0,
      -                                    "maximum": 9007199254740991,
      -                                    "type": "integer"
      -                                  },
      -                                  "von": {
      -                                    "anyOf": [
      -                                      {
      -                                        "maximum": 9007199254740991,
      -                                        "minimum": -9007199254740991,
      -                                        "type": "integer"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  },
      -                                  "waehrung": {
      -                                    "enum": [
      -                                      "EUR",
      -                                      "CHF"
      -                                    ],
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "von",
      -                                  "bis",
      -                                  "waehrung",
      -                                  "mindestens"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "groesse",
      -                                    "type": "string"
      -                                  },
      -                                  "klassen": {
      -                                    "items": {
      -                                      "enum": [
      -                                        "klein",
      -                                        "mittel",
      -                                        "gross",
      -                                        "konzern"
      -                                      ],
      -                                      "type": "string"
      -                                    },
      -                                    "minItems": 1,
      -                                    "type": "array"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "klassen"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        },
      -                        "dagegen": {
      -                          "items": {
      -                            "oneOf": [
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "skills_fehlen",
      -                                    "type": "string"
      -                                  },
      -                                  "fehlend": {
      -                                    "items": {
      -                                      "minLength": 1,
      -                                      "type": "string"
      -                                    },
      -                                    "minItems": 1,
      -                                    "type": "array"
      -                                  },
      -                                  "gefordert": {
      -                                    "maximum": 9007199254740991,
      -                                    "minimum": 1,
      -                                    "type": "integer"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "fehlend",
      -                                  "gefordert"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "keine_skills",
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "unscharf",
      -                                    "type": "string"
      -                                  },
      -                                  "wunsch": {
      -                                    "minLength": 1,
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "wunsch"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "unbekannt",
      -                                    "type": "string"
      -                                  },
      -                                  "kriterium": {
      -                                    "enum": [
      -                                      "ort",
      -                                      "arbeitsort",
      -                                      "umfang",
      -                                      "vertragsart",
      -                                      "stufe",
      -                                      "branche",
      -                                      "groesse"
      -                                    ],
      -                                    "type": "string"
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "kriterium"
      -                                ],
      -                                "type": "object"
      -                              },
      -                              {
      -                                "additionalProperties": false,
      -                                "properties": {
      -                                  "art": {
      -                                    "const": "gehalt_unbekannt",
      -                                    "type": "string"
      -                                  },
      -                                  "mindestens": {
      -                                    "exclusiveMinimum": 0,
      -                                    "maximum": 9007199254740991,
      -                                    "type": "integer"
      -                                  },
      -                                  "schaetzung": {
      -                                    "anyOf": [
      -                                      {
      -                                        "additionalProperties": false,
      -                                        "properties": {
      -                                          "bis": {
      -                                            "anyOf": [
      -                                              {
      -                                                "maximum": 9007199254740991,
      -                                                "minimum": -9007199254740991,
      -                                                "type": "integer"
      -                                              },
      -                                              {
      -                                                "type": "null"
      -                                              }
      -                                            ]
      -                                          },
      -                                          "herkunft": {
      -                                            "enum": [
      -                                              "anzeige",
      -                                              "branche"
      -                                            ],
      -                                            "type": "string"
      -                                          },
      -                                          "von": {
      -                                            "anyOf": [
      -                                              {
      -                                                "maximum": 9007199254740991,
      -                                                "minimum": -9007199254740991,
      -                                                "type": "integer"
      -                                              },
      -                                              {
      -                                                "type": "null"
      -                                              }
      -                                            ]
      -                                          },
      -                                          "waehrung": {
      -                                            "enum": [
      -                                              "EUR",
      -                                              "CHF"
      -                                            ],
      -                                            "type": "string"
      -                                          }
      -                                        },
      -                                        "required": [
      -                                          "von",
      -                                          "bis",
      -                                          "waehrung",
      -                                          "herkunft"
      -                                        ],
      -                                        "type": "object"
      -                                      },
      -                                      {
      -                                        "type": "null"
      -                                      }
      -                                    ]
      -                                  }
      -                                },
      -                                "required": [
      -                                  "art",
      -                                  "mindestens",
      -                                  "schaetzung"
      -                                ],
      -                                "type": "object"
      -                              }
      -                            ]
      -                          },
      -                          "type": "array"
      -                        }
      -                      },
      -                      "required": [
      -                        "dafuer",
      -                        "dagegen"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "beschaeftigungsstatus": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "regulaer",
      -                        "werkstudent",
      -                        "praktikum",
      -                        "ausbildung",
      -                        "freiberuflich"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "bestandteile": {
      -                  "additionalProperties": false,
      -                  "properties": {
      -                    "abschluss": {
      -                      "anyOf": [
      -                        {
      -                          "enum": [
      -                            "erfuellt",
      -                            "fehlt"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        {
      -                          "type": "null"
      -                        }
      -                      ],
      -                      "default": null
      -                    },
      -                    "aehnlichkeit": {
      -                      "type": "number"
      -                    },
      -                    "familiennaehe": {
      -                      "type": [
      -                        "number",
      -                        "null"
      -                      ]
      -                    },
      -                    "ueberlappung": {
      -                      "type": [
      -                        "number",
      -                        "null"
      -                      ]
      -                    }
      -                  },
      -                  "required": [
      -                    "aehnlichkeit",
      -                    "ueberlappung",
      -                    "familiennaehe",
      -                    "abschluss"
      -                  ],
      -                  "type": "object"
      -                },
      -                "bewerbungsweg": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "mail",
      -                        "kontakt",
      -                        "formular"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "formularUrl": {
      -                  "anyOf": [
      -                    {
      -                      "minLength": 1,
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "gehalt": {
      -                  "anyOf": [
      -                    {
      -                      "additionalProperties": false,
      -                      "properties": {
      -                        "bis": {
      -                          "anyOf": [
      -                            {
      -                              "maximum": 9007199254740991,
      -                              "minimum": -9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "herkunft": {
      -                          "enum": [
      -                            "anzeige",
      -                            "branche"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "von": {
      -                          "anyOf": [
      -                            {
      -                              "maximum": 9007199254740991,
      -                              "minimum": -9007199254740991,
      -                              "type": "integer"
      -                            },
      -                            {
      -                              "type": "null"
      -                            }
      -                          ]
      -                        },
      -                        "waehrung": {
      -                          "enum": [
      -                            "EUR",
      -                            "CHF"
      -                          ],
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "von",
      -                        "bis",
      -                        "waehrung",
      -                        "herkunft"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "score": {
      -                  "type": "number"
      -                },
      -                "standorte": {
      -                  "items": {
      -                    "type": "string"
      -                  },
      -                  "type": "array"
      -                },
      -                "stelleId": {
      -                  "format": "uuid",
      -                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -                  "type": "string"
      -                },
      -                "titel": {
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "umfang": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "vollzeit",
      -                        "teilzeit"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "url": {
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "urteil": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "gemerkt",
      -                        "verworfen",
      -                        "entfernt"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "vertragsart": {
      -                  "anyOf": [
      -                    {
      -                      "enum": [
      -                        "befristet",
      -                        "unbefristet"
      -                      ],
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ],
      -                  "default": null
      -                },
      -                "zustand": {
      -                  "default": "offen",
      -                  "enum": [
      -                    "offen",
      -                    "verschwunden"
      -                  ],
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "stelleId",
      -                "titel",
      -                "arbeitgeber",
      -                "url",
      -                "standorte",
      -                "arbeitsort",
      -                "bewerbungsweg",
      -                "formularUrl",
      -                "begruendung",
      -                "umfang",
      -                "vertragsart",
      -                "beschaeftigungsstatus",
      -                "gehalt",
      -                "score",
      -                "bestandteile",
      -                "urteil",
      -                "zustand"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "vollstaendig": {
      -            "type": "boolean"
      -          }
      -        },
      -        "required": [
      -          "id",
      -          "cvId",
      -          "anlass",
      -          "stellen",
      -          "grenze",
      -          "vollstaendig",
      -          "hinweis",
      -          "protokollId",
      -          "erzeugtAm",
      -          "erneuerbarAb"
      -        ],
      -        "type": "object"
      -      },
      -      "felder": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "ausbildung": {
      -            "default": [],
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "berufsbezeichnung": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "berufsjahre": {
      -            "maximum": 9007199254740991,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "kenntnisse": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "minItems": 1,
      -            "type": "array"
      -          },
      -          "sprachen": {
      -            "default": [],
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "stationen": {
      -            "default": [],
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "arbeitgeber": {
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "beschreibung": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "bis": {
      -                  "anyOf": [
      -                    {
      -                      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "rolle": {
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "von": {
      -                  "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "arbeitgeber",
      -                "rolle",
      -                "von",
      -                "bis"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "studienabschluss": {
      -            "default": null,
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "berufsbezeichnung",
      -          "berufsjahre",
      -          "kenntnisse",
      -          "stationen",
      -          "ausbildung",
      -          "studienabschluss",
      -          "sprachen"
      -        ],
      -        "type": "object"
      -      },
      -      "freitext": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "gesetzteFelder": {
      -        "items": {
      -          "enum": [
      -            "senioritaetMindestens",
      -            "umfang",
      -            "vertragsart",
      -            "beschaeftigungsstatus",
      -            "arbeitsort",
      -            "orte",
      -            "skills",
      -            "berufsjahre",
      -            "zeitfensterAb",
      -            "deutsch",
      -            "englisch",
      -            "branchenAusschliessen",
      -            "branchenNur",
      -            "gehaltMindestens",
      -            "groessenAusschliessen",
      -            "groessenNur",
      -            "arbeitgeberAusschliessen",
      -            "arbeitgeberUngeklaert",
      -            "unscharf",
      -            "umkreisKm"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "gewonneneFelder": {
      -        "items": {
      -          "enum": [
      -            "berufsbezeichnung",
      -            "berufsjahre",
      -            "kenntnisse",
      -            "stationen",
      -            "ausbildung",
      -            "studienabschluss",
      -            "sprachen"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "id": {
      -        "format": "uuid",
      -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -        "type": "string"
      -      },
      -      "imZuschnitt": {
      -        "description": "Whether the resume falls within the fields Jobroulette covers: IT; sales and business development; operations, strategy and projects; engineering and R&D outside IT; marketing, content and design; finance, legal and compliance; HR and recruiting. If false, tell the user that their resume does not look like any of these fields and the job matches will therefore probably not fit them; they may continue anyway.",
      -        "type": "boolean"
      -      },
      -      "kriterien": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "arbeitgeberAusschliessen": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "arbeitgeberUngeklaert": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "arbeitsort": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "vor_ort",
      -                  "hybrid",
      -                  "fern"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "berufsjahre": {
      -            "anyOf": [
      -              {
      -                "maximum": 9007199254740991,
      -                "minimum": 0,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "beschaeftigungsstatus": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "regulaer",
      -                  "werkstudent",
      -                  "praktikum",
      -                  "ausbildung",
      -                  "freiberuflich"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "branchenAusschliessen": {
      -            "items": {
      -              "enum": [
      -                "software",
      -                "it_dienstleistung",
      -                "telekommunikation",
      -                "finanzen",
      -                "versicherung",
      -                "krypto",
      -                "handel",
      -                "konsumgueter",
      -                "gesundheit",
      -                "pharma_biotech",
      -                "industrie",
      -                "automobil",
      -                "luft_raumfahrt",
      -                "ruestung",
      -                "energie",
      -                "logistik",
      -                "immobilien_bau",
      -                "medien",
      -                "marketing",
      -                "gaming",
      -                "gluecksspiel",
      -                "beratung",
      -                "recht_steuern",
      -                "personal",
      -                "bildung_forschung",
      -                "freizeit",
      -                "oeffentlich_gemeinnuetzig"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "branchenNur": {
      -            "items": {
      -              "enum": [
      -                "software",
      -                "it_dienstleistung",
      -                "telekommunikation",
      -                "finanzen",
      -                "versicherung",
      -                "krypto",
      -                "handel",
      -                "konsumgueter",
      -                "gesundheit",
      -                "pharma_biotech",
      -                "industrie",
      -                "automobil",
      -                "luft_raumfahrt",
      -                "ruestung",
      -                "energie",
      -                "logistik",
      -                "immobilien_bau",
      -                "medien",
      -                "marketing",
      -                "gaming",
      -                "gluecksspiel",
      -                "beratung",
      -                "recht_steuern",
      -                "personal",
      -                "bildung_forschung",
      -                "freizeit",
      -                "oeffentlich_gemeinnuetzig"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "deutsch": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "grundkenntnisse",
      -                  "gut",
      -                  "fliessend",
      -                  "muttersprachlich"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "englisch": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "grundkenntnisse",
      -                  "gut",
      -                  "fliessend",
      -                  "muttersprachlich"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "gehaltMindestens": {
      -            "anyOf": [
      -              {
      -                "exclusiveMinimum": 0,
      -                "maximum": 9007199254740991,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "groessenAusschliessen": {
      -            "items": {
      -              "enum": [
      -                "klein",
      -                "mittel",
      -                "gross",
      -                "konzern"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "groessenNur": {
      -            "items": {
      -              "enum": [
      -                "klein",
      -                "mittel",
      -                "gross",
      -                "konzern"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "orte": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "senioritaetMindestens": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "praktikum",
      -                  "einstieg",
      -                  "junior",
      -                  "mittel",
      -                  "senior",
      -                  "lead",
      -                  "leitung"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "skills": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "umfang": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "vollzeit",
      -                  "teilzeit"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "umkreisKm": {
      -            "anyOf": [
      -              {
      -                "exclusiveMinimum": 0,
      -                "maximum": 9007199254740991,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "unscharf": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "vertragsart": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "befristet",
      -                  "unbefristet"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "zeitfensterAb": {
      -            "anyOf": [
      -              {
      -                "format": "date-time",
      -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          }
      -        },
      -        "required": [
      -          "senioritaetMindestens",
      -          "umfang",
      -          "vertragsart",
      -          "beschaeftigungsstatus",
      -          "arbeitsort",
      -          "orte",
      -          "skills",
      -          "berufsjahre",
      -          "zeitfensterAb",
      -          "deutsch",
      -          "englisch",
      -          "branchenAusschliessen",
      -          "branchenNur",
      -          "gehaltMindestens",
      -          "groessenAusschliessen",
      -          "groessenNur",
      -          "arbeitgeberAusschliessen",
      -          "arbeitgeberUngeklaert",
      -          "unscharf",
      -          "umkreisKm"
      -        ],
      -        "type": "object"
      -      },
      -      "strangId": {
      -        "format": "uuid",
      -        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -        "type": "string"
      -      },
      -      "vorgaengerId": {
      -        "anyOf": [
      -          {
      -            "format": "uuid",
      -            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "wunsch": {
      -        "anyOf": [
      -          {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "zustand": {
      -        "enum": [
      -          "offen",
      -          "geschlossen"
      -        ],
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "strangId",
      -      "vorgaengerId",
      -      "zustand",
      -      "freitext",
      -      "felder",
      -      "kriterien",
      -      "gesetzteFelder",
      -      "gewonneneFelder",
      -      "wunsch",
      -      "imZuschnitt",
      -      "angelegtAm",
      -      "auswahl"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "felder": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "ausbildung": {
      +            "default": [],
      +            "items": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "berufsbezeichnung": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "berufsjahre": {
      +            "maximum": 9007199254740991,
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "kenntnisse": {
      +            "items": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "minItems": 1,
      +            "type": "array"
      +          },
      +          "sprachen": {
      +            "default": [],
      +            "items": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "stationen": {
      +            "default": [],
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "arbeitgeber": {
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "beschreibung": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "bis": {
      +                  "anyOf": [
      +                    {
      +                      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "rolle": {
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "von": {
      +                  "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "arbeitgeber",
      +                "rolle",
      +                "von",
      +                "bis"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "studienabschluss": {
      +            "default": null,
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "berufsbezeichnung",
      +          "berufsjahre",
      +          "kenntnisse",
      +          "stationen",
      +          "ausbildung",
      +          "studienabschluss",
      +          "sprachen"
      +        ],
      +        "type": "object"
      +      },
      +      "imZuschnitt": {
      +        "description": "Whether the resume falls within the fields Jobroulette covers: IT; sales and business development; operations, strategy and projects; engineering and R&D outside IT; marketing, content and design; finance, legal and compliance; HR and recruiting. If false, tell the user that their resume does not look like any of these fields and the job matches will therefore probably not fit them; they may continue anyway.",
      +        "type": "boolean"
      +      },
      +      "wunsch": {
      +        "anyOf": [
      +          {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      }
      +    },
      +    "required": [
      +      "felder",
      +      "wunsch",
      +      "imZuschnitt"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / angelegt / description
      Previous value: -"Bei felder: der hinterlegte CV samt den fünf Stellenvorschlägen, die gelten. Ein geänderter CV ändert sie nicht; neue gibt es nur mit refresh_job_matches."New value: +"Bei felder: der hinterlegte CV. Beim ersten stehen damit fünf Stellenvorschläge bereit, get_job_matches zeigt sie. Ein geänderter CV ändert sie nicht; neue gibt es nur mit refresh_job_matches."
    • changedOutput schema / properties / entwurf / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "felder": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "ausbildung": {
      -            "default": [],
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "berufsbezeichnung": {
      -            "anyOf": [
      -              {
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "berufsjahre": {
      -            "anyOf": [
      -              {
      -                "maximum": 9007199254740991,
      -                "minimum": 0,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "kenntnisse": {
      -            "default": [],
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "sprachen": {
      -            "default": [],
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "stationen": {
      -            "default": [],
      -            "items": {
      -              "additionalProperties": false,
      -              "properties": {
      -                "arbeitgeber": {
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "beschreibung": {
      -                  "type": [
      -                    "string",
      -                    "null"
      -                  ]
      -                },
      -                "bis": {
      -                  "anyOf": [
      -                    {
      -                      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -                      "type": "string"
      -                    },
      -                    {
      -                      "type": "null"
      -                    }
      -                  ]
      -                },
      -                "rolle": {
      -                  "minLength": 1,
      -                  "type": "string"
      -                },
      -                "von": {
      -                  "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      -                  "type": "string"
      -                }
      -              },
      -              "required": [
      -                "arbeitgeber",
      -                "rolle",
      -                "von",
      -                "bis"
      -              ],
      -              "type": "object"
      -            },
      -            "type": "array"
      -          },
      -          "studienabschluss": {
      -            "default": null,
      -            "type": [
      -              "boolean",
      -              "null"
      -            ]
      -          }
      -        },
      -        "required": [
      -          "berufsbezeichnung",
      -          "berufsjahre",
      -          "kenntnisse",
      -          "stationen",
      -          "ausbildung",
      -          "studienabschluss",
      -          "sprachen"
      -        ],
      -        "type": "object"
      -      },
      -      "freitext": {
      -        "minLength": 1,
      -        "type": "string"
      -      },
      -      "gewonneneFelder": {
      -        "items": {
      -          "enum": [
      -            "berufsbezeichnung",
      -            "berufsjahre",
      -            "kenntnisse",
      -            "stationen",
      -            "ausbildung",
      -            "studienabschluss",
      -            "sprachen"
      -          ],
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "kriterien": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "arbeitgeberAusschliessen": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "arbeitgeberUngeklaert": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "arbeitsort": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "vor_ort",
      -                  "hybrid",
      -                  "fern"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "berufsjahre": {
      -            "anyOf": [
      -              {
      -                "maximum": 9007199254740991,
      -                "minimum": 0,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "beschaeftigungsstatus": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "regulaer",
      -                  "werkstudent",
      -                  "praktikum",
      -                  "ausbildung",
      -                  "freiberuflich"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "branchenAusschliessen": {
      -            "items": {
      -              "enum": [
      -                "software",
      -                "it_dienstleistung",
      -                "telekommunikation",
      -                "finanzen",
      -                "versicherung",
      -                "krypto",
      -                "handel",
      -                "konsumgueter",
      -                "gesundheit",
      -                "pharma_biotech",
      -                "industrie",
      -                "automobil",
      -                "luft_raumfahrt",
      -                "ruestung",
      -                "energie",
      -                "logistik",
      -                "immobilien_bau",
      -                "medien",
      -                "marketing",
      -                "gaming",
      -                "gluecksspiel",
      -                "beratung",
      -                "recht_steuern",
      -                "personal",
      -                "bildung_forschung",
      -                "freizeit",
      -                "oeffentlich_gemeinnuetzig"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "branchenNur": {
      -            "items": {
      -              "enum": [
      -                "software",
      -                "it_dienstleistung",
      -                "telekommunikation",
      -                "finanzen",
      -                "versicherung",
      -                "krypto",
      -                "handel",
      -                "konsumgueter",
      -                "gesundheit",
      -                "pharma_biotech",
      -                "industrie",
      -                "automobil",
      -                "luft_raumfahrt",
      -                "ruestung",
      -                "energie",
      -                "logistik",
      -                "immobilien_bau",
      -                "medien",
      -                "marketing",
      -                "gaming",
      -                "gluecksspiel",
      -                "beratung",
      -                "recht_steuern",
      -                "personal",
      -                "bildung_forschung",
      -                "freizeit",
      -                "oeffentlich_gemeinnuetzig"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "deutsch": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "grundkenntnisse",
      -                  "gut",
      -                  "fliessend",
      -                  "muttersprachlich"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "englisch": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "grundkenntnisse",
      -                  "gut",
      -                  "fliessend",
      -                  "muttersprachlich"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "gehaltMindestens": {
      -            "anyOf": [
      -              {
      -                "exclusiveMinimum": 0,
      -                "maximum": 9007199254740991,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "groessenAusschliessen": {
      -            "items": {
      -              "enum": [
      -                "klein",
      -                "mittel",
      -                "gross",
      -                "konzern"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "groessenNur": {
      -            "items": {
      -              "enum": [
      -                "klein",
      -                "mittel",
      -                "gross",
      -                "konzern"
      -              ],
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "orte": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "senioritaetMindestens": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "praktikum",
      -                  "einstieg",
      -                  "junior",
      -                  "mittel",
      -                  "senior",
      -                  "lead",
      -                  "leitung"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "skills": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "umfang": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "vollzeit",
      -                  "teilzeit"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "umkreisKm": {
      -            "anyOf": [
      -              {
      -                "exclusiveMinimum": 0,
      -                "maximum": 9007199254740991,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "unscharf": {
      -            "items": {
      -              "minLength": 1,
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "vertragsart": {
      -            "anyOf": [
      -              {
      -                "enum": [
      -                  "befristet",
      -                  "unbefristet"
      -                ],
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "zeitfensterAb": {
      -            "anyOf": [
      -              {
      -                "format": "date-time",
      -                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$",
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          }
      -        },
      -        "required": [
      -          "senioritaetMindestens",
      -          "umfang",
      -          "vertragsart",
      -          "beschaeftigungsstatus",
      -          "arbeitsort",
      -          "orte",
      -          "skills",
      -          "berufsjahre",
      -          "zeitfensterAb",
      -          "deutsch",
      -          "englisch",
      -          "branchenAusschliessen",
      -          "branchenNur",
      -          "gehaltMindestens",
      -          "groessenAusschliessen",
      -          "groessenNur",
      -          "arbeitgeberAusschliessen",
      -          "arbeitgeberUngeklaert",
      -          "unscharf",
      -          "umkreisKm"
      -        ],
      -        "type": "object"
      -      }
      -    },
      -    "required": [
      -      "freitext",
      -      "felder",
      -      "kriterien",
      -      "gewonneneFelder"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "felder": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "ausbildung": {
      +            "default": [],
      +            "items": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "berufsbezeichnung": {
      +            "anyOf": [
      +              {
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "berufsjahre": {
      +            "anyOf": [
      +              {
      +                "maximum": 9007199254740991,
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "kenntnisse": {
      +            "default": [],
      +            "items": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "sprachen": {
      +            "default": [],
      +            "items": {
      +              "minLength": 1,
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "stationen": {
      +            "default": [],
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "arbeitgeber": {
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "beschreibung": {
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "bis": {
      +                  "anyOf": [
      +                    {
      +                      "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "rolle": {
      +                  "minLength": 1,
      +                  "type": "string"
      +                },
      +                "von": {
      +                  "pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "arbeitgeber",
      +                "rolle",
      +                "von",
      +                "bis"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "studienabschluss": {
      +            "default": null,
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          }
      +        },
      +        "required": [
      +          "berufsbezeichnung",
      +          "berufsjahre",
      +          "kenntnisse",
      +          "stationen",
      +          "ausbildung",
      +          "studienabschluss",
      +          "sprachen"
      +        ],
      +        "type": "object"
      +      },
      +      "freitext": {
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "freitext",
      +      "felder"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the destructiveHint/idempotentHint annotations: the first call only reads and returns `entwurf`, but a PDF is persisted and replaces any previous document; felder is the only call that saves; re-saving updates the single per-user resume and yields no new matches. It also discloses the consent precondition and the einwilligung_fehlt failure mode, plus the imZuschnitt=false caveat, which the agent cannot learn 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.

Conciseness4/5

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

Front-loaded with the trigger, then the two-step flow, then constraints and the consent exception; each paragraph maps to a decision the agent must make. It is dense and long, with the industry list and scope string packed into the same block, but little is genuinely removable given the two-mode behavior.

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?

Covers everything an agent needs to call this multi-mode, destructive, consent-gated tool correctly: mode selection, what persists vs. what is discarded, the confirmation step, post-save match behavior, and the failure path. Return values need no explanation since an output schema and the `entwurf` reference are already given.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds real mode semantics the schema cannot express: exactly one of freitext/pdf/datei/felder per call, that freitext/pdf are read-only while felder commits, and that `wunsch` is only meaningful alongside felder. It does not restate every field's meaning, relying on the rich schema for that.

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 the specific resource (resume/CV/Lebenslauf) and the exact two-step behavior (read via freitext/pdf/datei, then save via felder) in one tool. It distinguishes itself explicitly from get_job_matches and refresh_job_matches, so an agent can place it among the siblings without opening another schema.

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

Usage Guidelines5/5

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

Gives the trigger condition ("when the user is looking for a job and shares their resume ... or wants to change the one on file") and the mandatory confirmation gate ("Never save fields the user has not seen"). It also names the correct alternatives for related goals: get_job_matches for the initial matches, refresh_job_matches when more matches are needed.

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.

Resources