id.sifa.profile.position

sifa.id

Schema Diff

+43 -8

From

CID
bafyreid2v5v7vdn...
Indexed At
2026-08-06 12:37 UTC
View this version

To

CID
bafyreibdrpq3ag4...
Indexed At
2026-08-07 11:35 UTC
View this version

Compatibility Analysis

Backward Compatible

No changes detected.

1 1
{
2 2
  "id": "id.sifa.profile.position",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "title",
11 11
          "startedAt",
12 12
          "createdAt"
13 13
        ],
14 14
        "properties": {
15 15
          "title": {
16 16
            "type": "string",
17 17
            "maxLength": 2560,
18 18
            "minLength": 1,
19 19
            "description": "Job title or role name.",
20 -
            "maxGraphemes": 256
20 +
            "maxGraphemes": 256,
21 +
            "x-skos:exactMatch": [
22 +
              "org:role",
23 +
              "schema:roleName"
24 +
            ]
21 25
          },
22 26
          "labels": {
23 27
            "refs": [
24 28
              "com.atproto.label.defs#selfLabels"
25 29
            ],
26 30
            "type": "union",
27 31
            "description": "Self-label values for this position record."
28 32
          },
29 33
          "skills": {
30 34
            "type": "array",
31 35
            "items": {
32 36
              "ref": "id.sifa.defs#skillRef",
33 37
              "type": "ref"
34 38
            },
35 39
            "maxLength": 50,
36 40
            "description": "Skills used in this position. Each entry is a URI reference to an id.sifa.profile.skill record owned by the same DID."
37 41
          },
38 42
          "company": {
39 43
            "type": "string",
40 44
            "maxLength": 2560,
41 45
            "minLength": 1,
42 46
            "description": "Company or organization name. Optional: omit for self-employed, freelance, contract, or independent work that has no separately named or registered entity.",
43 -
            "maxGraphemes": 256
47 +
            "maxGraphemes": 256,
48 +
            "x-skos:exactMatch": [
49 +
              "org:organization",
50 +
              "schema:worksFor"
51 +
            ]
44 52
          },
45 53
          "endedAt": {
46 54
            "type": "string",
47 -
            "description": "End date of the position in YYYY-MM or YYYY-MM-DD format. Omit if this is a current position."
55 +
            "description": "End date of the position in YYYY-MM or YYYY-MM-DD format. Omit if this is a current position.",
56 +
            "x-skos:exactMatch": [
57 +
              "schema:endDate"
58 +
            ]
48 59
          },
49 60
          "location": {
50 61
            "ref": "community.lexicon.location.address",
51 62
            "type": "ref",
52 -
            "description": "Work location. Sifa enforces ISO 3166-1 alpha-2 country codes at the app layer."
63 +
            "description": "Work location. Sifa enforces ISO 3166-1 alpha-2 country codes at the app layer.",
64 +
            "x-skos:exactMatch": [
65 +
              "schema:jobLocation"
66 +
            ]
53 67
          },
54 68
          "createdAt": {
55 69
            "type": "string",
56 70
            "format": "datetime",
57 71
            "description": "Client-declared timestamp when this record was originally created."
58 72
          },
59 73
          "entityRef": {
60 74
            "type": "string",
61 75
            "format": "uri",
62 -
            "description": "Portable, app-neutral identifier for the organization the user selected from a resolver dropdown: a Wikidata Q-ID URI (http://www.wikidata.org/entity/Q...), a ROR URI, or an LEI URI. Enables deterministic resolution to a canonical entity even before the org claims an ATproto account. Absent for free-text or independent/self-employed positions."
76 +
            "description": "Portable, app-neutral identifier for the organization the user selected from a resolver dropdown: a Wikidata Q-ID URI (http://www.wikidata.org/entity/Q...), a ROR URI, or an LEI URI. Enables deterministic resolution to a canonical entity even before the org claims an ATproto account. Absent for free-text or independent/self-employed positions.",
77 +
            "x-skos:closeMatch": [
78 +
              "schema:sameAs"
79 +
            ]
63 80
          },
64 81
          "isPrimary": {
65 82
            "type": "boolean",
66 83
            "description": "Whether this is the user's primary current position, displayed on the identity card."
67 84
          },
68 85
          "startedAt": {
69 86
            "type": "string",
70 -
            "description": "Start date of the position in YYYY-MM or YYYY-MM-DD format."
87 +
            "description": "Start date of the position in YYYY-MM or YYYY-MM-DD format.",
88 +
            "x-skos:exactMatch": [
89 +
              "schema:startDate"
90 +
            ]
71 91
          },
72 92
          "companyDid": {
73 93
            "type": "string",
74 94
            "format": "did",
75 95
            "description": "DID of the company's ATproto account, if one exists. Enables verified company linking."
76 96
          },
77 97
          "onBehalfOf": {
78 98
            "type": "string",
79 99
            "maxLength": 2560,
80 100
            "description": "Name of the party this role is held on behalf of, when the person represents someone else — most often a fund whose board seat this is. A disclosure, not a role type. Omit for independent seats.",
81 101
            "maxGraphemes": 256
82 102
          },
83 103
          "description": {
84 104
            "type": "string",
85 105
            "maxLength": 50000,
86 106
            "description": "Description of responsibilities, achievements, and duties.",
87 -
            "maxGraphemes": 5000
107 +
            "maxGraphemes": 5000,
108 +
            "x-skos:exactMatch": [
109 +
              "dcterms:description"
110 +
            ]
88 111
          },
89 112
          "onBehalfOfDid": {
90 113
            "type": "string",
91 114
            "format": "did",
92 115
            "description": "DID of the represented party's ATproto account, if one exists. May resolve to an organization or to a person (e.g. a family-office principal)."
93 116
          },
94 117
          "workplaceType": {
95 118
            "type": "string",
96 119
            "description": "Workplace arrangement (on-site, remote, hybrid).",
97 120
            "knownValues": [
98 121
              "id.sifa.defs#onSite",
99 122
              "id.sifa.defs#remote",
100 123
              "id.sifa.defs#hybrid"
124 +
            ],
125 +
            "x-skos:note": "schema.org models only a remote flag; Sifa distinguishes onSite, remote, and hybrid.",
126 +
            "x-skos:narrowMatch": [
127 +
              "schema:jobLocationType"
101 128
            ]
102 129
          },
103 130
          "employmentType": {
104 131
            "type": "string",
105 132
            "description": "Type of employment (full-time, part-time, contract, etc.).",
106 133
            "knownValues": [
107 134
              "id.sifa.defs#fullTime",
108 135
              "id.sifa.defs#partTime",
109 136
              "id.sifa.defs#temporary",
110 137
              "id.sifa.defs#seasonal",
111 138
              "id.sifa.defs#contract",
112 139
              "id.sifa.defs#freelance",
113 140
              "id.sifa.defs#selfEmployed",
114 141
              "id.sifa.defs#independentWork",
115 142
              "id.sifa.defs#internship",
116 143
              "id.sifa.defs#apprenticeship",
117 144
              "id.sifa.defs#fellowship",
118 145
              "id.sifa.defs#trainee",
119 146
              "id.sifa.defs#volunteer",
120 147
              "id.sifa.defs#boardMember",
121 148
              "id.sifa.defs#boardObserver",
122 149
              "id.sifa.defs#advisor"
150 +
            ],
151 +
            "x-skos:note": "schema:employmentType is free text. ESCO is the better value anchor.",
152 +
            "x-skos:closeMatch": [
153 +
              "schema:employmentType"
123 154
            ]
124 155
          },
125 156
          "onBehalfOfEntityRef": {
126 157
            "type": "string",
127 158
            "format": "uri",
128 159
            "description": "Portable, app-neutral identifier for the represented party selected from a resolver dropdown: a Wikidata Q-ID URI, a ROR URI, or an LEI URI. Absent for free-text entries."
129 160
          }
130 161
        }
131 162
      },
132 -
      "description": "Record representing a single work position or role."
163 +
      "description": "Record representing a single work position or role.",
164 +
      "x-skos:closeMatch": [
165 +
        "org:Membership",
166 +
        "schema:OrganizationRole"
167 +
      ]
133 168
    }
134 169
  },
135 170
  "$type": "com.atproto.lexicon.schema",
136 171
  "lexicon": 1,
137 172
  "description": "A work experience entry in the user's professional profile."
138 173
}

Compare Other Versions

Lexicon Garden

@