id.sifa.profile.position

sifa.id

Documentation

Record representing a single work position or role.

main record

Record representing a single work position or role.

Record Key tid Timestamp-based ID

Properties

company string Optional

Company or organization name. Optional: omit for self-employed, freelance, contract, or independent work that has no separately named or registered entity.

maxLength: 2560 bytesminLength: 1 bytesmaxGraphemes: 256 graphemes
companyDid string did Optional

DID of the company's ATproto account, if one exists. Enables verified company linking.

createdAt string datetime Required

Client-declared timestamp when this record was originally created.

description string Optional

Description of responsibilities, achievements, and duties.

maxLength: 50000 bytesmaxGraphemes: 5000 graphemes
employmentType string Optional

Type of employment (full-time, part-time, contract, etc.).

Known values: id.sifa.defs#fullTime, id.sifa.defs#partTime, id.sifa.defs#temporary, id.sifa.defs#seasonal, id.sifa.defs#contract, id.sifa.defs#freelance, id.sifa.defs#selfEmployed, id.sifa.defs#independentWork, id.sifa.defs#internship, id.sifa.defs#apprenticeship, id.sifa.defs#fellowship, id.sifa.defs#trainee, id.sifa.defs#volunteer, id.sifa.defs#boardMember, id.sifa.defs#boardObserver, id.sifa.defs#advisor
endedAt string Optional

End date of the position in YYYY-MM or YYYY-MM-DD format. Omit if this is a current position.

entityRef string uri Optional

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.

isPrimary boolean Optional

Whether this is the user's primary current position, displayed on the identity card.

onBehalfOf string Optional

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.

maxLength: 2560 bytesmaxGraphemes: 256 graphemes
onBehalfOfDid string did Optional

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).

onBehalfOfEntityRef string uri Optional

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.

skills array of ref id.sifa.defs#skillRef Optional

Skills used in this position. Each entry is a URI reference to an id.sifa.profile.skill record owned by the same DID.

maxLength: 50 items
startedAt string Required

Start date of the position in YYYY-MM or YYYY-MM-DD format.

title string Required

Job title or role name.

maxLength: 2560 bytesminLength: 1 bytesmaxGraphemes: 256 graphemes
workplaceType string Optional

Workplace arrangement (on-site, remote, hybrid).

Known values: id.sifa.defs#onSite, id.sifa.defs#remote, id.sifa.defs#hybrid
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "title",
      "startedAt",
      "createdAt"
    ],
    "properties": {
      "title": {
        "type": "string",
        "maxLength": 2560,
        "minLength": 1,
        "description": "Job title or role name.",
        "maxGraphemes": 256,
        "x-skos:exactMatch": [
          "org:role",
          "schema:roleName"
        ]
      },
      "labels": {
        "refs": [
          "com.atproto.label.defs#selfLabels"
        ],
        "type": "union",
        "description": "Self-label values for this position record."
      },
      "skills": {
        "type": "array",
        "items": {
          "ref": "id.sifa.defs#skillRef",
          "type": "ref"
        },
        "maxLength": 50,
        "description": "Skills used in this position. Each entry is a URI reference to an id.sifa.profile.skill record owned by the same DID."
      },
      "company": {
        "type": "string",
        "maxLength": 2560,
        "minLength": 1,
        "description": "Company or organization name. Optional: omit for self-employed, freelance, contract, or independent work that has no separately named or registered entity.",
        "maxGraphemes": 256,
        "x-skos:exactMatch": [
          "org:organization",
          "schema:worksFor"
        ]
      },
      "endedAt": {
        "type": "string",
        "description": "End date of the position in YYYY-MM or YYYY-MM-DD format. Omit if this is a current position.",
        "x-skos:exactMatch": [
          "schema:endDate"
        ]
      },
      "location": {
        "ref": "community.lexicon.location.address",
        "type": "ref",
        "description": "Work location. Sifa enforces ISO 3166-1 alpha-2 country codes at the app layer.",
        "x-skos:exactMatch": [
          "schema:jobLocation"
        ]
      },
      "createdAt": {
        "type": "string",
        "format": "datetime",
        "description": "Client-declared timestamp when this record was originally created."
      },
      "entityRef": {
        "type": "string",
        "format": "uri",
        "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.",
        "x-skos:closeMatch": [
          "schema:sameAs"
        ]
      },
      "isPrimary": {
        "type": "boolean",
        "description": "Whether this is the user's primary current position, displayed on the identity card."
      },
      "startedAt": {
        "type": "string",
        "description": "Start date of the position in YYYY-MM or YYYY-MM-DD format.",
        "x-skos:exactMatch": [
          "schema:startDate"
        ]
      },
      "companyDid": {
        "type": "string",
        "format": "did",
        "description": "DID of the company's ATproto account, if one exists. Enables verified company linking."
      },
      "onBehalfOf": {
        "type": "string",
        "maxLength": 2560,
        "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.",
        "maxGraphemes": 256
      },
      "description": {
        "type": "string",
        "maxLength": 50000,
        "description": "Description of responsibilities, achievements, and duties.",
        "maxGraphemes": 5000,
        "x-skos:exactMatch": [
          "dcterms:description"
        ]
      },
      "onBehalfOfDid": {
        "type": "string",
        "format": "did",
        "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)."
      },
      "workplaceType": {
        "type": "string",
        "description": "Workplace arrangement (on-site, remote, hybrid).",
        "knownValues": [
          "id.sifa.defs#onSite",
          "id.sifa.defs#remote",
          "id.sifa.defs#hybrid"
        ],
        "x-skos:note": "schema.org models only a remote flag; Sifa distinguishes onSite, remote, and hybrid.",
        "x-skos:narrowMatch": [
          "schema:jobLocationType"
        ]
      },
      "employmentType": {
        "type": "string",
        "description": "Type of employment (full-time, part-time, contract, etc.).",
        "knownValues": [
          "id.sifa.defs#fullTime",
          "id.sifa.defs#partTime",
          "id.sifa.defs#temporary",
          "id.sifa.defs#seasonal",
          "id.sifa.defs#contract",
          "id.sifa.defs#freelance",
          "id.sifa.defs#selfEmployed",
          "id.sifa.defs#independentWork",
          "id.sifa.defs#internship",
          "id.sifa.defs#apprenticeship",
          "id.sifa.defs#fellowship",
          "id.sifa.defs#trainee",
          "id.sifa.defs#volunteer",
          "id.sifa.defs#boardMember",
          "id.sifa.defs#boardObserver",
          "id.sifa.defs#advisor"
        ],
        "x-skos:note": "schema:employmentType is free text. ESCO is the better value anchor.",
        "x-skos:closeMatch": [
          "schema:employmentType"
        ]
      },
      "onBehalfOfEntityRef": {
        "type": "string",
        "format": "uri",
        "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."
      }
    }
  },
  "description": "Record representing a single work position or role.",
  "x-skos:closeMatch": [
    "org:Membership",
    "schema:OrganizationRole"
  ]
}

Lexicon Garden

@