Skip to main content
POST
Export Jobs
Export job search results using the same search parameters as /v2/jobs/search, but save the result as a downloadable file. This endpoint creates a task and returns its status and identifier. The user can poll the task using the Get Task Status endpoint.
This endpoint requires an API key for all requests. See Authentication to get one.

Endpoint

Authentication

string
required
Your Hirebase API key

Request Body

Use job_types (plural) — job_type (singular) is silently ignored and your filter will not apply.
Note:
  • While some top-level request fields are required (such as search), the attributes within those fields are optional. You can include only the filters you need, for example, specifying just job_titles inside search is valid.
  • Filter combinations can be mixed and matched.
  • Use specific filters to narrow down search results and get relevant matches.
Parameters used to filter job search resultsjob_titles and keywords support the same quoting, AND, and - exclusion syntax as the Search Jobs endpoint.
boolean
default:"false"
Set to true to receive an email at your account address when the export completes, containing the download link. The flag is echoed back on the task object.
string
required
Export file format: csv or json.
json exports NDJSON — newline-delimited JSON objects (one job per line), not a single JSON array. Parse line-by-line rather than calling JSON.parse() on the entire file. csv exports a standard comma-separated file.
Differences from /v2/jobs/search: The search object accepts the same filters as Search Jobs, including return_raw_description and hide_recruiting_agencies — both are documented in the search object above. limit controls how many jobs are exported (default 10) and page selects the offset window — set limit high to export your full result set.
Rate limit: 100 requests per 60 seconds per API key. 429 responses include a Retry-After header. See Error Handling.
Metering: exports bill the jobs meter (m_jobs_api_calls) by the number of jobs exported: min(limit, total matches) is charged when the task is created and refunded if the task fails. Omit limit and every matching job is charged — use POST /v2/jobs/estimate first to see the cost.

Flow

POST /v2/jobs/export returns a task immediately (state: "queued"). Poll GET /v2/tasks/{task_id} until state is "finished" (or "failed"), then download from result.download_url before result.expiry_time (~30 days). Set notify: true to get the link by email instead of polling.

Response

Returns a task object representing the export job.
Asynchronous workflow: This endpoint returns immediately with a task object. Use the returned id to poll GET /v2/tasks/{task_id}. When state becomes "finished", the result.download_url field will contain the URL to fetch your exported file.Heads-up: limit controls how many jobs are exported and defaults to 10. To export your full result set, set limit to a high value (e.g. the total_count returned by POST /v2/jobs/search for the same filters). page selects the offset window in the usual way.
string
Unique task ID
Note:Use this task ID to check the export status using the Get Task Status endpoint and download the result once it’s ready.
string
Type of the task, always "export_job_data" for this endpoint
string
Current state of the task (queued, processing, finished, failed)
number
Task progress as a float between 0.0 and 1.0
string
ISO timestamp of task creation
string
ISO timestamp of last update
string
ISO timestamp of when the task started, or null
string
ISO timestamp of when the task completed, or null
string
ID of the user who initiated the task
string
Error message if the task failed, otherwise null
string
ID of the worker that processed the task, or null
integer
Task priority level (higher means more urgent)
object
Task input payload, including the search query and export format
object
Present only when the task is complete

Exported Record Fields

Each record in the exported file contains the following fields: _id, application_link, company_data, company_link, company_logo, company_name, company_slug, date_posted, description, education_level, job_board, job_board_link, job_categories, job_slug, job_title, job_type, language, location_raw, location_type, locations, meta, meta_completeness, recruiter_agency, requirements_summary, score, skills, technologies, visa_sponsored, yoe_range
description_raw is added to every record when return_raw_description is set to "true" in the search object.

Example Request

Example Response

Error Responses

Returns when the API key is missing, invalid, or incorrect.
Returns when your account does not have permission to access the requested feature.
  • This usually means the feature is restricted to certain subscription tiers.
Returns when the request contains invalid or improperly formatted data.
  • Occurs when the industry field is missing, not a string, or doesn’t match any value from the list of valid industries.
  • May result from JSON decoding errors, such as malformed JSON or incorrect data types in the request body.
Returns when an unexpected error occurs on the server.
  • Also occurs during unhandled server-side failures or bugs that prevent the request from being processed.