recommend_jobs

Recommend jobs for a person

All MCP toolsRead

Start with this to surface jobs for a person — the matching engine's content-based recommendations: the organization's best published jobs as ranked MatchProposals with deterministic rationales. Selection is content similarity between the person's profile text and posting text ONLY — proposals are NOT filtered by the person's desired conditions (desired locations, desired salary, etc.) and may fall outside them; apply search_job_postings facets when the desired conditions must hold, or list the saved frame's postings newest-first with list_jobs_in_frame. Each proposal's candidate document renders the consent fold's answer for an employer credential — the anonymous projection (no basics) without the person's active full-disclosure grant — while a person's own credential reads their full document. A person with no indexed profile yields an empty result. Every returned proposal is logged as an impression. Occupation references in the answer carry name as the display name in the saved language of the person this call acts for (the bound person, or the person named as the one acted for on the caller's own side; a service key acting for nobody reads the connection's language) — read the id as the identity, never the name.

Input schema

{
  "type": "object",
  "properties": {
    "personId": {
      "type": "string",
      "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)$",
      "description": "Recommend jobs for this person (persons.id)."
    },
    "limit": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 50
    }
  },
  "required": [
    "personId"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Output schema

{
  "type": "object",
  "properties": {
    "proposals": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "candidate": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "schemaVersion": {
                    "type": "string",
                    "pattern": "^4\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
                    "description": "Contract version as a SemVer core triple with major locked to 4 (pattern \"4.<minor>.<patch>\", e.g. \"4.0.0\"). Minors are additive-only: they may only add optional fields. Other majors and non-SemVer strings are rejected."
                  },
                  "basics": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                        "description": "Full display name."
                      },
                      "label": {
                        "description": "Short headline, e.g. \"Web Developer\".",
                        "type": "string"
                      },
                      "summary": {
                        "description": "Short free-text biography.",
                        "type": "string"
                      },
                      "url": {
                        "description": "Personal website / homepage URL.",
                        "type": "string",
                        "format": "uri"
                      },
                      "profiles": {
                        "description": "External profile links (mirrors JSON Resume basics.profiles).",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "network": {
                              "type": "string",
                              "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                              "description": "Network / site name, e.g. \"GitHub\"."
                            },
                            "username": {
                              "description": "Username on the network.",
                              "type": "string"
                            },
                            "url": {
                              "description": "URL to the profile page.",
                              "type": "string",
                              "format": "uri"
                            }
                          },
                          "required": [
                            "network"
                          ],
                          "additionalProperties": false,
                          "description": "One external profile link (GitHub, LinkedIn, portfolio, …)."
                        }
                      },
                      "location": {
                        "description": "Current residence as ISO codes: countryCode (3166-1 alpha-2) and/or region (3166-2), at least one required; when both are present the region must belong to the country. Absent = undisclosed. Finer-grained address data (address/city/postalCode) is deliberately not modeled.",
                        "type": "object",
                        "properties": {
                          "countryCode": {
                            "description": "Residence country as ISO 3166-1 alpha-2, e.g. \"JP\".",
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          },
                          "region": {
                            "description": "Residence subdivision as ISO 3166-2, e.g. \"JP-13\" (Tokyo).",
                            "type": "string",
                            "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$"
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false,
                    "description": "Identity basics; every field is optional (an absent `name` means not entered yet)."
                  },
                  "work": {
                    "description": "Work history, one claim per employment.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Employer / organization name, e.g. \"ACME Corp\"."
                        },
                        "position": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Role title, e.g. \"Software Engineer\"."
                        },
                        "department": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Department within the organization, e.g. \"Payments Platform Division\"."
                        },
                        "team": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Team within the department, e.g. \"Billing Infrastructure Team\"."
                        },
                        "startDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Start date as ISO 8601 with optional month/day, e.g. \"2019\", \"2019-04\", or \"2019-04-01\"."
                        },
                        "endDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "End date as ISO 8601 with optional month/day; absent while the position is current."
                        },
                        "current": {
                          "description": "Currently-employed declaration: true while the position is ongoing. The write boundary requires a dated entry to carry exactly one of endDate / current: true, so an \"ended\" and an \"ongoing\" entry can never share one stored shape; stored documents that predate the field read back unchanged and self-heal to current: true on their next write.",
                          "type": "boolean"
                        },
                        "summary": {
                          "description": "Free-text overview of the responsibilities.",
                          "type": "string"
                        },
                        "highlights": {
                          "description": "Notable accomplishments in this position.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A single accomplishment."
                          }
                        },
                        "employmentType": {
                          "description": "Employment type: \"FULL_TIME\" (regular employment), \"PART_TIME\", \"CONTRACTOR\" (outsourcing / freelance), \"TEMPORARY\" (fixed-term or dispatch), or \"INTERN\". Same vocabulary as JobPosting.employmentType (schema.org / HR Open Standards aligned). Absent = undisclosed.",
                          "type": "string",
                          "enum": [
                            "FULL_TIME",
                            "PART_TIME",
                            "CONTRACTOR",
                            "TEMPORARY",
                            "INTERN"
                          ]
                        },
                        "workplaceType": {
                          "description": "Workplace type: how this engagement was worked — \"none\" (on-site), \"hybrid\", or \"full\" (fully remote). Same vocabulary as JobPosting.remote. Absent = undisclosed.",
                          "type": "string",
                          "enum": [
                            "none",
                            "hybrid",
                            "full"
                          ]
                        },
                        "location": {
                          "description": "Work location as an ISO 3166-2 subdivision code, e.g. \"JP-13\" — the same format as desiredLocations and JobPosting.jobLocation. Absent = undisclosed.",
                          "type": "string",
                          "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$"
                        },
                        "sideJob": {
                          "description": "Side-job flag: true when this engagement ran alongside a primary job, false when it was the primary engagement. Orthogonal to employmentType — freelance work as the main job is CONTRACTOR + sideJob false. Absent = undisclosed.",
                          "type": "boolean"
                        },
                        "url": {
                          "description": "URL of the organization / employer website (standard JSON Resume slot).",
                          "type": "string",
                          "format": "uri"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "position",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One work-history claim (an employment at one organization)."
                    }
                  },
                  "education": {
                    "description": "Education history, one claim per enrollment.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "institution": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "School / university name, e.g. \"University of Tokyo\"."
                        },
                        "area": {
                          "description": "Field of study, e.g. \"Computer Science\".",
                          "type": "string"
                        },
                        "studyType": {
                          "description": "Degree or program type, e.g. \"Bachelor\".",
                          "type": "string"
                        },
                        "level": {
                          "description": "Structured education level on the shared ordered ladder, least to most advanced: \"high_school\", \"associate\" (junior / technical / vocational college, KOSEN), \"bachelor\", \"master\", or \"doctorate\" — the job-side EDUCATION_LEVELS ladder without \"none\". Derived from studyType whenever the wording maps; studyType keeps the raw verbatim wording either way. Anything else is rejected.",
                          "type": "string",
                          "enum": [
                            "high_school",
                            "associate",
                            "bachelor",
                            "master",
                            "doctorate"
                          ]
                        },
                        "startDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Start date as ISO 8601 with optional month/day, e.g. \"2015\", \"2015-04\"."
                        },
                        "endDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "End date as ISO 8601 with optional month/day; absent while enrolled."
                        },
                        "current": {
                          "description": "Currently-enrolled declaration: true while the enrollment is ongoing. Same write-boundary rule as work — a dated entry carries exactly one of endDate / current: true; predating stored documents read back unchanged and self-heal on write.",
                          "type": "boolean"
                        },
                        "score": {
                          "description": "Grade / GPA as free text, e.g. \"3.67/4.0\".",
                          "type": "string"
                        },
                        "courses": {
                          "description": "Notable courses/subjects taken.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A notable course or subject."
                          }
                        },
                        "url": {
                          "description": "URL of the institution website (standard JSON Resume slot).",
                          "type": "string",
                          "format": "uri"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "institution",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One education-history claim (an enrollment at one institution)."
                    }
                  },
                  "skills": {
                    "description": "Skill claims, one raw verbatim skill per element.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Raw verbatim skill string exactly as stated (trimmed only): one skill per element, never split on commas or slashes, never normalized away."
                        },
                        "proficiency": {
                          "type": "object",
                          "properties": {
                            "scale": {
                              "type": "string",
                              "const": "mw7",
                              "description": "Proficiency scale identifier; only \"mw7\" (matchwire's neutral 7-level responsibility ladder) is defined."
                            },
                            "level": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 7,
                              "description": "Integer 1-7 on the mw7 ladder: 1 follow, 2 assist, 3 apply, 4 enable, 5 advise, 6 initiate, 7 set strategy. Values outside 1-7 are rejected."
                            }
                          },
                          "required": [
                            "scale",
                            "level"
                          ],
                          "additionalProperties": false,
                          "description": "Structured proficiency: { scale: \"mw7\", level: 1-7 }."
                        },
                        "keywords": {
                          "description": "Free-form keywords pertaining to this skill.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "Free-form keyword related to this skill."
                          }
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "A single skill claim with the raw verbatim name and optional structured proficiency."
                    }
                  },
                  "languages": {
                    "description": "Language abilities: coded language × common fluency tier.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "language": {
                          "type": "string",
                          "enum": [
                            "aa",
                            "ab",
                            "ae",
                            "af",
                            "ak",
                            "am",
                            "an",
                            "ar",
                            "as",
                            "av",
                            "ay",
                            "az",
                            "ba",
                            "be",
                            "bg",
                            "bi",
                            "bm",
                            "bn",
                            "bo",
                            "br",
                            "bs",
                            "ca",
                            "ce",
                            "ch",
                            "co",
                            "cr",
                            "cs",
                            "cu",
                            "cv",
                            "cy",
                            "da",
                            "de",
                            "dv",
                            "dz",
                            "ee",
                            "el",
                            "en",
                            "eo",
                            "es",
                            "et",
                            "eu",
                            "fa",
                            "ff",
                            "fi",
                            "fj",
                            "fo",
                            "fr",
                            "fy",
                            "ga",
                            "gd",
                            "gl",
                            "gn",
                            "gu",
                            "gv",
                            "ha",
                            "he",
                            "hi",
                            "ho",
                            "hr",
                            "ht",
                            "hu",
                            "hy",
                            "hz",
                            "ia",
                            "id",
                            "ie",
                            "ig",
                            "ii",
                            "ik",
                            "io",
                            "is",
                            "it",
                            "iu",
                            "ja",
                            "jv",
                            "ka",
                            "kg",
                            "ki",
                            "kj",
                            "kk",
                            "kl",
                            "km",
                            "kn",
                            "ko",
                            "kr",
                            "ks",
                            "ku",
                            "kv",
                            "kw",
                            "ky",
                            "la",
                            "lb",
                            "lg",
                            "li",
                            "ln",
                            "lo",
                            "lt",
                            "lu",
                            "lv",
                            "mg",
                            "mh",
                            "mi",
                            "mk",
                            "ml",
                            "mn",
                            "mr",
                            "ms",
                            "mt",
                            "my",
                            "na",
                            "nan",
                            "nb",
                            "nd",
                            "ne",
                            "ng",
                            "nl",
                            "nn",
                            "no",
                            "nr",
                            "nv",
                            "ny",
                            "oc",
                            "oj",
                            "om",
                            "or",
                            "os",
                            "pa",
                            "pi",
                            "pl",
                            "ps",
                            "pt",
                            "qu",
                            "rm",
                            "rn",
                            "ro",
                            "ru",
                            "rw",
                            "sa",
                            "sc",
                            "sd",
                            "se",
                            "sg",
                            "si",
                            "sk",
                            "sl",
                            "sm",
                            "sn",
                            "so",
                            "sq",
                            "sr",
                            "ss",
                            "st",
                            "su",
                            "sv",
                            "sw",
                            "ta",
                            "te",
                            "tg",
                            "th",
                            "ti",
                            "tk",
                            "tl",
                            "tn",
                            "to",
                            "tr",
                            "ts",
                            "tt",
                            "tw",
                            "ty",
                            "ug",
                            "uk",
                            "ur",
                            "uz",
                            "ve",
                            "vi",
                            "vo",
                            "wa",
                            "wo",
                            "xh",
                            "yi",
                            "yo",
                            "yue",
                            "za",
                            "zh",
                            "zu"
                          ],
                          "description": "Language code from the closed vocabulary: ISO 639-1 two-letter codes plus the allowlist \"yue\" (Cantonese) and \"nan\" (Taiwanese Hokkien), e.g. \"ja\", \"en\", \"zh\". Language names, unassigned codes, region-qualified tags (\"zh-TW\"), and uppercase are rejected."
                        },
                        "fluency": {
                          "description": "Common self-assessed fluency tier, least to most proficient: \"basic\" (basic conversation), \"daily\" (daily conversation), \"business\" (business conversation), \"fluent\", or \"native\". Anything else (free text, CEFR grades, JLPT ranks) is rejected — test results belong in certificates.",
                          "type": "string",
                          "enum": [
                            "basic",
                            "daily",
                            "business",
                            "fluent",
                            "native"
                          ]
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "language",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "A language ability claim: a language code from the closed vocabulary plus the common self-assessed fluency tier. Framework grades (CEFR) and test ranks (JLPT) are not level keys — a rank is a credential and belongs in certificates (ADR-0174)."
                    }
                  },
                  "certificates": {
                    "description": "Certification claims.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Certificate name, e.g. \"AWS SAA\" or \"PMP\"."
                        },
                        "date": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Date awarded as ISO 8601 with optional month/day."
                        },
                        "expiresAt": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Expiration date as ISO 8601 with optional month/day; absent when the certification does not expire or the expiry is unknown."
                        },
                        "issuer": {
                          "description": "Issuing organization, e.g. \"IPA\".",
                          "type": "string"
                        },
                        "credentialId": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Issuer-assigned credential / license number as printed on the credential, e.g. \"AP-2016-10-12345\"."
                        },
                        "url": {
                          "description": "URL to the certificate or issuer page.",
                          "type": "string",
                          "format": "uri"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One certification claim."
                    }
                  },
                  "awards": {
                    "description": "Award claims.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "title": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Award title, e.g. \"CEO Award\"."
                        },
                        "date": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Date awarded as ISO 8601 with optional month/day."
                        },
                        "awarder": {
                          "description": "Who granted the award.",
                          "type": "string"
                        },
                        "summary": {
                          "description": "What the award was received for.",
                          "type": "string"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "title",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One award claim."
                    }
                  },
                  "publications": {
                    "description": "Publication claims (books, articles, papers, talks).",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Publication title, e.g. \"Scaling Payment Infrastructure in Practice\"."
                        },
                        "publisher": {
                          "description": "Publisher / venue, e.g. \"O'Reilly\".",
                          "type": "string"
                        },
                        "releaseDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Release date as ISO 8601 with optional month/day."
                        },
                        "url": {
                          "description": "URL to the publication.",
                          "type": "string",
                          "format": "uri"
                        },
                        "summary": {
                          "description": "Short free-text description of the publication.",
                          "type": "string"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One publication claim (an authored book, article, paper, or talk write-up)."
                    }
                  },
                  "projects": {
                    "description": "Project claims (OSS, side projects, notable engagements).",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Project name, e.g. \"matchwire\" or \"internal auth platform renewal\"."
                        },
                        "description": {
                          "description": "Short free-text summary of the project.",
                          "type": "string"
                        },
                        "highlights": {
                          "description": "Notable accomplishments on this project.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A single accomplishment."
                          }
                        },
                        "keywords": {
                          "description": "Keywords (technologies, themes) pertaining to this project.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A technology or theme related to this project."
                          }
                        },
                        "startDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Start date as ISO 8601 with optional month/day, e.g. \"2023\", \"2023-04\"."
                        },
                        "endDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "End date as ISO 8601 with optional month/day; absent while the project is ongoing."
                        },
                        "url": {
                          "description": "URL to the project (repository, product page, …).",
                          "type": "string",
                          "format": "uri"
                        },
                        "roles": {
                          "description": "Roles held on this project, e.g. [\"Maintainer\", \"Team Lead\"].",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A role held on this project."
                          }
                        },
                        "entity": {
                          "description": "Entity the project belongs to, e.g. an employer or community name.",
                          "type": "string"
                        },
                        "type": {
                          "description": "Free-text project type, e.g. \"application\", \"library\", \"volunteering\".",
                          "type": "string"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One project claim (OSS, side project, or notable engagement)."
                    }
                  },
                  "volunteer": {
                    "description": "Volunteer-work claims, one per engagement.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "organization": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Organization name, e.g. \"Code for Japan\"."
                        },
                        "position": {
                          "description": "Role title, e.g. \"Organizer\".",
                          "type": "string"
                        },
                        "url": {
                          "description": "URL of the organization website.",
                          "type": "string",
                          "format": "uri"
                        },
                        "startDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Start date as ISO 8601 with optional month/day, e.g. \"2021\", \"2021-04\"."
                        },
                        "endDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "End date as ISO 8601 with optional month/day; absent while the engagement is current."
                        },
                        "summary": {
                          "description": "Free-text overview of the volunteer work.",
                          "type": "string"
                        },
                        "highlights": {
                          "description": "Notable accomplishments in this engagement.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A single accomplishment."
                          }
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "organization",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One volunteer-work claim (an engagement at one organization)."
                    }
                  },
                  "interests": {
                    "description": "Interest claims (topics and causes).",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Interest name, e.g. \"distributed systems\" or \"Generative AI\"."
                        },
                        "keywords": {
                          "description": "Free-form keywords pertaining to this interest.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A free-form keyword related to this interest."
                          }
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One interest claim (a topic or cause the candidate cares about)."
                    }
                  },
                  "desiredSalaries": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z]{3}$",
                          "description": "ISO 4217 currency code (exactly three uppercase letters). Required — no default."
                        },
                        "min": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991,
                          "description": "Desired annual lower bound in raw currency units (non-negative integer). Required — a row without a lower bound does not exist in the contract."
                        },
                        "max": {
                          "description": "Optional annual upper bound in raw currency units; the posting↔row match never reads it, while the shared internal candidate facet fold reads it as the row's upper bound. Must be >= min when present.",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "unit": {
                          "default": "YEAR",
                          "description": "Salary period unit; rows are always annual (\"YEAR\").",
                          "type": "string",
                          "const": "YEAR"
                        }
                      },
                      "required": [
                        "currency",
                        "min",
                        "unit"
                      ],
                      "additionalProperties": false,
                      "description": "One per-currency desired-salary lower-bound row (annual): matching is strict against postings in this row's currency only — never converted, never compared across currencies."
                    },
                    "description": "Desired salaries: per-currency annual lower-bound rows, one row per currency. An EMPTY array means \"no salary condition\"."
                  },
                  "currentSalary": {
                    "type": "object",
                    "properties": {
                      "currency": {
                        "default": "JPY",
                        "description": "ISO 4217 currency code (exactly three uppercase letters). Defaults to \"JPY\".",
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "amount": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991,
                        "description": "Current annual salary as a non-negative integer in `currency`."
                      },
                      "provenance": {
                        "default": "provided",
                        "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                        "type": "string",
                        "enum": [
                          "provided",
                          "observed",
                          "inferred"
                        ]
                      }
                    },
                    "required": [
                      "currency",
                      "amount",
                      "provenance"
                    ],
                    "additionalProperties": false,
                    "description": "Current annual salary: a non-negative integer amount in an ISO 4217 currency."
                  },
                  "mobility": {
                    "description": "Mobility: the ordered 3-level job-change intent (\"not_looking\" < \"open_to_move\" < \"actively_looking\"), edited only on /conditions (ADR-0084). Side-job interest is the separate sideJobDesire axis, never a mobility value; the write choke moves a residual side-job value onto that axis (normalizeMobility).",
                    "type": "string",
                    "enum": [
                      "not_looking",
                      "open_to_move",
                      "actively_looking"
                    ]
                  },
                  "sideJobDesire": {
                    "type": "string",
                    "enum": [
                      "not_open",
                      "open"
                    ],
                    "description": "Side-job desire: \"open\" or \"not_open\". Orthogonal to mobility."
                  },
                  "openToWork": {
                    "description": "Open-to-work: whether intent fields may surface to non-self viewers. Absent means false, deny-by-default (never captured). DERIVED from mobility (ADR-0084): the write chokes normalize it to deriveOpenToWork — true iff mobility is \"open_to_move\" or above — so it is never an independent preference.",
                    "type": "boolean"
                  },
                  "availability": {
                    "type": "object",
                    "properties": {
                      "earliestStartDate": {
                        "type": "string",
                        "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                        "description": "Earliest start date as ISO 8601 with optional month/day, e.g. \"2026-10\" or \"2026-10-01\"."
                      },
                      "weeklyHours": {
                        "description": "Available hours per week as a positive integer.",
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "additionalProperties": false,
                    "description": "Availability window: earliest start date and weekly available hours (both optional)."
                  },
                  "desiredLocations": {
                    "description": "Desired work locations: a mixed list of whole countries (ISO 3166-1 alpha-2, e.g. \"US\") and/or regions (ISO 3166-2 subdivisions, e.g. \"JP-13\"), e.g. [\"US\", \"JP-13\"], at least one (an EMPTY array is rejected — absent is the one spelling of \"not yet set\", and a person with no desired locations enters no new matching).",
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^[A-Z]{2}$",
                          "description": "ISO 3166-1 alpha-2 country code: exactly two uppercase letters, e.g. \"JP\". Three-letter codes (\"JPN\"), subdivision codes (\"JP-13\"), country names, and lowercase are rejected."
                        },
                        {
                          "type": "string",
                          "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$",
                          "description": "ISO 3166-2 subdivision code: two uppercase letters, a hyphen, then 1-3 uppercase alphanumerics, e.g. \"JP-13\" (Tokyo). Country-only codes (\"JP\"), place names, and lowercase are rejected."
                        }
                      ],
                      "description": "Desired-location entry: a whole country as an ISO 3166-1 alpha-2 code (e.g. \"US\") or one region as an ISO 3166-2 subdivision code (e.g. \"JP-13\"). Names, lowercase, and three-letter codes are rejected."
                    }
                  },
                  "desiredOccupations": {
                    "description": "Desired occupations: references { id, name? } to occupation rows, unique by id, in the order stated. An EMPTY array means \"not limiting by occupation\" — same meaning as absent (the desiredLocations posture).",
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "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)$",
                          "description": "The occupation's number (an `occupations` row) — the identity predicates count on."
                        },
                        "name": {
                          "description": "The row's display name in the reader's language, added when a read answers (trimmed, non-empty). Optional on a write and never stored — a stored reference carries the number alone.",
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$"
                        }
                      },
                      "required": [
                        "id"
                      ],
                      "additionalProperties": false,
                      "description": "Occupation reference: { id, name? } — the row's number, plus the display name a read adds in the reader's language (a write may carry one; it is not stored)."
                    }
                  },
                  "desiredOfficeFrequency": {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "string",
                        "enum": [
                          "remote_only",
                          "office_monthly",
                          "office_1_2_days",
                          "office_3_4_days",
                          "office_daily_remote_ok",
                          "office_daily"
                        ],
                        "description": "The most remote-leaning end of the accepted range (inclusive)."
                      },
                      "max": {
                        "type": "string",
                        "enum": [
                          "remote_only",
                          "office_monthly",
                          "office_1_2_days",
                          "office_3_4_days",
                          "office_daily_remote_ok",
                          "office_daily"
                        ],
                        "description": "The most office-leaning end of the accepted range (inclusive)."
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false,
                    "description": "Desired office frequency: the accepted CONTIGUOUS range on the ordered 6-level office-frequency scale, given by its two ends — min = most remote-leaning, max = most office-leaning, both inclusive. Absent = no constraint on this axis."
                  },
                  "desiredEmploymentTypes": {
                    "minItems": 1,
                    "maxItems": 5,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "FULL_TIME",
                        "PART_TIME",
                        "CONTRACTOR",
                        "TEMPORARY",
                        "INTERN"
                      ],
                      "description": "Employment type (schema.org vocabulary): \"FULL_TIME\", \"PART_TIME\", \"CONTRACTOR\", \"TEMPORARY\", or \"INTERN\". Other values are rejected."
                    },
                    "description": "Desired employment types: the employment forms the person accepts when moving to a new primary job, from the shared vocabulary (\"FULL_TIME\", \"PART_TIME\", \"CONTRACTOR\", \"TEMPORARY\", \"INTERN\"), unique, in the order stated, at least one (an EMPTY array is rejected — \"not limiting\" is spelled by selecting every form). A mobility-dependent axis: while mobility is \"not_looking\" the value is not used for matching (it is retained). Orthogonal to sideJobDesire: the side-job axis stays binary and never carries a form."
                  }
                },
                "required": [
                  "schemaVersion",
                  "basics"
                ],
                "additionalProperties": false,
                "description": "Canonical matchwire candidate profile (strict at every nesting level; unknown keys rejected). Versioned via schemaVersion; JSON Resume and other standards are boundary formats behind projectors."
              },
              {
                "type": "object",
                "properties": {
                  "schemaVersion": {
                    "type": "string",
                    "pattern": "^4\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
                    "description": "Contract version as a SemVer core triple with major locked to 4 (pattern \"4.<minor>.<patch>\", e.g. \"4.0.0\"). Minors are additive-only: they may only add optional fields. Other majors and non-SemVer strings are rejected."
                  },
                  "work": {
                    "description": "Work history, one claim per employment.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Employer / organization name, e.g. \"ACME Corp\"."
                        },
                        "position": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Role title, e.g. \"Software Engineer\"."
                        },
                        "department": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Department within the organization, e.g. \"Payments Platform Division\"."
                        },
                        "team": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Team within the department, e.g. \"Billing Infrastructure Team\"."
                        },
                        "startDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Start date as ISO 8601 with optional month/day, e.g. \"2019\", \"2019-04\", or \"2019-04-01\"."
                        },
                        "endDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "End date as ISO 8601 with optional month/day; absent while the position is current."
                        },
                        "current": {
                          "description": "Currently-employed declaration: true while the position is ongoing. The write boundary requires a dated entry to carry exactly one of endDate / current: true, so an \"ended\" and an \"ongoing\" entry can never share one stored shape; stored documents that predate the field read back unchanged and self-heal to current: true on their next write.",
                          "type": "boolean"
                        },
                        "summary": {
                          "description": "Free-text overview of the responsibilities.",
                          "type": "string"
                        },
                        "highlights": {
                          "description": "Notable accomplishments in this position.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A single accomplishment."
                          }
                        },
                        "employmentType": {
                          "description": "Employment type: \"FULL_TIME\" (regular employment), \"PART_TIME\", \"CONTRACTOR\" (outsourcing / freelance), \"TEMPORARY\" (fixed-term or dispatch), or \"INTERN\". Same vocabulary as JobPosting.employmentType (schema.org / HR Open Standards aligned). Absent = undisclosed.",
                          "type": "string",
                          "enum": [
                            "FULL_TIME",
                            "PART_TIME",
                            "CONTRACTOR",
                            "TEMPORARY",
                            "INTERN"
                          ]
                        },
                        "workplaceType": {
                          "description": "Workplace type: how this engagement was worked — \"none\" (on-site), \"hybrid\", or \"full\" (fully remote). Same vocabulary as JobPosting.remote. Absent = undisclosed.",
                          "type": "string",
                          "enum": [
                            "none",
                            "hybrid",
                            "full"
                          ]
                        },
                        "location": {
                          "description": "Work location as an ISO 3166-2 subdivision code, e.g. \"JP-13\" — the same format as desiredLocations and JobPosting.jobLocation. Absent = undisclosed.",
                          "type": "string",
                          "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$"
                        },
                        "sideJob": {
                          "description": "Side-job flag: true when this engagement ran alongside a primary job, false when it was the primary engagement. Orthogonal to employmentType — freelance work as the main job is CONTRACTOR + sideJob false. Absent = undisclosed.",
                          "type": "boolean"
                        },
                        "url": {
                          "description": "URL of the organization / employer website (standard JSON Resume slot).",
                          "type": "string",
                          "format": "uri"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "position",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One work-history claim (an employment at one organization)."
                    }
                  },
                  "education": {
                    "description": "Education history, one claim per enrollment.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "institution": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "School / university name, e.g. \"University of Tokyo\"."
                        },
                        "area": {
                          "description": "Field of study, e.g. \"Computer Science\".",
                          "type": "string"
                        },
                        "studyType": {
                          "description": "Degree or program type, e.g. \"Bachelor\".",
                          "type": "string"
                        },
                        "level": {
                          "description": "Structured education level on the shared ordered ladder, least to most advanced: \"high_school\", \"associate\" (junior / technical / vocational college, KOSEN), \"bachelor\", \"master\", or \"doctorate\" — the job-side EDUCATION_LEVELS ladder without \"none\". Derived from studyType whenever the wording maps; studyType keeps the raw verbatim wording either way. Anything else is rejected.",
                          "type": "string",
                          "enum": [
                            "high_school",
                            "associate",
                            "bachelor",
                            "master",
                            "doctorate"
                          ]
                        },
                        "startDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Start date as ISO 8601 with optional month/day, e.g. \"2015\", \"2015-04\"."
                        },
                        "endDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "End date as ISO 8601 with optional month/day; absent while enrolled."
                        },
                        "current": {
                          "description": "Currently-enrolled declaration: true while the enrollment is ongoing. Same write-boundary rule as work — a dated entry carries exactly one of endDate / current: true; predating stored documents read back unchanged and self-heal on write.",
                          "type": "boolean"
                        },
                        "score": {
                          "description": "Grade / GPA as free text, e.g. \"3.67/4.0\".",
                          "type": "string"
                        },
                        "courses": {
                          "description": "Notable courses/subjects taken.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A notable course or subject."
                          }
                        },
                        "url": {
                          "description": "URL of the institution website (standard JSON Resume slot).",
                          "type": "string",
                          "format": "uri"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "institution",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One education-history claim (an enrollment at one institution)."
                    }
                  },
                  "skills": {
                    "description": "Skill claims, one raw verbatim skill per element.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Raw verbatim skill string exactly as stated (trimmed only): one skill per element, never split on commas or slashes, never normalized away."
                        },
                        "proficiency": {
                          "type": "object",
                          "properties": {
                            "scale": {
                              "type": "string",
                              "const": "mw7",
                              "description": "Proficiency scale identifier; only \"mw7\" (matchwire's neutral 7-level responsibility ladder) is defined."
                            },
                            "level": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 7,
                              "description": "Integer 1-7 on the mw7 ladder: 1 follow, 2 assist, 3 apply, 4 enable, 5 advise, 6 initiate, 7 set strategy. Values outside 1-7 are rejected."
                            }
                          },
                          "required": [
                            "scale",
                            "level"
                          ],
                          "additionalProperties": false,
                          "description": "Structured proficiency: { scale: \"mw7\", level: 1-7 }."
                        },
                        "keywords": {
                          "description": "Free-form keywords pertaining to this skill.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "Free-form keyword related to this skill."
                          }
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "A single skill claim with the raw verbatim name and optional structured proficiency."
                    }
                  },
                  "languages": {
                    "description": "Language abilities: coded language × common fluency tier.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "language": {
                          "type": "string",
                          "enum": [
                            "aa",
                            "ab",
                            "ae",
                            "af",
                            "ak",
                            "am",
                            "an",
                            "ar",
                            "as",
                            "av",
                            "ay",
                            "az",
                            "ba",
                            "be",
                            "bg",
                            "bi",
                            "bm",
                            "bn",
                            "bo",
                            "br",
                            "bs",
                            "ca",
                            "ce",
                            "ch",
                            "co",
                            "cr",
                            "cs",
                            "cu",
                            "cv",
                            "cy",
                            "da",
                            "de",
                            "dv",
                            "dz",
                            "ee",
                            "el",
                            "en",
                            "eo",
                            "es",
                            "et",
                            "eu",
                            "fa",
                            "ff",
                            "fi",
                            "fj",
                            "fo",
                            "fr",
                            "fy",
                            "ga",
                            "gd",
                            "gl",
                            "gn",
                            "gu",
                            "gv",
                            "ha",
                            "he",
                            "hi",
                            "ho",
                            "hr",
                            "ht",
                            "hu",
                            "hy",
                            "hz",
                            "ia",
                            "id",
                            "ie",
                            "ig",
                            "ii",
                            "ik",
                            "io",
                            "is",
                            "it",
                            "iu",
                            "ja",
                            "jv",
                            "ka",
                            "kg",
                            "ki",
                            "kj",
                            "kk",
                            "kl",
                            "km",
                            "kn",
                            "ko",
                            "kr",
                            "ks",
                            "ku",
                            "kv",
                            "kw",
                            "ky",
                            "la",
                            "lb",
                            "lg",
                            "li",
                            "ln",
                            "lo",
                            "lt",
                            "lu",
                            "lv",
                            "mg",
                            "mh",
                            "mi",
                            "mk",
                            "ml",
                            "mn",
                            "mr",
                            "ms",
                            "mt",
                            "my",
                            "na",
                            "nan",
                            "nb",
                            "nd",
                            "ne",
                            "ng",
                            "nl",
                            "nn",
                            "no",
                            "nr",
                            "nv",
                            "ny",
                            "oc",
                            "oj",
                            "om",
                            "or",
                            "os",
                            "pa",
                            "pi",
                            "pl",
                            "ps",
                            "pt",
                            "qu",
                            "rm",
                            "rn",
                            "ro",
                            "ru",
                            "rw",
                            "sa",
                            "sc",
                            "sd",
                            "se",
                            "sg",
                            "si",
                            "sk",
                            "sl",
                            "sm",
                            "sn",
                            "so",
                            "sq",
                            "sr",
                            "ss",
                            "st",
                            "su",
                            "sv",
                            "sw",
                            "ta",
                            "te",
                            "tg",
                            "th",
                            "ti",
                            "tk",
                            "tl",
                            "tn",
                            "to",
                            "tr",
                            "ts",
                            "tt",
                            "tw",
                            "ty",
                            "ug",
                            "uk",
                            "ur",
                            "uz",
                            "ve",
                            "vi",
                            "vo",
                            "wa",
                            "wo",
                            "xh",
                            "yi",
                            "yo",
                            "yue",
                            "za",
                            "zh",
                            "zu"
                          ],
                          "description": "Language code from the closed vocabulary: ISO 639-1 two-letter codes plus the allowlist \"yue\" (Cantonese) and \"nan\" (Taiwanese Hokkien), e.g. \"ja\", \"en\", \"zh\". Language names, unassigned codes, region-qualified tags (\"zh-TW\"), and uppercase are rejected."
                        },
                        "fluency": {
                          "description": "Common self-assessed fluency tier, least to most proficient: \"basic\" (basic conversation), \"daily\" (daily conversation), \"business\" (business conversation), \"fluent\", or \"native\". Anything else (free text, CEFR grades, JLPT ranks) is rejected — test results belong in certificates.",
                          "type": "string",
                          "enum": [
                            "basic",
                            "daily",
                            "business",
                            "fluent",
                            "native"
                          ]
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "language",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "A language ability claim: a language code from the closed vocabulary plus the common self-assessed fluency tier. Framework grades (CEFR) and test ranks (JLPT) are not level keys — a rank is a credential and belongs in certificates (ADR-0174)."
                    }
                  },
                  "certificates": {
                    "description": "Certification claims.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Certificate name, e.g. \"AWS SAA\" or \"PMP\"."
                        },
                        "date": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Date awarded as ISO 8601 with optional month/day."
                        },
                        "expiresAt": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Expiration date as ISO 8601 with optional month/day; absent when the certification does not expire or the expiry is unknown."
                        },
                        "issuer": {
                          "description": "Issuing organization, e.g. \"IPA\".",
                          "type": "string"
                        },
                        "credentialId": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Issuer-assigned credential / license number as printed on the credential, e.g. \"AP-2016-10-12345\"."
                        },
                        "url": {
                          "description": "URL to the certificate or issuer page.",
                          "type": "string",
                          "format": "uri"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One certification claim."
                    }
                  },
                  "awards": {
                    "description": "Award claims.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "title": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Award title, e.g. \"CEO Award\"."
                        },
                        "date": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Date awarded as ISO 8601 with optional month/day."
                        },
                        "awarder": {
                          "description": "Who granted the award.",
                          "type": "string"
                        },
                        "summary": {
                          "description": "What the award was received for.",
                          "type": "string"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "title",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One award claim."
                    }
                  },
                  "publications": {
                    "description": "Publication claims (books, articles, papers, talks).",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Publication title, e.g. \"Scaling Payment Infrastructure in Practice\"."
                        },
                        "publisher": {
                          "description": "Publisher / venue, e.g. \"O'Reilly\".",
                          "type": "string"
                        },
                        "releaseDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Release date as ISO 8601 with optional month/day."
                        },
                        "url": {
                          "description": "URL to the publication.",
                          "type": "string",
                          "format": "uri"
                        },
                        "summary": {
                          "description": "Short free-text description of the publication.",
                          "type": "string"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One publication claim (an authored book, article, paper, or talk write-up)."
                    }
                  },
                  "projects": {
                    "description": "Project claims (OSS, side projects, notable engagements).",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Project name, e.g. \"matchwire\" or \"internal auth platform renewal\"."
                        },
                        "description": {
                          "description": "Short free-text summary of the project.",
                          "type": "string"
                        },
                        "highlights": {
                          "description": "Notable accomplishments on this project.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A single accomplishment."
                          }
                        },
                        "keywords": {
                          "description": "Keywords (technologies, themes) pertaining to this project.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A technology or theme related to this project."
                          }
                        },
                        "startDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Start date as ISO 8601 with optional month/day, e.g. \"2023\", \"2023-04\"."
                        },
                        "endDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "End date as ISO 8601 with optional month/day; absent while the project is ongoing."
                        },
                        "url": {
                          "description": "URL to the project (repository, product page, …).",
                          "type": "string",
                          "format": "uri"
                        },
                        "roles": {
                          "description": "Roles held on this project, e.g. [\"Maintainer\", \"Team Lead\"].",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A role held on this project."
                          }
                        },
                        "entity": {
                          "description": "Entity the project belongs to, e.g. an employer or community name.",
                          "type": "string"
                        },
                        "type": {
                          "description": "Free-text project type, e.g. \"application\", \"library\", \"volunteering\".",
                          "type": "string"
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One project claim (OSS, side project, or notable engagement)."
                    }
                  },
                  "volunteer": {
                    "description": "Volunteer-work claims, one per engagement.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "organization": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Organization name, e.g. \"Code for Japan\"."
                        },
                        "position": {
                          "description": "Role title, e.g. \"Organizer\".",
                          "type": "string"
                        },
                        "url": {
                          "description": "URL of the organization website.",
                          "type": "string",
                          "format": "uri"
                        },
                        "startDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "Start date as ISO 8601 with optional month/day, e.g. \"2021\", \"2021-04\"."
                        },
                        "endDate": {
                          "type": "string",
                          "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                          "description": "End date as ISO 8601 with optional month/day; absent while the engagement is current."
                        },
                        "summary": {
                          "description": "Free-text overview of the volunteer work.",
                          "type": "string"
                        },
                        "highlights": {
                          "description": "Notable accomplishments in this engagement.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A single accomplishment."
                          }
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "organization",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One volunteer-work claim (an engagement at one organization)."
                    }
                  },
                  "interests": {
                    "description": "Interest claims (topics and causes).",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                          "description": "Interest name, e.g. \"distributed systems\" or \"Generative AI\"."
                        },
                        "keywords": {
                          "description": "Free-form keywords pertaining to this interest.",
                          "type": "array",
                          "items": {
                            "type": "string",
                            "description": "A free-form keyword related to this interest."
                          }
                        },
                        "provenance": {
                          "default": "provided",
                          "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                          "type": "string",
                          "enum": [
                            "provided",
                            "observed",
                            "inferred"
                          ]
                        }
                      },
                      "required": [
                        "name",
                        "provenance"
                      ],
                      "additionalProperties": false,
                      "description": "One interest claim (a topic or cause the candidate cares about)."
                    }
                  },
                  "desiredSalaries": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z]{3}$",
                          "description": "ISO 4217 currency code (exactly three uppercase letters). Required — no default."
                        },
                        "min": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991,
                          "description": "Desired annual lower bound in raw currency units (non-negative integer). Required — a row without a lower bound does not exist in the contract."
                        },
                        "max": {
                          "description": "Optional annual upper bound in raw currency units; the posting↔row match never reads it, while the shared internal candidate facet fold reads it as the row's upper bound. Must be >= min when present.",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "unit": {
                          "default": "YEAR",
                          "description": "Salary period unit; rows are always annual (\"YEAR\").",
                          "type": "string",
                          "const": "YEAR"
                        }
                      },
                      "required": [
                        "currency",
                        "min",
                        "unit"
                      ],
                      "additionalProperties": false,
                      "description": "One per-currency desired-salary lower-bound row (annual): matching is strict against postings in this row's currency only — never converted, never compared across currencies."
                    },
                    "description": "Desired salaries: per-currency annual lower-bound rows, one row per currency. An EMPTY array means \"no salary condition\"."
                  },
                  "currentSalary": {
                    "type": "object",
                    "properties": {
                      "currency": {
                        "default": "JPY",
                        "description": "ISO 4217 currency code (exactly three uppercase letters). Defaults to \"JPY\".",
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "amount": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991,
                        "description": "Current annual salary as a non-negative integer in `currency`."
                      },
                      "provenance": {
                        "default": "provided",
                        "description": "How this claim entered the system: \"provided\" (self-reported, the default), \"observed\", or \"inferred\". Verification is orthogonal and lives in verification_annotations, never inside the profile.",
                        "type": "string",
                        "enum": [
                          "provided",
                          "observed",
                          "inferred"
                        ]
                      }
                    },
                    "required": [
                      "currency",
                      "amount",
                      "provenance"
                    ],
                    "additionalProperties": false,
                    "description": "Current annual salary: a non-negative integer amount in an ISO 4217 currency."
                  },
                  "mobility": {
                    "description": "Mobility: the ordered 3-level job-change intent (\"not_looking\" < \"open_to_move\" < \"actively_looking\"), edited only on /conditions (ADR-0084). Side-job interest is the separate sideJobDesire axis, never a mobility value; the write choke moves a residual side-job value onto that axis (normalizeMobility).",
                    "type": "string",
                    "enum": [
                      "not_looking",
                      "open_to_move",
                      "actively_looking"
                    ]
                  },
                  "sideJobDesire": {
                    "type": "string",
                    "enum": [
                      "not_open",
                      "open"
                    ],
                    "description": "Side-job desire: \"open\" or \"not_open\". Orthogonal to mobility."
                  },
                  "openToWork": {
                    "description": "Open-to-work: whether intent fields may surface to non-self viewers. Absent means false, deny-by-default (never captured). DERIVED from mobility (ADR-0084): the write chokes normalize it to deriveOpenToWork — true iff mobility is \"open_to_move\" or above — so it is never an independent preference.",
                    "type": "boolean"
                  },
                  "availability": {
                    "type": "object",
                    "properties": {
                      "earliestStartDate": {
                        "type": "string",
                        "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$",
                        "description": "Earliest start date as ISO 8601 with optional month/day, e.g. \"2026-10\" or \"2026-10-01\"."
                      },
                      "weeklyHours": {
                        "description": "Available hours per week as a positive integer.",
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      }
                    },
                    "additionalProperties": false,
                    "description": "Availability window: earliest start date and weekly available hours (both optional)."
                  },
                  "desiredLocations": {
                    "description": "Desired work locations: a mixed list of whole countries (ISO 3166-1 alpha-2, e.g. \"US\") and/or regions (ISO 3166-2 subdivisions, e.g. \"JP-13\"), e.g. [\"US\", \"JP-13\"], at least one (an EMPTY array is rejected — absent is the one spelling of \"not yet set\", and a person with no desired locations enters no new matching).",
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^[A-Z]{2}$",
                          "description": "ISO 3166-1 alpha-2 country code: exactly two uppercase letters, e.g. \"JP\". Three-letter codes (\"JPN\"), subdivision codes (\"JP-13\"), country names, and lowercase are rejected."
                        },
                        {
                          "type": "string",
                          "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$",
                          "description": "ISO 3166-2 subdivision code: two uppercase letters, a hyphen, then 1-3 uppercase alphanumerics, e.g. \"JP-13\" (Tokyo). Country-only codes (\"JP\"), place names, and lowercase are rejected."
                        }
                      ],
                      "description": "Desired-location entry: a whole country as an ISO 3166-1 alpha-2 code (e.g. \"US\") or one region as an ISO 3166-2 subdivision code (e.g. \"JP-13\"). Names, lowercase, and three-letter codes are rejected."
                    }
                  },
                  "desiredOccupations": {
                    "description": "Desired occupations: references { id, name? } to occupation rows, unique by id, in the order stated. An EMPTY array means \"not limiting by occupation\" — same meaning as absent (the desiredLocations posture).",
                    "maxItems": 20,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "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)$",
                          "description": "The occupation's number (an `occupations` row) — the identity predicates count on."
                        },
                        "name": {
                          "description": "The row's display name in the reader's language, added when a read answers (trimmed, non-empty). Optional on a write and never stored — a stored reference carries the number alone.",
                          "type": "string",
                          "pattern": "^\\S(?:[\\s\\S]*\\S)?$"
                        }
                      },
                      "required": [
                        "id"
                      ],
                      "additionalProperties": false,
                      "description": "Occupation reference: { id, name? } — the row's number, plus the display name a read adds in the reader's language (a write may carry one; it is not stored)."
                    }
                  },
                  "desiredOfficeFrequency": {
                    "type": "object",
                    "properties": {
                      "min": {
                        "type": "string",
                        "enum": [
                          "remote_only",
                          "office_monthly",
                          "office_1_2_days",
                          "office_3_4_days",
                          "office_daily_remote_ok",
                          "office_daily"
                        ],
                        "description": "The most remote-leaning end of the accepted range (inclusive)."
                      },
                      "max": {
                        "type": "string",
                        "enum": [
                          "remote_only",
                          "office_monthly",
                          "office_1_2_days",
                          "office_3_4_days",
                          "office_daily_remote_ok",
                          "office_daily"
                        ],
                        "description": "The most office-leaning end of the accepted range (inclusive)."
                      }
                    },
                    "required": [
                      "min",
                      "max"
                    ],
                    "additionalProperties": false,
                    "description": "Desired office frequency: the accepted CONTIGUOUS range on the ordered 6-level office-frequency scale, given by its two ends — min = most remote-leaning, max = most office-leaning, both inclusive. Absent = no constraint on this axis."
                  },
                  "desiredEmploymentTypes": {
                    "minItems": 1,
                    "maxItems": 5,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "FULL_TIME",
                        "PART_TIME",
                        "CONTRACTOR",
                        "TEMPORARY",
                        "INTERN"
                      ],
                      "description": "Employment type (schema.org vocabulary): \"FULL_TIME\", \"PART_TIME\", \"CONTRACTOR\", \"TEMPORARY\", or \"INTERN\". Other values are rejected."
                    },
                    "description": "Desired employment types: the employment forms the person accepts when moving to a new primary job, from the shared vocabulary (\"FULL_TIME\", \"PART_TIME\", \"CONTRACTOR\", \"TEMPORARY\", \"INTERN\"), unique, in the order stated, at least one (an EMPTY array is rejected — \"not limiting\" is spelled by selecting every form). A mobility-dependent axis: while mobility is \"not_looking\" the value is not used for matching (it is retained). Orthogonal to sideJobDesire: the side-job axis stays binary and never carries a form."
                  }
                },
                "required": [
                  "schemaVersion"
                ],
                "additionalProperties": false,
                "description": "Pseudonymous matchwire candidate profile: the canonical CandidateProfile minus the basics (PII) block. Strict at every nesting level; versioned via the source document's schemaVersion."
              }
            ],
            "description": "The candidate side. On the employer direction (persons proposed for a job) the canonical profile rides only under the organization's active full consent grant; otherwise the basics-omitted anonymous projection (ADR-0200). On the person direction the candidate is the person's own document — always full."
          },
          "job": {
            "type": "object",
            "properties": {
              "schemaVersion": {
                "type": "string",
                "pattern": "^3\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
                "description": "Contract version as a SemVer core triple with major locked to 3 (pattern \"3.<minor>.<patch>\", e.g. \"3.0.0\"). Minors are additive-only: they may only add optional fields. Other majors and non-SemVer strings are rejected."
              },
              "title": {
                "type": "string",
                "minLength": 1,
                "description": "Posting title (non-empty)."
              },
              "description": {
                "type": "string",
                "minLength": 1,
                "description": "Full free-text description of the role (non-empty)."
              },
              "occupations": {
                "description": "Job occupations: references { id, name? } to occupation rows, unique by id, in the order stated. An empty array is rejected — absent = unclassified (the house nonempty-optional pattern). Parallel to (never replacing) the raw `title` verbatim.",
                "minItems": 1,
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "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)$",
                      "description": "The occupation's number (an `occupations` row) — the identity predicates count on."
                    },
                    "name": {
                      "description": "The row's display name in the reader's language, added when a read answers (trimmed, non-empty). Optional on a write and never stored — a stored reference carries the number alone.",
                      "type": "string",
                      "pattern": "^\\S(?:[\\s\\S]*\\S)?$"
                    }
                  },
                  "required": [
                    "id"
                  ],
                  "additionalProperties": false,
                  "description": "Occupation reference: { id, name? } — the row's number, plus the display name a read adds in the reader's language (a write may carry one; it is not stored)."
                }
              },
              "employmentType": {
                "type": "string",
                "enum": [
                  "FULL_TIME",
                  "PART_TIME",
                  "CONTRACTOR",
                  "TEMPORARY",
                  "INTERN"
                ],
                "description": "Employment type (schema.org vocabulary): \"FULL_TIME\", \"PART_TIME\", \"CONTRACTOR\", \"TEMPORARY\", or \"INTERN\". Other values are rejected."
              },
              "hiringOrganization": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Hiring organization display name."
                  },
                  "sameAs": {
                    "description": "Canonical URL identifying the organization.",
                    "type": "string",
                    "format": "uri"
                  },
                  "address": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "The recruiting entity's address as ONE line in customary domestic notation, e.g. \"1-1-1 Marunouchi, Chiyoda-ku, Tokyo 100-0005\" (or its Japanese spelling) — trimmed and non-empty, never normalized, verified or geocoded. Posting content published as-is beside the contact (ADR-0216): an external-publication readiness item, never a market publish item, never a matching or search input (ADR-0082)."
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false,
                "description": "The organization hiring for this posting: its display name, an optional canonical URL, and the optional one-line address the external publication discloses."
              },
              "contact": {
                "description": "Employer contact for enquiries about this posting — phone and/or email plus an optional note. Absent = not stated. Posting content, published as-is: never a publish item, never a matching or search input (ADR-0216).",
                "type": "object",
                "properties": {
                  "phone": {
                    "description": "Phone number in customary domestic notation, e.g. \"03-1234-5678\" or \"+81 3 1234 5678\" — digits, \"+\", \"-\", spaces and parentheses only; never normalized or verified.",
                    "type": "string",
                    "pattern": "^(?=.*[0-9])[0-9+(](?:[0-9+\\-() ]*[0-9)])?$"
                  },
                  "email": {
                    "description": "Contact email address for enquiries about this posting.",
                    "type": "string",
                    "format": "email",
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                  },
                  "note": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "One line beside the channels — the department, the person in charge, reception hours — trimmed and non-empty."
                  }
                },
                "additionalProperties": false
              },
              "jobLocation": {
                "description": "Work location as ONE ISO 3166-2 subdivision code, e.g. \"JP-13\" — the same format as the candidate's desiredLocations. Deprecated in place since 1.12.0: readers read the plural `jobLocations` through `jobLocationsOf`; the write choke keeps this field a truthful mirror (set only when the list is exactly one region entry).",
                "type": "string",
                "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$"
              },
              "jobLocations": {
                "description": "Work locations as a mixed country/region list, e.g. [\"JP-13\", \"JP-27\"] (any of the listed sites) or [\"JP\"] (anywhere within the country), unique and insertion-order-preserving. An empty array is rejected — absent = undisclosed (the same meaning as the deprecated single `jobLocation` being absent). Readers of the single `jobLocation` migrate to this list via `jobLocationsOf`; a redundant country⊇region pair is accepted (the desiredLocations posture — the UI absorbs it, matching is unaffected).",
                "minItems": 1,
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^[A-Z]{2}$",
                      "description": "ISO 3166-1 alpha-2 country code: exactly two uppercase letters, e.g. \"JP\". Three-letter codes (\"JPN\"), subdivision codes (\"JP-13\"), country names, and lowercase are rejected."
                    },
                    {
                      "type": "string",
                      "pattern": "^[A-Z]{2}-[A-Z0-9]{1,3}$",
                      "description": "ISO 3166-2 subdivision code: two uppercase letters, a hyphen, then 1-3 uppercase alphanumerics, e.g. \"JP-13\" (Tokyo). Country-only codes (\"JP\"), place names, and lowercase are rejected."
                    }
                  ],
                  "description": "Desired-location entry: a whole country as an ISO 3166-1 alpha-2 code (e.g. \"US\") or one region as an ISO 3166-2 subdivision code (e.g. \"JP-13\"). Names, lowercase, and three-letter codes are rejected."
                }
              },
              "remote": {
                "type": "string",
                "enum": [
                  "none",
                  "hybrid",
                  "full"
                ],
                "description": "Remote-work classification: \"none\" (on-site), \"hybrid\", or \"full\" (fully remote). Other values are rejected; absent = undisclosed. \"Full remote within Japan\" composes as remote \"full\" + applicantLocation countries [\"JP\"]."
              },
              "officeFrequency": {
                "description": "Office-attendance frequency: the posting's ACTUAL range on the shared ordered 6-level office-frequency scale — min = most remote-leaning, max = most office-leaning, both inclusive. Absent = undisclosed on this axis. Parallel to (never replacing) the 3-value `remote` classification: writers that set a range mirror it into `remote` via officeFrequencyRangeToRemote; readers of `remote` stay untouched.",
                "type": "object",
                "properties": {
                  "min": {
                    "type": "string",
                    "enum": [
                      "remote_only",
                      "office_monthly",
                      "office_1_2_days",
                      "office_3_4_days",
                      "office_daily_remote_ok",
                      "office_daily"
                    ],
                    "description": "The most remote-leaning end of the accepted range (inclusive)."
                  },
                  "max": {
                    "type": "string",
                    "enum": [
                      "remote_only",
                      "office_monthly",
                      "office_1_2_days",
                      "office_3_4_days",
                      "office_daily_remote_ok",
                      "office_daily"
                    ],
                    "description": "The most office-leaning end of the accepted range (inclusive)."
                  }
                },
                "required": [
                  "min",
                  "max"
                ],
                "additionalProperties": false
              },
              "applicantLocation": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "anywhere",
                        "description": "No location restriction — applications are accepted from anywhere."
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "const": "countries",
                        "description": "Applications are accepted only from the listed countries."
                      },
                      "countries": {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "pattern": "^[A-Z]{2}$",
                          "description": "ISO 3166-1 alpha-2 country code: exactly two uppercase letters, e.g. \"JP\". Three-letter codes (\"JPN\"), subdivision codes (\"JP-13\"), country names, and lowercase are rejected."
                        },
                        "description": "Allowed applicant countries as unique, order-preserving ISO 3166-1 alpha-2 codes, e.g. [\"JP\", \"US\"]. An empty list is rejected — \"no restriction\" is { type: \"anywhere\" }."
                      }
                    },
                    "required": [
                      "type",
                      "countries"
                    ],
                    "additionalProperties": false
                  }
                ],
                "description": "Where applicants may apply from: { type: \"anywhere\" } or { type: \"countries\", countries: [...] }. Absent = undisclosed."
              },
              "visaSponsorship": {
                "type": "object",
                "properties": {
                  "available": {
                    "type": "boolean",
                    "description": "Whether visa sponsorship is offered. false is a disclosed no — distinct from the group being absent (undisclosed)."
                  },
                  "detail": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "Conditions, eligible visa statuses, and similar sponsorship detail — free text, trimmed and non-empty."
                  }
                },
                "required": [
                  "available"
                ],
                "additionalProperties": false,
                "description": "Visa sponsorship: availability plus optional conditions. Absent = undisclosed."
              },
              "relocationSupport": {
                "type": "object",
                "properties": {
                  "available": {
                    "type": "boolean",
                    "description": "Whether relocation support is offered. false is a disclosed no — distinct from the group being absent (undisclosed)."
                  },
                  "detail": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "What the relocation support covers (temporary housing, flights, moving costs, etc.) — free text, trimmed and non-empty."
                  }
                },
                "required": [
                  "available"
                ],
                "additionalProperties": false,
                "description": "Relocation support: availability plus optional detail of what is covered. Absent = undisclosed."
              },
              "sideJobAcceptance": {
                "type": "object",
                "properties": {
                  "available": {
                    "type": "boolean",
                    "description": "Whether the engagement can be worked alongside a primary job. false is a disclosed no — distinct from the group being absent (undisclosed)."
                  },
                  "detail": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "Conditions on side workers (weekly hours, meeting windows, conflict-of-interest rules, etc.) — free text, trimmed and non-empty."
                  }
                },
                "required": [
                  "available"
                ],
                "additionalProperties": false,
                "description": "Side-job acceptance: whether the engagement can run alongside a primary job, plus optional conditions. Absent = undisclosed."
              },
              "languageRequirements": {
                "description": "Language requirements: one entry per language with unique, order-preserving ISO 639-1 codes, e.g. [{ language: \"ja\", level: \"business\" }]. An empty array is rejected — absent = undisclosed; level \"none\" = a disclosed not-required.",
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "language": {
                      "type": "string",
                      "enum": [
                        "aa",
                        "ab",
                        "ae",
                        "af",
                        "ak",
                        "am",
                        "an",
                        "ar",
                        "as",
                        "av",
                        "ay",
                        "az",
                        "ba",
                        "be",
                        "bg",
                        "bi",
                        "bm",
                        "bn",
                        "bo",
                        "br",
                        "bs",
                        "ca",
                        "ce",
                        "ch",
                        "co",
                        "cr",
                        "cs",
                        "cu",
                        "cv",
                        "cy",
                        "da",
                        "de",
                        "dv",
                        "dz",
                        "ee",
                        "el",
                        "en",
                        "eo",
                        "es",
                        "et",
                        "eu",
                        "fa",
                        "ff",
                        "fi",
                        "fj",
                        "fo",
                        "fr",
                        "fy",
                        "ga",
                        "gd",
                        "gl",
                        "gn",
                        "gu",
                        "gv",
                        "ha",
                        "he",
                        "hi",
                        "ho",
                        "hr",
                        "ht",
                        "hu",
                        "hy",
                        "hz",
                        "ia",
                        "id",
                        "ie",
                        "ig",
                        "ii",
                        "ik",
                        "io",
                        "is",
                        "it",
                        "iu",
                        "ja",
                        "jv",
                        "ka",
                        "kg",
                        "ki",
                        "kj",
                        "kk",
                        "kl",
                        "km",
                        "kn",
                        "ko",
                        "kr",
                        "ks",
                        "ku",
                        "kv",
                        "kw",
                        "ky",
                        "la",
                        "lb",
                        "lg",
                        "li",
                        "ln",
                        "lo",
                        "lt",
                        "lu",
                        "lv",
                        "mg",
                        "mh",
                        "mi",
                        "mk",
                        "ml",
                        "mn",
                        "mr",
                        "ms",
                        "mt",
                        "my",
                        "na",
                        "nan",
                        "nb",
                        "nd",
                        "ne",
                        "ng",
                        "nl",
                        "nn",
                        "no",
                        "nr",
                        "nv",
                        "ny",
                        "oc",
                        "oj",
                        "om",
                        "or",
                        "os",
                        "pa",
                        "pi",
                        "pl",
                        "ps",
                        "pt",
                        "qu",
                        "rm",
                        "rn",
                        "ro",
                        "ru",
                        "rw",
                        "sa",
                        "sc",
                        "sd",
                        "se",
                        "sg",
                        "si",
                        "sk",
                        "sl",
                        "sm",
                        "sn",
                        "so",
                        "sq",
                        "sr",
                        "ss",
                        "st",
                        "su",
                        "sv",
                        "sw",
                        "ta",
                        "te",
                        "tg",
                        "th",
                        "ti",
                        "tk",
                        "tl",
                        "tn",
                        "to",
                        "tr",
                        "ts",
                        "tt",
                        "tw",
                        "ty",
                        "ug",
                        "uk",
                        "ur",
                        "uz",
                        "ve",
                        "vi",
                        "vo",
                        "wa",
                        "wo",
                        "xh",
                        "yi",
                        "yo",
                        "yue",
                        "za",
                        "zh",
                        "zu"
                      ],
                      "description": "Language code from the closed vocabulary: ISO 639-1 two-letter codes plus the allowlist \"yue\" (Cantonese) and \"nan\" (Taiwanese Hokkien), e.g. \"ja\", \"en\", \"zh\". Language names, unassigned codes, region-qualified tags (\"zh-TW\"), and uppercase are rejected."
                    },
                    "level": {
                      "type": "string",
                      "enum": [
                        "none",
                        "basic",
                        "conversational",
                        "business",
                        "fluent"
                      ],
                      "description": "Minimum required proficiency: \"none\" (a disclosed not-required), \"basic\", \"conversational\", \"business\", or \"fluent\". Other values are rejected."
                    },
                    "detail": {
                      "type": "string",
                      "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                      "description": "Supplementary free text on the language requirement, e.g. \"equivalent to JLPT N1\" — trimmed and non-empty."
                    }
                  },
                  "required": [
                    "language",
                    "level"
                  ],
                  "additionalProperties": false,
                  "description": "Per-language minimum proficiency requirement: ISO 639-1 language code × ordered level, plus optional free-text detail."
                }
              },
              "experienceRequirement": {
                "type": "object",
                "properties": {
                  "minYears": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 50,
                    "description": "Minimum required years of experience as an integer 0–50. 0 = no experience required (a disclosed not-required), distinct from the field being absent (undisclosed)."
                  },
                  "detail": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "Supplementary free text on the experience requirement, e.g. \"hands-on web application development\" or \"management experience welcome\" — trimmed and non-empty."
                  }
                },
                "required": [
                  "minYears"
                ],
                "additionalProperties": false,
                "description": "Experience requirement: minimum years threshold plus optional free-text detail. Absent = undisclosed; minYears 0 = no experience required."
              },
              "educationRequirement": {
                "type": "object",
                "properties": {
                  "minLevel": {
                    "type": "string",
                    "enum": [
                      "none",
                      "high_school",
                      "associate",
                      "bachelor",
                      "master",
                      "doctorate"
                    ],
                    "description": "Minimum required education level: \"none\" (a disclosed not-required), \"high_school\", \"associate\" (junior college, technical college, or vocational school), \"bachelor\", \"master\", or \"doctorate\". Other values are rejected."
                  },
                  "detail": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "Supplementary free text on the education requirement, e.g. \"computer science major\" or \"equivalent work experience accepted\" — trimmed and non-empty."
                  }
                },
                "required": [
                  "minLevel"
                ],
                "additionalProperties": false,
                "description": "Education requirement: minimum level on the ordered EDUCATION_LEVELS ladder, plus optional free-text detail. Absent = undisclosed."
              },
              "certificationRequirements": {
                "description": "Required certifications: one entry per certification with unique, order-preserving names, e.g. [{ name: \"AWS SAA\", issuer: \"AWS\" }]. An empty array is rejected — absent = undisclosed.",
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                      "description": "Certification name, e.g. \"AWS Certified Solutions Architect\" or \"PMP\" — trimmed and non-empty."
                    },
                    "issuer": {
                      "type": "string",
                      "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                      "description": "Issuing organization, e.g. \"IPA\" — trimmed and non-empty."
                    },
                    "url": {
                      "description": "URL of the certification or issuing organization.",
                      "type": "string",
                      "format": "uri"
                    },
                    "detail": {
                      "type": "string",
                      "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                      "description": "Supplementary free text on the certification requirement, e.g. \"equivalent certifications accepted\" or \"may be obtained after joining\" — trimmed and non-empty."
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false,
                  "description": "Required certification: name plus optional issuer / url / free-text detail. Vocabulary mirrors the candidate-side certificateSchema."
                }
              },
              "baseSalary": {
                "type": "object",
                "properties": {
                  "currency": {
                    "default": "JPY",
                    "description": "ISO 4217 currency code (exactly three uppercase letters). Defaults to \"JPY\".",
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "min": {
                    "description": "Lower bound of the range as a non-negative integer; must be <= max when both are present.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "max": {
                    "description": "Upper bound of the range as a non-negative integer; must be >= min when both are present.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "unit": {
                    "default": "YEAR",
                    "description": "Salary period unit: \"YEAR\" (annual amounts, the default), \"MONTH\", or \"HOUR\".",
                    "type": "string",
                    "enum": [
                      "YEAR",
                      "MONTH",
                      "HOUR"
                    ]
                  }
                },
                "required": [
                  "currency",
                  "unit"
                ],
                "additionalProperties": false,
                "description": "Salary range in a single ISO 4217 currency (non-negative integers, min <= max); the period is given by `unit` (annual by default)."
              },
              "skills": {
                "description": "Skills required or desired for the role.",
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "A required or desired skill."
                }
              },
              "skillRequirements": {
                "description": "Structured skill demands: one entry per skill with unique, order-preserving raw verbatim names, e.g. [{ name: \"TypeScript\", necessity: \"required\", minProficiency: { scale: \"mw7\", level: 4 } }]. An empty array is rejected — absent = undisclosed. Parallel to (never replacing) the flat `skills` list; a name may appear in both.",
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                      "description": "Raw verbatim skill string exactly as stated (trimmed only): one skill per entry, never split on commas or slashes, never normalized away — the same policy as candidate-side skills."
                    },
                    "necessity": {
                      "type": "string",
                      "enum": [
                        "required",
                        "preferred"
                      ],
                      "description": "Necessity: \"required\" or \"preferred\". Mandatory — an unclassified skill mention belongs in the flat `skills` list, not here. Other values are rejected."
                    },
                    "minProficiency": {
                      "description": "Minimum demanded proficiency on the SAME mw7 scale candidate skills use. Absent = no level floor stated.",
                      "type": "object",
                      "properties": {
                        "scale": {
                          "type": "string",
                          "const": "mw7",
                          "description": "Proficiency scale identifier; only \"mw7\" (matchwire's neutral 7-level responsibility ladder) is defined."
                        },
                        "level": {
                          "type": "integer",
                          "minimum": 1,
                          "maximum": 7,
                          "description": "Integer 1-7 on the mw7 ladder: 1 follow, 2 assist, 3 apply, 4 enable, 5 advise, 6 initiate, 7 set strategy. Values outside 1-7 are rejected."
                        }
                      },
                      "required": [
                        "scale",
                        "level"
                      ],
                      "additionalProperties": false
                    },
                    "detail": {
                      "type": "string",
                      "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                      "description": "Supplementary free text on the skill requirement, e.g. \"production operations experience is a plus\" — trimmed and non-empty."
                    }
                  },
                  "required": [
                    "name",
                    "necessity"
                  ],
                  "additionalProperties": false,
                  "description": "Structured skill demand: raw verbatim skill name × required/preferred necessity, plus optional mw7 minimum proficiency and free-text detail. Shape-symmetric with the candidate-side skill claim."
                }
              },
              "materialRequirements": {
                "description": "Submission-material declarations: one entry per document with unique, order-preserving (kind, detail) pairs — one document is one stage x one necessity, so declaring the same document at two stages is contradictory and rejected. E.g. [{ kind: \"resume\", stage: \"match\", necessity: \"required\" }]. An empty array is rejected — absent = undisclosed.",
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "work_history",
                        "resume",
                        "portfolio",
                        "other"
                      ],
                      "description": "Material kind: \"work_history\", \"resume\", \"portfolio\", or \"other\". Other values are rejected."
                    },
                    "detail": {
                      "type": "string",
                      "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                      "description": "Free text naming or narrowing the material — REQUIRED when kind is \"other\" (it is the declaration's name), optional otherwise. Trimmed and non-empty."
                    },
                    "stage": {
                      "type": "string",
                      "enum": [
                        "match",
                        "scheduling",
                        "interview_passed"
                      ],
                      "description": "Stage at which the material is requested — a selection milestone: \"match\", \"scheduling\", \"interview_passed\". Other values are rejected."
                    },
                    "necessity": {
                      "type": "string",
                      "enum": [
                        "required",
                        "optional"
                      ],
                      "description": "Submission necessity: \"required\" or \"optional\". Other values are rejected."
                    }
                  },
                  "required": [
                    "kind",
                    "stage",
                    "necessity"
                  ],
                  "additionalProperties": false,
                  "description": "One declared submission material: kind x requested stage x required/optional necessity, plus free-text detail (mandatory for kind \"other\")."
                }
              },
              "laborConditions": {
                "type": "object",
                "properties": {
                  "placeOfWork": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "Place of work immediately after hiring, as free-text detail; the machine-readable codes stay in jobLocations (ISO 3166-1/-2)."
                  },
                  "placeOfWorkChangeScope": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "Scope of future changes to the place of work (a 2024-04 amendment disclosure item) — free text, trimmed and non-empty."
                  },
                  "workScopeChange": {
                    "type": "string",
                    "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                    "description": "Scope of future changes to the duties to be performed (a 2024-04 amendment disclosure item) — free text, trimmed and non-empty."
                  },
                  "contractPeriod": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "enum": [
                          "indefinite",
                          "fixed_term"
                        ],
                        "description": "Labor-contract period type: \"indefinite\" or \"fixed_term\". Other values are rejected."
                      },
                      "endDate": {
                        "description": "End of a fixed-term contract as ISO 8601 with optional month/day, e.g. \"2027\", \"2027-03\", or \"2027-03-31\".",
                        "type": "string",
                        "pattern": "^[1-2]\\d{3}(-[0-1]\\d(-[0-3]\\d)?)?$"
                      },
                      "renewalCriteria": {
                        "type": "string",
                        "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                        "description": "Criteria for renewing a fixed-term contract (a 2024-04 amendment disclosure item) — free text, trimmed and non-empty."
                      }
                    },
                    "required": [
                      "type"
                    ],
                    "additionalProperties": false,
                    "description": "Labor-contract period: indefinite, or fixed-term with its renewal criteria."
                  },
                  "probation": {
                    "type": "object",
                    "properties": {
                      "exists": {
                        "type": "boolean",
                        "description": "Whether a probation period exists."
                      },
                      "detail": {
                        "type": "string",
                        "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                        "description": "Length and conditions of the probation period — free text, trimmed and non-empty."
                      }
                    },
                    "required": [
                      "exists"
                    ],
                    "additionalProperties": false,
                    "description": "Probation period: existence plus its length/conditions."
                  },
                  "workingHours": {
                    "type": "object",
                    "properties": {
                      "start": {
                        "type": "string",
                        "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                        "description": "Start of the working day as zero-padded 24-hour \"HH:MM\", e.g. \"09:00\"."
                      },
                      "end": {
                        "type": "string",
                        "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
                        "description": "End of the working day as zero-padded 24-hour \"HH:MM\", e.g. \"18:00\"."
                      },
                      "breakMinutes": {
                        "description": "Break time in minutes as a non-negative integer.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      },
                      "overtime": {
                        "type": "boolean",
                        "description": "Whether work beyond scheduled hours exists."
                      },
                      "holidays": {
                        "type": "string",
                        "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                        "description": "Days off, e.g. \"weekends, national holidays, and the year-end break\" — free text, trimmed and non-empty."
                      }
                    },
                    "required": [
                      "start",
                      "end",
                      "overtime"
                    ],
                    "additionalProperties": false,
                    "description": "Working hours: start/end, break, overtime, and days off."
                  },
                  "socialInsurance": {
                    "description": "Applicable statutory insurance schemes. An EMPTY array is meaningful (none apply) and distinct from the field being absent (undisclosed).",
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "health_insurance",
                        "employees_pension",
                        "employment_insurance",
                        "workers_compensation"
                      ],
                      "description": "Statutory insurance scheme: \"health_insurance\", \"employees_pension\", \"employment_insurance\", or \"workers_compensation\". Other values are rejected."
                    }
                  },
                  "smokingPolicy": {
                    "type": "object",
                    "properties": {
                      "measures": {
                        "type": "string",
                        "enum": [
                          "no_smoking_indoors",
                          "designated_smoking_area",
                          "smoking_allowed",
                          "other"
                        ],
                        "description": "Passive-smoking prevention measure: \"no_smoking_indoors\", \"designated_smoking_area\", \"smoking_allowed\", or \"other\". Other values are rejected."
                      },
                      "note": {
                        "type": "string",
                        "pattern": "^\\S(?:[\\s\\S]*\\S)?$",
                        "description": "Details of the passive-smoking prevention measures — free text, trimmed and non-empty."
                      }
                    },
                    "required": [
                      "measures"
                    ],
                    "additionalProperties": false,
                    "description": "Passive-smoking prevention measures at the place of work."
                  }
                },
                "additionalProperties": false,
                "description": "Statutory working-condition disclosure items (Japan's Employment Security Act Art. 5-3 and Enforcement Ordinance Art. 4-2, incl. the 2024-04 amendment). All fields optional here; publish-time requiredness lives in jobPostingPublishReadiness."
              }
            },
            "required": [
              "schemaVersion",
              "title",
              "description",
              "hiringOrganization"
            ],
            "additionalProperties": false,
            "description": "The job side, as the canonical posting."
          },
          "score": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "0..1 confidence that this is a good mutual match: the engine's combined two-sided score (harmonic mean of forward and reverse content evidence for owners inside the reciprocal window)."
          },
          "rationale": {
            "type": "string",
            "minLength": 1,
            "description": "Deterministic explanation naming the top contributing evidence."
          },
          "itemRef": {
            "description": "Stable reference to the proposed counterpart, identical to the item_ref the engine logs for this exposure: the job's id when jobs are proposed, the person's subject_token when persons are proposed (never persons.id — the capture layer is PII-free). Optional only for major-1 additive evolution; the engine always sets it.",
            "type": "string",
            "minLength": 1
          },
          "explanation": {
            "description": "Structured decision-time explanation: matched sections with snippets and weights, per-stage scores, version pins, deterministic counterfactual. Optional (major-1 additive); the engine always sets it.",
            "type": "object",
            "properties": {
              "formatVersion": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 1
                  },
                  {
                    "type": "number",
                    "const": 2
                  }
                ],
                "description": "Capture format version — additive growth bumps this, not a migration. Version 2 adds the optional reciprocal evidence and executed-stage list."
              },
              "retrievers": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "dense",
                    "bm25"
                  ]
                },
                "description": "Retrieval stages that produced the fused ranking."
              },
              "rankingCount": {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991,
                "description": "Number of fused rankings (the RRF normalization denominator input)."
              },
              "fusedScore": {
                "type": "number",
                "exclusiveMinimum": 0,
                "description": "The pre-normalization fused RRF score."
              },
              "sections": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "section": {
                      "type": "string",
                      "minLength": 1,
                      "description": "Chunk section name (e.g. \"skills\", \"description\")."
                    },
                    "weight": {
                      "type": "number",
                      "exclusiveMinimum": 0,
                      "description": "Summed RRF contribution of this section's hits."
                    },
                    "snippet": {
                      "type": "string",
                      "minLength": 1,
                      "description": "The strongest-contributing chunk text in this section (display only, never captured)."
                    }
                  },
                  "required": [
                    "section",
                    "weight",
                    "snippet"
                  ],
                  "additionalProperties": false,
                  "description": "A matched section with its strongest evidence snippet."
                },
                "description": "Matched sections with snippets, strongest first (descending weight)."
              },
              "profileVersion": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The matched person's latest profile_versions.version at decision time; null when none exists."
              },
              "jobVersion": {
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The matched job's latest job_versions.version at decision time; null when none exists."
              },
              "counterfactual": {
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "section": {
                        "type": "string",
                        "minLength": 1,
                        "description": "The top contributing section's name."
                      },
                      "scoreWithout": {
                        "type": "number",
                        "description": "Normalized score recomputed without the top section's RRF contribution."
                      },
                      "wouldDisplay": {
                        "type": "boolean",
                        "description": "Whether that score still clears the returned set's lowest displayed score."
                      }
                    },
                    "required": [
                      "section",
                      "scoreWithout",
                      "wouldDisplay"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "Deterministic counterfactual over the top section; null when evidence has <2 sections."
              },
              "reciprocal": {
                "description": "Two-sided scoring evidence (format version 2): forward, reverse, and combined normalized scores plus window membership.",
                "type": "object",
                "properties": {
                  "forward": {
                    "type": "number",
                    "exclusiveMinimum": 0,
                    "maximum": 1,
                    "description": "Normalized forward (source→counterpart) retrieval score in (0, 1]."
                  },
                  "reverse": {
                    "anyOf": [
                      {
                        "type": "number",
                        "exclusiveMinimum": 0,
                        "maximum": 1
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The source owner's normalized score in the counterpart's own stored ranking (the deterministic floor when that ranking does not hold the source) — the value the combine used; null only on pre-precompute explanations."
                  },
                  "combined": {
                    "type": "number",
                    "exclusiveMinimum": 0,
                    "maximum": 1,
                    "description": "The score the ranking used: the harmonic mean of forward and reverse (every served pair is two-sided; the forward score alone only on pre-precompute explanations)."
                  },
                  "windowed": {
                    "type": "boolean",
                    "description": "Whether reverse evidence existed: the counterpart's own stored ranking holds the source (false = the deterministic floor was used)."
                  }
                },
                "required": [
                  "forward",
                  "reverse",
                  "combined",
                  "windowed"
                ],
                "additionalProperties": false
              },
              "stages": {
                "description": "Executed optional rerank-phase stage ids (format version 2), exactly the composed ranker version's suffix segments; empty when only the base pipeline ran.",
                "type": "array",
                "items": {
                  "type": "string",
                  "pattern": "^(learned|fair):[a-z0-9][a-z0-9.-]*$"
                }
              }
            },
            "required": [
              "formatVersion",
              "retrievers",
              "rankingCount",
              "fusedScore",
              "sections",
              "profileVersion",
              "jobVersion",
              "counterfactual"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "candidate",
          "job",
          "score",
          "rationale"
        ],
        "additionalProperties": false,
        "description": "A match proposal exchanged between a candidate AI and a company AI."
      },
      "description": "Ranked match proposals, best first."
    },
    "degradation": {
      "description": "Present ONLY on an empty result whose emptiness is a temporary degradation (the matching index is not ready, or the stored ranking is not computed yet) — a genuine no-match omits it.",
      "type": "object",
      "properties": {
        "reason": {
          "type": "string",
          "enum": [
            "index_pending",
            "precompute_pending"
          ],
          "description": "Machine-readable cause. \"index_pending\" = the matching index is not built yet (counterpart or source documents exist without indexed chunks); retry later. \"precompute_pending\" = the index is built but the source's stored match ranking is not computed yet (the serve reads precomputed rankings); retry later. Additive-only enum."
        },
        "message": {
          "type": "string",
          "minLength": 1,
          "description": "Stable, human-readable degradation notice — a fixed constant per tool, never backend or organization detail."
        }
      },
      "required": [
        "reason",
        "message"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "proposals"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

On this page