{
    "$schema": "http://json-schema.org/draft-06/schema#",
    "$id": "https://www.ziprecruiter.com/assets/static/schema/profile-schema.json#",
    "x-version": "1.0",
    "type": "object",
    "uniqueItems": true,
    "properties": {
        "mobile":             {"type": "string"},
        "executive_summary":  {"type": "string"},
        "objective":          {"type": "string"},
        "text_resume":        {"type": "string"},
        "job_records": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "current":               {"type": "string"},
                    "description":           {"type": "string"},
                    "employer":              {"type": "string"},
                    "end_date":              {"$ref": "#/definitions/Date"},
                    "end_date_precision":    {"$ref": "#/definitions/DatePrecision"},
                    "position":              {"type": "string"},
                    "start_date":            {"$ref": "#/definitions/Date"},
                    "start_date_precision":  {"$ref": "#/definitions/DatePrecision"}
                }
            },
            "uniqueItems": true
        },
        "education_records": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "current":                {"type": "string"},
                    "date":                   {"$ref": "#/definitions/Date"},
                    "date_precision":         {"$ref": "#/definitions/DatePrecision"},
                    "degree_date":            {"$ref": "#/definitions/Date"},
                    "degree_date_precision":  {"$ref": "#/definitions/DatePrecision"},
                    "degree_name":            {"type": "string"},
                    "description":            {"type": "string"},
                    "end_date":               {"$ref": "#/definitions/Date"},
                    "end_date_precision":     {"$ref": "#/definitions/DatePrecision"},
                    "major":                  {"type": "string"},
                    "name":                   {"type": "string"},
                    "school":                 {"type": "string"},
                    "start_date":             {"$ref": "#/definitions/Date"},
                    "start_date_precision":   {"$ref": "#/definitions/DatePrecision"},
                    "type":                   {"type": "string"}
                }
            },
            "uniqueItems": true
        },
        "achievement_records": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"}
                }
            },
            "uniqueItems": true
        },
        "license_certification_records": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "description":            {"type": "string"},
                    "id":                     {"type": "string"},
                    "issued_date":            {"$ref": "#/definitions/Date"},
                    "issued_date_precision":  {"$ref": "#/definitions/DatePrecision"},
                    "issuing_authority":      {"type": "string"},
                    "name":                   {"type": "string"}
                }
            },
            "uniqueItems": true
        },
        "association_records": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"}
                }
            },
            "uniqueItems": true
        }
    },
    "definitions": {
        "DatePrecision": {
            "type": "string",
            "enum": ["YearMonthDay", "YearMonth", "Year"]
        },
        "Date": {
            "type":         "string",
            "pattern":      "^[0-9]{4}-[01][0-9]-[012][0-9]$",
            "description":  "A Date is always YYYY-MM-DD, but you must check the corresponding DatePrecision to determine which parts are accurate.  Month and Day will be `01` if unavailable."
        }
    }
}
