# Trakstar Hire (Recruiterbox) Jobs API

> Query jobs from Trakstar Hire boards through one API. Formerly Recruiterbox — which is still the name the endpoint and the source value use.

Source: https://hyperjobs.io/ats/recruiterbox

Trakstar Hire is the ATS formerly called Recruiterbox, and the rename never
reached the plumbing. The boards are at `<slug>.recruiterbox.com`, the API is at
`jsapi.recruiterbox.com`, and the `source` value here is `recruiterbox`. If you're
looking for `trakstar` in the [vocabulary](/docs/reference/sources), that's why
it isn't there.

It's a small source — our queue tracks 314 boards — and a simple one. This is a
short page because the platform doesn't support a long one, and padding it out
would just be [Greenhouse](/ats/greenhouse)'s page with the nouns swapped.

## Try it

```bash
curl -G https://api.hyperjobs.io/v1/jobs \
  -H "Authorization: Bearer $HYPERJOBS_KEY" \
  --data-urlencode "source=recruiterbox" \
  --data-urlencode "limit=2"
```

```json title="Illustrative — the shape, not a live response"
{
  "data": [
    {
      "id": "recruiterbox:4471902",
      "title": "Inside Sales Representative",
      "company": {
        "slug": "verdant-supply",
        "name": "Verdant Supply",
        "domain": "verdantsupply.com",
        "website": "https://verdantsupply.com",
        "logo": "https://media.licdn.com/dms/image/…",
        "industry": "Wholesale",
        "employee_count": 130
      },
      "location": {
        "remote": true,
        "countries": ["United States"],
        "cities": null,
        "regions": null,
        "raw": ["Remote"]
      },
      "employment_type": ["FULL_TIME"],
      "work_arrangement": "Remote",
      "salary": null,
      "skills": ["b2b sales", "crm"],
      "taxonomies": ["Sales"],
      "apply_url": "https://verdantsupply.recruiterbox.com/jobs/4471902",
      "url": "https://verdantsupply.recruiterbox.com/jobs/4471902",
      "source": "recruiterbox",
      "posted_at": null,
      "expires_at": null,
      "updated_at": "2026-07-13T09:27:51.000Z"
    }
  ],
  "total": 2,
  "limit": 2,
  "offset": 0
}
```

## How Trakstar Hire boards actually work

One paginated JSON endpoint, no auth, descriptions inline:

```bash
curl "https://jsapi.recruiterbox.com/v1/openings?client_name=<slug>&offset=0&limit=100"
```

`<slug>` is the `client_name` — the subdomain from `<slug>.recruiterbox.com`.
Note it's a **query parameter on a shared host**, not a per-tenant subdomain like
most of this pool.

The response is `{ meta: { offset, limit, total }, objects: [...] }`. Page on
`offset` until you hit `meta.total` or a short page. Per opening you get `id`,
`title`, `description` (full HTML, inline — no detail call), `hosted_url`,
`location`, `allows_remote`, `position_type` and `team`.

That's the API. There isn't more of it.

## What bites you

**There's no posting date.** The feed exposes a close date and no publish date, so
`posted_at` is null on this source. Same gap as [Pinpoint](/ats/pinpoint), and it
means `?time_frame=` under-reports here relative to sources that publish one.

**`location` is a string or an object, depending.** Sometimes a plain string,
sometimes `{ city, state, country }`, sometimes `{ name }`. All three occur and
nothing signals which you're getting.

**`allows_remote` is a clean binary with no hybrid.** Unlike
[Ashby](/ats/ashby)'s or [Breezy](/ats/breezy)'s hybrid-inclusive flags, this one
is honest: `true` means remote, explicit `false` means on-site. But the platform
can't express hybrid at all, so a hybrid role here is simply one or the other.

## Or use ours

Not much, on this one specifically. One paginated call gets you a Trakstar Hire
board with descriptions, and if that's all you need, take it.

The reasons to use ours are the ones that aren't about this platform: the 314
boards already found, the three `location` shapes handled, ids and fields
normalised into the same [`Job`](/docs/objects/job) shape as the other sixteen
[sources](/docs/reference/sources), dedup against the same role posted elsewhere,
expiry by board diffing since the feed declares none, and the [company
join](/docs/objects/company).

Trakstar Hire is in the fast refresh tier, attempted every cycle — see
[coverage](/docs/reference/coverage).

[Quickstart](/docs/quickstart) · [Pricing](/pricing)
