Create a job
Remote modality and locations
remote_modality controls which location fields the Jobs API reads:
- fully_remote: do not send location fields. Regions, countries, and cities are cleared.
- remote_local: send location_region_ids and/or location_country_ids as slugs from GET /api/v0/regions and GET /api/v0/countries.
- no_remote, hybrid, temporarily_remote: send location_city_ids as numeric city IDs from GET /api/v0/cities.
Unknown or wrong identifier types resolve to empty locations and can return 422. location_city_ids uses city IDs, not city names, country slugs, or tenant_city_ids.
Typical job publishing flow: create the job with POST /api/v0/jobs, review validation errors if the response is 422, then submit the saved draft with POST /api/v0/jobs/{job_id}/submit so Get on Board can moderate it before publication. Use lang=en while integrating if you want English validation messages.
Posting on behalf of a client brand (company shells)
Partner accounts (typically ATS integrations posting for many client companies) can brand a job as one of their company shells instead of their own account: send company_shell_id with the shell's slug (from GET /api/v0/company_shells). Every public surface — job page, company profile link, logo, feeds, and public API — then shows the client company's identity, while applications, processes, and billing stay on your account. Omit the field for a normal job; on update, send "" to detach the shell. See the Company shells section to create and manage shells.
Naming the final employer (recruiters and outsourcing companies)
Use hiring_company and hiring_company_website when you are recruiting or outsourcing on behalf of a client, to name the company where the applicant will actually work. Once hiring_company is given, hiring_company_website is required too. From 5 Oct 2026, a job that our review flags as hiding the final employer is rejected with obfuscated_company unless your company holds a Recruiter-or-higher subscription. Placeholder names ("confidential", "rubro") and your own company name are rejected — name the real client.
Request
- Base URLhttps://www.getonbrd.com
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Headers
Bearer credential for the authentication scheme required by this endpoint.
Request body
Response
Creates a new job posting for the authenticated company.
Changes
No recorded changes to this operation across all 1 revision of this API.