Get started as a developer
What you can build with Careers Orbit, which key each API needs, and your first request, from a job list on your website to an HR system that hears about every hire.
Tutorial3 min read
Careers Orbit keeps your organisation's jobs, career site and candidates. As a developer you can show the jobs on your own website or app, take applications there, connect other systems, and let AI assistants help the hiring team.
What to use for what
careers_pk_CandidatePortal in the SDKwhsec_careers_mt_| You want to | Use | Credential | Plan |
|---|---|---|---|
| Show jobs on your website and take applications | Delivery API or GraphQL, through an SDK | Public key, careers_pk_ | Every plan |
| Do that in Next.js, PHP, Swift or Kotlin | Careers SDK, PHP, Swift, Kotlin | Public key | Every plan |
| Let candidates follow their applications on your website | The candidate portal calls in the delivery API, or CandidatePortal in the SDK | Public key and the candidate's session | Every plan |
| Refresh your job pages when jobs change | The website webhook | A signing secret, whsec_ | Every plan |
| Read and update candidates and jobs from scripts or an HR system | Management API | Management token, careers_mt_ | Growth and Enterprise |
| Tell your own systems when something happens | Webhooks | A signing secret per webhook | Growth and Enterprise |
| Let AI assistants work with jobs and applications | The MCP server | OAuth, as the person who connects | Every plan |
Admins create keys, tokens and webhooks. If you aren't an admin, ask one, or ask for the key for your environment.
Addresses
https://api.bifrostorbit.com/careers/v1https://api-stage.bifrostorbit.com/careers/v1https://api.bifrostorbit.com/careers/graphqlhttps://api-stage.bifrostorbit.com/careers/graphqlhttps://app.bifrostorbit.com/careers/api/v1https://app.bifrostorbit.com/careers/mcp| Production | Staging | |
|---|---|---|
| Delivery API | https://api.bifrostorbit.com/careers/v1 | https://api-stage.bifrostorbit.com/careers/v1 |
| GraphQL | https://api.bifrostorbit.com/careers/graphql | https://api-stage.bifrostorbit.com/careers/graphql |
| Management API | https://app.bifrostorbit.com/careers/api/v1 | |
| MCP server | https://app.bifrostorbit.com/careers/mcp |
API keys shows the delivery and management addresses for your organisation.
Your first request
- Ask an admin to create a public key under API keys, named after your website, such as northwilds.com. See API keys.
- List the live jobs:
curl -H "Authorization: Bearer careers_pk_..." \ "https://api.bifrostorbit.com/careers/v1/jobs?locale=en"{ "data": [ { "slug": "mountain-guide-lofoten", "title": "Mountain guide, Lofoten", "url": "https://northwilds.com/careers/mountain-guide-lofoten/", "employmentType": "fullTime", "remote": "onsite" } ], "meta": { "locale": "en", "total": 1, "page": 1, "perPage": 50 }}- Read one job with GET
/jobs/mountain-guide-lofoten. It carries the application form, the privacy notice and the JobPosting data for Google for Jobs.
Or skip the terminal: the API playground runs the same requests with your own jobs, and copies them as curl or JavaScript.
Build a careers section
For a Next.js website, follow The Careers SDK: a job list with filters, job pages with JobPosting data, an apply form, a sitemap, the candidate portal and pages that refresh when a job changes. Then, under Career site › Address and website:
- Set Job addresses to where your job pages live, so the API, Google for Jobs and candidates' emails link to them. See Addresses and your website.
- Add your website to Allowed websites if you want to limit which websites may call the API from a browser.
Under Settings › Website webhook, set the webhook so closed jobs leave your website within seconds.
Connect another system
- Ask an admin to create a management token under API keys. Leave Read only on unless the system must change things.
- Call GET
/meto see who the token acts as and what it may do. - Add a webhook under Webhooks for the events the system needs, such as
careers.application.hired, and look up the details with the management API.
When something fails
Every error is JSON with a code and a message you can show. Troubleshooting lists them with their fixes.
Was this page helpful?