# Edenspiekermann Jobs API

Public read-only endpoint for the current job openings shown on edenspiekermann.com.

- Endpoint: `https://www.edenspiekermann.com/api/v1/jobs`
- Method: `GET`
- Response type: `application/json`
- Upstream source: Teamtailor public jobs API normalized into JSON
- Machine-readable schema: `https://www.edenspiekermann.com/.well-known/api-desc/jobs-openapi.json`
- Status endpoint: `https://www.edenspiekermann.com/.well-known/api-status/jobs`

## Optional filters

- `location`: return roles from one published office location; matching is case-insensitive.
- `level`: return roles at one derived experience level: `Leadership`, `Senior`, `Mid-level`, or `Junior`.

For example: `https://www.edenspiekermann.com/api/v1/jobs?location=Berlin&level=Senior`.

## Response shape

```json
{
  "data": [
    {
      "id": "string",
      "name": "string",
      "office": "string",
      "applyUrl": "https://careers.example.com/jobs/123/applications/new",
      "careerSiteUrl": "https://careers.example.com/jobs/123-role-name",
      "jobdescriptions": [
        {
          "name": "string",
          "value": "string"
        }
      ]
    }
  ]
}
```

## Notes

- This endpoint is read-only.
- Availability depends on the upstream Teamtailor API.
- Application links use the corresponding Teamtailor-hosted application form.
- Additional fields may be present on each job object.

## Versioning and deprecation

- Stable API operations use a major version in the URL, beginning with `/api/v1/jobs`.
- Breaking changes will be published under a new major path such as `/api/v2`.
- The unversioned `/api/jobs` alias is deprecated but has no scheduled sunset.
- A future removal will include RFC 9745 `Deprecation`, a migration link, and a `Sunset` header at least 90 days before removal.

## Rate limits

- Netlify enforces a quota of 120 requests per client per 60 seconds at the network edge, before the application or Teamtailor API is reached.
- Successful application responses advertise that policy through `RateLimit-Policy`.
- Requests above the quota receive HTTP 429. Retry after the 60-second policy window rather than immediately.
