jobze

Job posting API

Post jobs to Jobze programmatically from your ATS or internal tools. Jobs posted via the API are identical to jobs posted through the form: same 60-day listings, same dashboard, applicants and analytics. API access is a paid add-on; see pricing.

Authentication

Create an API key from your dashboard and send it as a bearer token. Keys are shown once at creation, stored hashed, and can be revoked at any time.

Authorization: Bearer jbz_YOUR_API_KEY

Post directly from Claude

Jobze ships an MCP connector, so you can post jobs by simply asking Claude: paste a job description into a chat and say "post this to Jobze". Claude fills in the fields, you confirm, and the listing goes live.

  1. Create an API key from your dashboard.
  2. In Claude, go to Settings > Connectors > Add custom connector and paste this URL with your key:
https://jobze.co.uk/api/mcp?key=jbz_YOUR_API_KEY

The connector exposes a post_job tool. Treat the URL like a password: it contains your API key. The same authentication, validation, moderation and rate limits apply as for direct API calls.

Create a job

POST /api/v1/jobs with a JSON body. Returns 201 with the new listing on success.

curl -X POST https://jobze.co.uk/api/v1/jobs \
  -H "Authorization: Bearer jbz_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Senior Software Engineer",
    "company_name": "Acme Ltd",
    "location": "London, UK",
    "category": "software_engineering",
    "work_mode": "hybrid",
    "employment_type": "full_time",
    "salary_min": 80000,
    "salary_max": 95000,
    "salary_period": "year",
    "apply_email": "careers@acme.com",
    "company_website": "acme.com",
    "screening_questions": ["Do you have the right to work in the UK?"],
    "description": "We are hiring a senior engineer to join our platform team..."
  }'

Response

{
  "id": "3f9c1a2e-...",
  "slug": "senior-software-engineer-acme-ltd-x7k2p",
  "status": "published",
  "url": "https://jobze.co.uk/jobs/senior-software-engineer-acme-ltd-x7k2p",
  "expires_at": "2026-10-11T09:30:00.000Z"
}

Fields

Required fields apply to published jobs. Drafts ("status": "draft") only need a title.

FieldTypeRequiredNotes
titlestringYesAt least 4 characters.
company_namestringYesShown on the listing.
locationstringYese.g. "London, UK".
descriptionstringYesAt least 100 characters. Plain text or light markdown (headings, bullets, bold).
categorystringYesOne of the category slugs listed below.
work_modestringYesremote, hybrid, onsite.
employment_typestringYesfull_time, part_time, contract, internship.
apply_urlstringOne of these twoLink to your careers page or ATS. Bare domains are accepted.
apply_emailstringOne of these twoCandidates apply on Jobze with a CV and we forward applications to this address.
company_websitestringNoBare domains are accepted.
salary_minnumberNoGBP, in the unit set by salary_period.
salary_maxnumberNoGBP. Must be at least salary_min.
salary_periodstringNohour, month or year. Defaults to year.
bonusstringNoe.g. "10% annual bonus + equity".
screening_questionsstring[]NoUp to 5 pre-qualifying questions (300 characters each). Candidates must answer before applying.
statusstringNoSet to "draft" to save without publishing. Defaults to published.

Category slugs

softwarehardwaredeep-techdata-aicivil-engineeringmechanicalelectricalaerospaceenergybiotechmanufacturingfinanceaccountinglegalhealthcarepharmasciencearchitectureconstructionconsultingproduct-designmarketingsaleshroperationseducationpublic-sectortelecomsactuarialother

Errors

StatusMeaning
400Validation failed. The error message says which field to fix.
401Missing, malformed, invalid or revoked API key.
403Your account doesn't have API access.
429Rate limit exceeded: 30 requests per minute per key.
500Something went wrong on our side. Safe to retry.

Error responses are JSON: {"error": "Please enter a job title."}

Rate limits

30 requests per minute per key. Every request is logged and visible to you for auditing. Need more? Email hello@jobze.co.uk.