today.joblist.job
A job offer, posted by anyone. When the author's handle equals the company key (its domain), it is the company's own offer. Offers expire; renew to extend. Applications never go through joblist: `apply` says where to send them.
Details · record, key tid
| Kind | record |
|---|---|
| Record key | tid |
| Authority | joblist.today |
| Indexed |
Checks
Validmissing-primary-descriptiondefs.mainThe record has no description.large-stringdefs.main.record.properties.descriptionmaxLength is over 20 KB. Use a blob for content that large.unlimited-stringdefs.main.record.properties.employmentNo maxLength, maxGraphemes or format limits this string.unlimited-stringdefs.main.record.properties.remoteNo maxLength, maxGraphemes or format limits this string.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"apply": {
"description": "How to apply. Applications go straight to the poster: joblist never receives them.",
"properties": {
"bluesky": {
"description": "Apply by sending a direct message to the poster's account on Bluesky.",
"type": "boolean"
},
"url": {
"description": "An application form (https://…) or an email address (mailto:…).",
"format": "uri",
"type": "string"
}
},
"type": "object"
},
"main": {
"key": "tid",
"record": {
"properties": {
"applicantLocations": {
"description": "Countries applicants can work from (ISO 3166-1 alpha-2 codes, e.g. 'DE'), for remote offers.",
"items": {
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"maxLength": 50,
"type": "array"
},
"apply": {
"ref": "#apply",
"type": "ref"
},
"company": {
"description": "Company record key: its domain, lowercase, without 'www.' (see today.joblist.company).",
"maxLength": 253,
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"description": {
"maxGraphemes": 10000,
"maxLength": 100000,
"type": "string"
},
"employment": {
"knownValues": [
"full-time",
"part-time",
"contract",
"internship",
"volunteer"
],
"type": "string"
},
"expiresAt": {
"description": "After this date the offer is no longer shown.",
"format": "datetime",
"type": "string"
},
"langs": {
"description": "Languages the offer is written in (BCP-47 tags).",
"items": {
"format": "language",
"type": "string"
},
"maxLength": 3,
"type": "array"
},
"locations": {
"items": {
"ref": "today.joblist.company#location",
"type": "ref"
},
"maxLength": 20,
"type": "array"
},
"remote": {
"knownValues": [
"onsite",
"hybrid",
"remote"
],
"type": "string"
},
"salary": {
"ref": "#salary",
"type": "ref"
},
"status": {
"description": "Whether the offer still takes applications. Missing means open; a filled or closed offer is no longer shown.",
"knownValues": [
"open",
"filled",
"closed"
],
"maxLength": 32,
"type": "string"
},
"title": {
"maxGraphemes": 200,
"maxLength": 2000,
"type": "string"
},
"updatedAt": {
"description": "When the poster last edited the offer.",
"format": "datetime",
"type": "string"
},
"url": {
"description": "Where to read the offer: its page on the company's site or job board, or its joblist page. May equal the application link.",
"format": "uri",
"type": "string"
}
},
"required": [
"title",
"company",
"url",
"createdAt",
"expiresAt"
],
"type": "object"
},
"type": "record"
},
"salary": {
"description": "What the job pays, in whole units of the currency (not cents). At least one of min and max.",
"properties": {
"currency": {
"description": "ISO 4217 code, e.g. 'EUR'.",
"maxLength": 3,
"minLength": 3,
"type": "string"
},
"max": {
"minimum": 0,
"type": "integer"
},
"min": {
"minimum": 0,
"type": "integer"
},
"period": {
"knownValues": [
"year",
"month",
"week",
"day",
"hour"
],
"maxLength": 16,
"type": "string"
}
},
"required": [
"currency",
"period"
],
"type": "object"
}
},
"description": "A job offer, posted by anyone. When the author's handle equals the company key (its domain), it is the company's own offer. Offers expire; renew to extend. Applications never go through joblist: `apply` says where to send them.",
"id": "today.joblist.job",
"lexicon": 1
}