Practical examples and common patterns for implementing the jobs.json specification.

Basic Approach

If maintaining a complete list of individual jobs in your jobs.json file is too much overhead, you can use the jobsUrl field to simply link to your careers page or job board. This approach is ideal when you already have a job board with up-to-date listings or want to adopt the specification without the overhead of maintaining individual job entries.

{
  "version": "0.1",
  "company": {
    "name": "Your Company Name",
    "url": "https://yourcompany.com",
    "jobsUrl": "https://yourcompany.com/careers"
  },
  "jobs": []
}

Hybrid Approach

You can also use both approaches together - list some key positions individually while also providing a jobsUrl for the complete listing:

{
  "version": "0.1",
  "company": {
    "name": "Your Company Name",
    "url": "https://yourcompany.com",
    "jobsUrl": "https://yourcompany.com/careers"
  },
  "jobs": [
    {
      "id": "featured-001",
      "title": "Senior Software Engineer (Featured)",
      "url": "https://yourcompany.com/careers/senior-software-engineer"
    }
  ]
}

Common Patterns

Multiple Locations

Specify multiple locations for a single position:

{
  "id": "job-002",
  "title": "Product Manager",
  "locations": [
    {
      "city": "New York",
      "state": "NY",
      "country": "USA",
      "remote": false
    },
    {
      "city": "London",
      "country": "UK",
      "remote": false
    }
  ]
}

Employment Type

Specify full-time, part-time, contract, or other employment types:

{
  "id": "job-003",
  "title": "Marketing Specialist",
  "employmentType": "FULL_TIME",
  "otherEmploymentTypes": ["PART_TIME", "CONTRACT", "TEMPORARY", "INTERN"]
}

Salary Information

Include transparent salary information:

{
  "id": "job-004",
  "title": "Senior Developer",
  "compensation": {
    "currency": "USD",
    "min": 120000,
    "max": 180000,
    "period": "YEARLY"
  }
}

Expiration Dates

Add expiration dates to job listings:

{
  "id": "job-005",
  "title": "Data Analyst",
  "postedDate": "2025-01-15",
  "expiresDate": "2025-03-15"
}

Complete Example

Here’s a complete example with multiple jobs and various fields:

{
  "version": "0.1",
  "company": {
    "name": "Tech Innovations Inc",
    "url": "https://techinnovations.example.com",
    "logo": "https://techinnovations.example.com/logo.png",
    "description": "Leading technology company focused on innovation",
    "jobsUrl": "https://techinnovations.example.com/careers"
  },
  "jobs": [
    {
      "id": "eng-001",
      "title": "Senior Software Engineer",
      "department": "Engineering",
      "location": {
        "city": "San Francisco",
        "state": "CA",
        "country": "USA",
        "remote": true
      },
      "employmentType": "FULL_TIME",
      "compensation": {
        "currency": "USD",
        "min": 150000,
        "max": 200000,
        "period": "YEARLY"
      },
      "url": "https://techinnovations.example.com/careers/senior-software-engineer",
      "postedDate": "2025-01-15"
    },
    {
      "id": "mkt-002",
      "title": "Product Marketing Manager",
      "department": "Marketing",
      "locations": [
        {
          "city": "New York",
          "state": "NY",
          "country": "USA",
          "remote": false
        },
        {
          "city": "Remote",
          "remote": true
        }
      ],
      "employmentType": "FULL_TIME",
      "url": "https://techinnovations.example.com/careers/product-marketing-manager",
      "postedDate": "2025-01-20"
    }
  ],
  "lastUpdated": "2025-01-25T10:30:00Z"
}

For more information, see the main specification or the schema reference.