Your job board API
The API allows to integrate your job board with other services, automate tasks and create custom workflows.
It is accessible on your job board address and accepts JSON or form-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP verbs, response codes and authentication.
Method | Endpoint | Description | Authorization | ||
---|---|---|---|---|---|
GET
|
/jobs.json | The list of all active jobs |
None
|
||
curl -X GET https://job.board.com/jobs.json [ { "id": 1, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "100000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "email", "application_email": "[email protected]", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../1.png", "url": "https://job.board.com/jobs/1.json", "preview_image_url": "https://job.board.com/jobs/1.png", "created_at": "2024-10-03T19:04:50+00:00" }, { "id": 2, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "120000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "url", "application_url": "https://www.company.com/application", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../2.png", "url": "https://job.board.com/jobs/2.json", "preview_image_url": "https://job.board.com/jobs/2.png", "created_at": "2024-10-03T19:04:50+00:00" } ] | |||||
GET
|
/jobs.json?q=keyword | Search the jobs by the given keyword |
None
|
||
curl -X GET https://job.board.com/jobs.json?q=keyword [ { "id": 1, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "100000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "email", "application_email": "[email protected]", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../1.png", "url": "https://job.board.com/jobs/1.json", "preview_image_url": "https://job.board.com/jobs/1.png", "created_at": "2024-10-03T19:04:50+00:00" }, { "id": 2, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "120000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "url", "application_url": "https://www.company.com/application", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../2.png", "url": "https://job.board.com/jobs/2.json", "preview_image_url": "https://job.board.com/jobs/2.png", "created_at": "2024-10-03T19:04:50+00:00" } ] | |||||
GET
|
/jobs.json?term=term_id | Filter the jobs by the given term ID |
None
|
||
curl -X GET https://job.board.com/jobs.json?term=1 [ { "id": 1, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "100000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "email", "application_email": "[email protected]", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../1.png", "url": "https://job.board.com/jobs/1.json", "preview_image_url": "https://job.board.com/jobs/1.png", "created_at": "2024-10-03T19:04:50+00:00" }, { "id": 2, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "120000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "url", "application_url": "https://www.company.com/application", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../2.png", "url": "https://job.board.com/jobs/2.json", "preview_image_url": "https://job.board.com/jobs/2.png", "created_at": "2024-10-03T19:04:50+00:00" } ] | |||||
GET
|
/jobs.json?category=category_id | Filter the jobs by the given category ID |
None
|
||
curl -X GET https://job.board.com/jobs.json?category=1 [ { "id": 1, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "100000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "email", "application_email": "[email protected]", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../1.png", "url": "https://job.board.com/jobs/1.json", "preview_image_url": "https://job.board.com/jobs/1.png", "created_at": "2024-10-03T19:04:50+00:00" }, { "id": 2, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "120000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "url", "application_url": "https://www.company.com/application", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../2.png", "url": "https://job.board.com/jobs/2.json", "preview_image_url": "https://job.board.com/jobs/2.png", "created_at": "2024-10-03T19:04:50+00:00" } ] | |||||
GET
|
/jobs/:id.json | The details of a job with the given ID |
None
|
||
curl -X GET https://job.board.com/jobs/1.json { "id": 1, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "100000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "email", "application_email": "[email protected]", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../1.png", "url": "https://job.board.com/jobs/1.json", "preview_image_url": "https://job.board.com/jobs/1.png", "created_at": "2024-10-03T19:04:50+00:00" } | |||||
POST
|
/jobs.json | Create a new job |
User
|
||
curl -X POST https://job.board.com/jobs.json \ -u [email protected]:password \ -F "job[title]=Job title" \ -F "job[description]=Job description in Markdown format" \ -F "job[salary]=120000" \ -F "job[salary_currency]=USD" \ -F "job[salary_period]=yearly" \ -F "job[arrangement]=remote" \ -F "job[location]=Worldwide" \ -F "job[category_id]=1" \ -F "job[term_id]=1" \ -F "job[company]=Company LLC" \ -F "job[company_website]=https://www.company.com" \ -F "job[logo]=@/path/to/image.png" \ -F "job[application_type]=url" \ -F "job[application_url]=https://www.company.com/application" { "id": 2, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "120000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "url", "application_url": "https://www.company.com/application", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../2.png", "url": "https://job.board.com/jobs/2.json", "preview_image_url": "https://job.board.com/jobs/2.png", "created_at": "2024-10-03T19:04:50+00:00" } | |||||
PUT
|
/jobs/:id.json | Update a job with the given ID |
User
|
||
curl -X PUT https://job.board.com/jobs/2.json \ -u [email protected]:password \ -F "job[title]=Job title" \ -F "job[description]=Job description in Markdown format" { "id": 2, "title": "Job title", "description": "Job description in Markdown format", "location": "Worldwide", "arrangement": "remote", "salary": "120000", "salary_currency": "USD", "salary_period": "yearly", "company": "Company LLC", "company_website": "https://www.company.com", "application_type": "url", "application_url": "https://www.company.com/application", "term": { "id": 1, "name": "Full-time" }, "category": { "id": 1, "name": "Engineering" }, "plan": { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, "logo": "https://job.board.com/files/.../2.png", "url": "https://job.board.com/jobs/2.json", "preview_image_url": "https://job.board.com/jobs/2.png", "created_at": "2024-10-03T19:04:50+00:00" } | |||||
DELETE
|
/jobs/:id.json | Delete a job with the given ID |
User
|
||
curl -X DELETE https://job.board.com/jobs/2.json \ -u [email protected]:password { "message": "Job successfully deleted." } | |||||
GET
|
/categories.json | The list of all categories |
User
|
||
curl -X GET https://job.board.com/categories.json \ -u [email protected]:password [ { "id": 1, "name": "Engineering" }, { "id": 2, "name": "Design" } ] | |||||
POST
|
/categories.json | Create a new category |
Admin
|
||
curl -X POST https://job.board.com/categories.json \ -u [email protected]:password \ -F "job[name]=Design" { "id": 2, "name": "Design" } | |||||
PUT
|
/categories/:id.json | Update a category with the given ID |
Admin
|
||
curl -X PUT https://job.board.com/categories/2.json \ -u [email protected]:password \ -F "job[name]=Design" { "id": 2, "name": "Design" } | |||||
DELETE
|
/categories/:id.json | Delete a category with the given ID and all related jobs ⚠️ |
Admin
|
||
curl -X DELETE https://job.board.com/categories/2.json \ -u [email protected]:password { "message": "Category was successfully removed." } | |||||
GET
|
/terms.json | The list of all terms |
User
|
||
curl -X GET https://job.board.com/terms.json \ -u [email protected]:password [ { "id": 1, "name": "Full-time" }, { "id": 2, "name": "Part-time" } ] | |||||
POST
|
/terms.json | Create a new term |
Admin
|
||
curl -X POST https://job.board.com/terms.json \ -u [email protected]:password \ -F "job[name]=Part-time" { "id": 2, "name": "Part-time" } | |||||
PUT
|
/terms/:id.json | Update a term with the given ID |
Admin
|
||
curl -X PUT https://job.board.com/terms/2.json \ -u [email protected]:password \ -F "job[name]=Part-time" { "id": 2, "name": "Part-time" } | |||||
DELETE
|
/terms/:id.json | Delete a term with the given ID and all related jobs ⚠️ |
Admin
|
||
curl -X DELETE https://job.board.com/terms/2.json \ -u [email protected]:password { "message": "Term was successfully deleted." } | |||||
GET
|
/plans.json | The list of all active plans |
User
|
||
curl -X GET https://job.board.com/plans.json \ -u [email protected]:password [ { "id": 1, "name": "Basic", "price": 0, "period": 30, "highlight": false, "badge": false, "pin": false }, { "id": 2, "name": "Highlighted", "price": 49, "period": 30, "highlight": true, "badge": false, "pin": false }, { "id": 3, "name": "Featured", "price": 99, "period": 30, "highlight": true, "badge": true, "pin": true } ] | |||||
POST
|
/plans.json | Create a new plan |
Admin
|
||
curl -X POST https://job.board.com/plans.json \ -u [email protected]:password \ -F "job[name]=Featured" \ -F "job[price]=99" \ -F "job[period]=30" \ -F "job[highlight]=true" \ -F "job[badge]=true" \ -F "job[pin]=true" { "id": 3, "name": "Featured", "price": 99, "period": 30, "highlight": true, "badge": true, "pin": true } | |||||
PUT
|
/plans/:id.json | Update a plan with the given ID |
Admin
|
||
curl -X PUT https://job.board.com/plans/3.json \ -u [email protected]:password \ -F "job[price]=99" { "id": 3, "name": "Featured", "price": 99, "period": 30, "highlight": true, "badge": true, "pin": true } | |||||
PUT
|
/plans/:id/archive.json | Archive a plan with the given ID |
Admin
|
||
curl -X PUT https://job.board.com/plans/3/archive.json \ -u [email protected]:password { "message": "Plan successfully archived." } | |||||
GET
|
/analytics.json | The analytics data for the board |
Admin
|
||
curl -X GET https://job.board.com/analytics.json \ -u [email protected]:password { "events_per_day": { "2024-10-03": 16, "2024-10-02": 90, "2024-10-01": 72, "2024-09-30": 54, "2024-09-29": 60 }, "top_paths": { "/": 35, "/jobs/1": 15, "/jobs/2": 14, "/users/sign_in": 12, "/jobs/3": 7, "/jobs/4": 5 }, "top_countries": { "United States": 30, "Germany": 22, "France": 15, "Denmark": 5 }, "top_sources": { "google.com": 10, "x.com": 6 }, "jobs": 2, "subscribers": 1, "users": 2 } | |||||
GET
|
/subscribers.json | The list of all email subsribers |
Admin
|
||
curl -X GET https://job.board.com/subscribers.json \ -u [email protected]:password [ { "id": 1, "email": "[email protected]", "email_confirmed": true, "created_at": "2024-10-02T19:04:50+00:00", "updated_at": "2024-10-02T19:04:50+00:00" } ] | |||||
GET
|
/users.json | The list of all registered users |
Admin
|
||
curl -X GET https://job.board.com/users.json \ -u [email protected]:password [ { "id": 1, "email": "[email protected]", "role": "admin", "created_at": "2024-10-02T19:04:50+00:00", "updated_at": "2024-10-02T19:04:50+00:00" }, { "id": 2, "email": "[email protected]", "role": "user", "created_at": "2024-10-02T19:04:50+00:00", "updated_at": "2024-10-02T19:04:50+00:00" } ] |
- Administrators can read, create, update and delete any resource on the board.
- Some resources will return extra data when authenticated as administrator or the owner of that resource.
- If your integration does not need administrator access, it's a good idea to create a separate user on your board to authenticate the API requests.
- Please keep your email and password secure! Change them if you think someone else has access to them.