Skip to content

Job Schema

The Job schema is designed for aggregating job listings from career pages and job boards.

FieldTypeRequiredIdentityDescription
titlestringYesYes (1)Job title
companystringYesYes (2)Company name
locationstringNoNoJob location (e.g., “Remote”, “New York, NY”)
urlstringNoNoLink to the full job posting
salarystringNoNoSalary range or compensation info
posted_atstringNoNoWhen the job was posted
tagsstring[]NoNoTags or categories (e.g., [“devops”, “kubernetes”])

The identity is computed from company + title in that order. This means:

  • Same company + same title = duplicate
  • Different company + same title = unique items
{
"title": "Senior DevOps Engineer",
"company": "Acme Corp",
"location": "Remote (US)",
"url": "https://jobs.lever.co/acme/123",
"salary": "$150,000 - $200,000",
"posted_at": "2026-01-15",
"tags": ["devops", "kubernetes", "aws", "terraform"]
}
  • Company career page aggregators
  • Niche job boards (e.g., “Remote DevOps Jobs”)
  • Job market research tools
{
"container": ".job-posting",
"fields": {
"title": {
"selector": "h2.job-title",
"type": "text"
},
"company": {
"selector": ".company-name",
"type": "text"
},
"location": {
"selector": ".location",
"type": "text"
},
"url": {
"selector": "a.apply-link",
"type": "attribute",
"attribute": "href"
},
"tags": {
"selector": ".tag",
"type": "text",
"multiple": true
}
}
}