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