Record representing an organization's attestation that a person is or was employed at its entity. Deleting the record is a revocation. Updating status from current to past with an end date is offboarding, which keeps the history.
tid
Timestamp-based ID
Properties
comment
string
Optional
Optional brief comment from the organization.
maxLength: 3000 bytesmaxGraphemes: 300 graphemescompanyDid
string
did
Optional
Deprecated. The attesting organization is the repository owner, so this field carries no information; readers ignore it. Kept so existing schema readers do not break.
createdAt
string
datetime
Required
Client-declared timestamp when this attestation was created.
endedAt
string
Optional
End date in YYYY-MM or YYYY-MM-DD format. Required context when status is past.
entityRef
string
uri
Optional
Portable entity identifier (Wikidata Q-ID URI, ROR URI, or LEI URI) of the employing legal entity. Omit it when the organization account itself is the anchor. Never the free-text company name.
labels
union
Optional
Self-label values for this attestation record.
position
ref
com.atproto.repo.strongRef
Optional
StrongRef to the id.sifa.profile.position record being attested. It must belong to subject. Resolve by AT-URI: the CID is the version the organization saw and must not be used as a join key, because the subject editing the position changes its CID. Omit it to attest employment at the entity as a whole, which then matches every position of the subject at that entity with an overlapping period.
source
ref
id.sifa.defs#attestationSource
Optional
How the attestation was written. Absent means an account holder confirmed it by hand.
startedAt
string
Optional
Optional start date snapshot in YYYY-MM or YYYY-MM-DD format, mirroring the position lexicon's freeform date shape. Compared at month precision; a later difference makes the attestation stale.
status
ref
id.sifa.defs#employmentStatus
Required
Whether the employment is current or past.
subject
string
did
Required
DID of the employee whose employment is being attested.
title
string
Optional
Optional job title snapshot from the position at attestation time. If the position's title later differs, the attestation is stale until the organization re-attests.
maxLength: 2560 bytesminLength: 1 bytesmaxGraphemes: 256 graphemesView raw schema
{
"description": "Record representing an organization's attestation that a person is or was employed at its entity. Deleting the record is a revocation. Updating status from current to past with an end date is offboarding, which keeps the history.",
"key": "tid",
"record": {
"properties": {
"comment": {
"description": "Optional brief comment from the organization.",
"maxGraphemes": 300,
"maxLength": 3000,
"type": "string"
},
"companyDid": {
"description": "Deprecated. The attesting organization is the repository owner, so this field carries no information; readers ignore it. Kept so existing schema readers do not break.",
"format": "did",
"type": "string"
},
"createdAt": {
"description": "Client-declared timestamp when this attestation was created.",
"format": "datetime",
"type": "string"
},
"endedAt": {
"description": "End date in YYYY-MM or YYYY-MM-DD format. Required context when status is past.",
"type": "string"
},
"entityRef": {
"description": "Portable entity identifier (Wikidata Q-ID URI, ROR URI, or LEI URI) of the employing legal entity. Omit it when the organization account itself is the anchor. Never the free-text company name.",
"format": "uri",
"type": "string"
},
"labels": {
"description": "Self-label values for this attestation record.",
"refs": [
"com.atproto.label.defs#selfLabels"
],
"type": "union"
},
"position": {
"description": "StrongRef to the id.sifa.profile.position record being attested. It must belong to subject. Resolve by AT-URI: the CID is the version the organization saw and must not be used as a join key, because the subject editing the position changes its CID. Omit it to attest employment at the entity as a whole, which then matches every position of the subject at that entity with an overlapping period.",
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"source": {
"description": "How the attestation was written. Absent means an account holder confirmed it by hand.",
"ref": "id.sifa.defs#attestationSource",
"type": "ref"
},
"startedAt": {
"description": "Optional start date snapshot in YYYY-MM or YYYY-MM-DD format, mirroring the position lexicon's freeform date shape. Compared at month precision; a later difference makes the attestation stale.",
"type": "string"
},
"status": {
"description": "Whether the employment is current or past.",
"ref": "id.sifa.defs#employmentStatus",
"type": "ref"
},
"subject": {
"description": "DID of the employee whose employment is being attested.",
"format": "did",
"type": "string"
},
"title": {
"description": "Optional job title snapshot from the position at attestation time. If the position's title later differs, the attestation is stale until the organization re-attests.",
"maxGraphemes": 256,
"maxLength": 2560,
"minLength": 1,
"type": "string"
}
},
"required": [
"subject",
"status",
"createdAt"
],
"type": "object"
},
"type": "record"
}