Skip to main content

Hirebase Python SDK

A lean, typed Python client for the Hirebase API (hirebase 0.1.1 on PyPI) — search jobs and companies, run market insights, embed resumes, and export job data at scale.
  • Sync and async clients (hirebase.Client / hirebase.AsyncClient).
  • Typed by default — responses come back as Pydantic models; pass return_type=dict anywhere for raw dicts.
  • Streaming exports — kick off an export, poll it, download it, and stream millions of jobs with constant memory.
  • Self-contained — ships its own types and depends only on requests, httpx, and pydantic.
Source: HireBase-1/hirebase-python-sdk. Looking for end-to-end, copy-paste workflows by role? See SDK Examples.

Installation

Optional extras:

Authentication

Pass your API key directly, or set it via the environment:
Resolution order for every setting is argument → environment variable → default. The base URL defaults to https://api.hirebase.org.

Quickstart

Booleans are accepted natively (visa=True) and converted to the API’s string form for you. locations is a friendly alias for the API’s geo_locations. Unknown filter keys are passed through untouched, so new API features work before the SDK is updated.

Async

Every method has the same signature on both clients — the async versions are awaitable.

Jobs

Typed inputs

Pass a plain dict or build a typed query:
Hybrid semantic + lexical search. Send a natural-language query under vector and structured filters under lexical:
SDK convenience shortcuts map to REST fields under the hood — they’re not separate REST params:

Resume → Job Matching

There are two paths. Stateless: resumes.embed returns only an embedding (nothing stored) — pass it straight into neural search via vectors. Stored: resumes.upload_and_parse persists the resume and returns an id you can reuse as the artifact_id (see Upload Resume). The stateless flow:

Exporting Jobs (async task flow)

Exports are processed server-side and returned as a downloadable file.
Task terminal state is finished (not completed). poll() accepts a Task, a task dict, or a task id, plus interval, timeout, and an on_progress callback. The result dict contains download_url, file_size, record_count, and expiry_time. JSON exports are NDJSON (one job object per line).
You can also stream directly from the export URL without saving to disk (JSON Lines exports only):

Companies

Typed company filters are available via CompanyQuery (e.g. industries, types, hq_geolocations). Industry/subindustry value lists come from the REST reference-data endpoints (List Industries).

Typed vs. dict responses

Every method returns typed models by default. Pass return_type=dict to get the raw API payload instead:

Error Handling

All errors subclass hirebase.HirebaseError:

License

This SDK is distributed under the MIT License.