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