All platforms

Hireology Jobs API

Query jobs from Hireology boards through one API with ?source=hireology — plus how Hireology's public careers API really behaves.

?source=hireologysource reference

Hireology is a hiring platform for multi-location US businesses: auto dealer groups, healthcare, retail, hospitality. Boards live at careers.hireology.com/<path>, and behind them sits the best-shaped source in this pool. Descriptions arrive inline at 100 rows per request, so a whole board is one or two calls with no detail fetch and no HTML parsing. There are 23,905 Hireology postings in this dataset — a number that moves hourly, so read it from /v1/meta rather than trusting this sentence.

Try it#

BASH
curl -G https://api.hyperjobs.io/v1/jobs \
  -H "Authorization: Bearer $HYPERJOBS_KEY" \
  --data-urlencode "source=hireology" \
  --data-urlencode "time_frame=7d" \
  --data-urlencode "limit=2"
Illustrative — the shape, not a live response
{
  "data": [
    {
      "id": "hireology:8412337",
      "title": "Salesperson",
      "company": {
        "slug": "6thavenuehonda",
        "name": "6th Avenue Honda",
        "domain": "6thavenuehonda.com",
        "website": "https://6thavenuehonda.com",
        "logo": "https://media.licdn.com/dms/image/…",
        "industry": "Motor Vehicle Manufacturing",
        "employee_count": 62
      },
      "location": {
        "remote": false,
        "countries": ["United States"],
        "cities": ["Stillwater"],
        "regions": ["OK"],
        "raw": ["Stillwater, OK"]
      },
      "employment_type": ["FULL_TIME"],
      "work_arrangement": null,
      "seniority": null,
      "salary": {
        "min": 24000,
        "max": 60000,
        "currency": null,
        "unit": "YEAR",
        "annual_min": 24000,
        "annual_max": 60000,
        "summary": null
      },
      "skills": ["sales", "customer service"],
      "taxonomies": ["Sales"],
      "apply_url": "https://careers.hireology.com/6thavenuehonda/8412337/description",
      "url": "https://careers.hireology.com/6thavenuehonda/8412337/description",
      "source": "hireology",
      "posted_at": "2026-07-09T13:32:51.875Z",
      "expires_at": null,
      "updated_at": "2026-07-14T06:11:02.000Z"
    }
  ],
  "total": 2,
  "limit": 2,
  "offset": 0
}

How Hireology boards actually work#

One call per 100 postings, bodies included:

BASH
curl "https://api.hireology.com/v2/public/careers/<path>?page=1&page_size=100"

<path> is the segment from careers.hireology.com/<path>; the <slug>.hireology.careers hostname maps to the same value. page_size is genuinely honored here (the default is a needlessly chatty 10), so most boards are a single request. job_description is full HTML on the list row. No N+1.

The apiToken is decorative#

The board HTML embeds an apiToken JWT in its startingData, positioned exactly like a credential you are supposed to mint, cache, refresh and pass. It isn't one.

The API returns byte-identical responses with no Authorization header

Verified against a live board: same rows, same descriptions, same everything, with the token and without it. There is no token refresh to build, no expiry to handle, and no 401 waiting for you at 3am when a JWT you didn't need lapses.

This is worth knowing precisely because the token looks so much like the hard part. It's the kind of thing you build a whole auth path around before noticing the endpoint never asked.

What bites you#

job_family is an object, not a string. This is the one that costs real money. It arrives as { id, name, depth }, and passing it straight through puts an object into a scalar column — every insert dies and the board stores zero jobs.

The reason it's worth a warning rather than a footnote is how it fails. A probe that checks the field is populated reports department: 100%, because an object is truthy. So the board reports perfect health while writing nothing at all. Take .name.

comp_frequency is not the pay unit. comp_period is the unit ("hour"). comp_frequency is the payroll cadence ("biweekly"). They sit next to each other, they both look like the answer, and reading the wrong one annualizes a $13/hour job by 26 and invents six-figure car-wash salaries. Also: "0.0" is Hireology's empty, not free labour.

There's no currency code. The API doesn't publish one. Hireology is US-only in practice, but the field is genuinely absent rather than implied, so currency comes back null rather than a guessed USD.

The API never tells you who the employer is. The board token is 6thavenuehonda and that is the entire identity the source hands over. There is no employer name field and no employer domain on the posting.

This is a real gap, and it nearly became a much worse one

Hireology has no tier-1 company-domain route — the platform publishes nothing to resolve a board to a company with, so the identity has to be inferred from outside the source.

The near-miss is instructive. An early identity pass graded Hireology TRUSTED 6/8 (75%) — and 6 of those 6 domains were hireology.com and hireology.careers. The board pages' og:url points at the ATS, so the highest confidence grade we had was about to stamp "Hireology" as the employer of every job on every one of its boards. Filtering the vendor's own domains collapses that 75% to an honest 0%.

A name that comes back as the token, title-cased, is not information. We'd rather show you the token than a confident wrong answer.

Or use ours#

The fetch is one call per 100 rows. Everything around it is the work.

Our queue tracks 2,508 Hireology boards, and the discovery is the reason that number exists: Hireology has no public customer index, and the Wayback CDX index yields 2,271 live boards from 58% of its candidates, against 350 from Common Crawl. Assembling that list is a bigger job than reading the API ever was.

You get job_family unwrapped to its name instead of zeroing a board, salary read off comp_period rather than the cadence next to it, "0.0" treated as empty, structured city/state locations, Hireology rows deduplicated against the same job on LinkedIn or elsewhere, expiry by board diffing, and whatever company identity we can resolve from outside a source that publishes none. On the last point, see the warning above: we'd rather be straight with you about what Hireology does not give us.

Query it with ?source=hireology. Quickstart, then pricing.

Every source above normalises onto the same schema, with the hiring company already joined onto each posting.

Get an API key