Find jobs Resume Career advice Sign in

API Documentation

Integrate ScrollJob with your application or service

Post a Job via API

Submit job postings programmatically. All jobs are moderated before being published.

Authentication required: direct job creation endpoints are now available only to signed-in users from their employer cabinet.

POST /api/jobs/

Request Headers

Content-Type: application/json

Required Fields

Field Type Description
title * string Job title
company * string Company name
full_description * string Complete job description
submitted_by_email * email Your email for notifications
location or is_remote * string / boolean Job location or set is_remote to true
apply_url or apply_email * url / email How candidates can apply

Optional Fields

Field Type Description
category string Job category (e.g., "Software Development")
employment_type string full-time, part-time, contract, or internship
salary_min number Minimum salary
salary_max number Maximum salary
company_website url Company website URL

Example Request

curl -X POST https://fr.scrolljob.org/api/jobs/ \ -H "Content-Type: application/json" \ -d '{ "title": "Senior Python Developer", "company": "Tech Company Inc", "location": "Kyiv, Ukraine", "is_remote": true, "full_description": "We are looking for...", "category": "Software Development", "employment_type": "full-time", "salary_min": 3000, "salary_max": 5000, "apply_url": "https://company.com/apply", "company_website": "https://company.com", "submitted_by_email": "[email protected]" }'

Success Response (201)

{ "success": true, "message": "Job submitted successfully. It will be reviewed shortly.", "job_id": 123, "slug": "senior-python-developer" }

Error Response (400)

{ "error": "Validation failed", "errors": { "title": ["This field is required."], "submitted_by_email": ["Enter a valid email address."] } }

Import Jobs from CSV

Bulk import jobs from a CSV file. All imported jobs will have status "pending" and require moderation.

Authentication required: CSV import is available only for signed-in employer accounts.

POST /api/jobs/import/

Request

Content-Type: multipart/form-data

Form field: file (CSV file)

CSV Format

The CSV file must include the following columns:

title,company,location,is_remote,full_description,category,employment_type,salary_min,salary_max,apply_url,apply_email,company_website,submitted_by_email

CSV Example

title,company,location,is_remote,full_description,category,employment_type,salary_min,salary_max,apply_url,apply_email,company_website,submitted_by_email "Senior Python Developer","Tech Co","Kyiv",true,"We are looking for...","Software","full-time",3000,5000,"https://apply.com",,"https://company.com","[email protected]" "DevOps Engineer","Cloud Inc","Remote",true,"Experienced DevOps...","Infrastructure","full-time",4000,6000,,"[email protected]","https://cloud.com","[email protected]"

Example Request

curl -X POST https://fr.scrolljob.org/api/jobs/import/ \ -F "[email protected]"

Success Response (200)

{ "success": true, "imported": 15, "errors": null }

Response with Errors

{ "success": true, "imported": 13, "errors": [ "Row 3: Missing required field: title", "Row 7: Invalid email format" ] }

Best Practices

  • All submitted jobs are moderated before publication
  • Provide accurate contact information for status updates
  • Use meaningful job titles and detailed descriptions
  • Specify either location or mark as remote
  • Include salary information when possible