Skip to main content
POST
/
v2
/
jobs
/
export
Export Jobs
curl --request POST \
  --url https://api.hirebase.org/v2/jobs/export \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <x-api-key>' \
  --data '
{
  "search": {
    "job_titles": [
      "<string>"
    ],
    "keywords": [
      "<string>"
    ],
    "job_board": "<string>",
    "job_slug": "<string>",
    "location_group": "<string>",
    "location_types": [
      "<string>"
    ],
    "locations": [
      {
        "city": "<string>",
        "region": "<string>",
        "country": "<string>"
      }
    ],
    "experience": [
      "<string>"
    ],
    "yoe": {
      "min": 123,
      "max": 123
    },
    "company_name": "<string>",
    "company_slug": "<string>",
    "salary": {
      "min": 123,
      "max": 123
    },
    "job_types": [
      "<string>"
    ],
    "job_category": [
      "<string>"
    ],
    "company_types": [
      "<string>"
    ],
    "industry": [
      "<string>"
    ],
    "sub_industry": [
      "<string>"
    ],
    "date_posted": "<string>",
    "visa": "<string>",
    "sort_by": "<string>",
    "sort_order": "<string>",
    "currency": "<string>",
    "days_ago": 123,
    "include_expired": "<string>",
    "include_no_salary": "<string>",
    "include_yoe": "<string>",
    "month": "<string>",
    "page": 123,
    "limit": 123
  },
  "format": "<string>"
}
'
{
  "id": "<string>",
  "type": "<string>",
  "state": "<string>",
  "progress": 123,
  "created_at": "<string>",
  "updated_at": "<string>",
  "started_at": "<string>",
  "completed_at": "<string>",
  "user_id": "<string>",
  "error": "<string>",
  "worker_id": "<string>",
  "priority": 123,
  "input": {},
  "result": {
    "download_url": "<string>",
    "file_size": 123,
    "record_count": 123,
    "expiry_time": "<string>"
  },
  "format": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://www.hirebase.org/docs/llms.txt

Use this file to discover all available pages before exploring further.

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

POST /v2/jobs/export

Authentication

x-api-key
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 results
format
string
required
Export file format (csv, or json)
Differences from /v2/jobs/search: The search object accepts most of the same filters as Search Jobs, but a few POST-only conveniences (e.g., return_raw_description, hide_recruiting_agencies) are not applied by the export pipeline. Pagination fields (page, limit) are accepted but the export will process the entire matching result set, not just a single page.
Rate limit: 4 requests/second on search endpoints (including export). See Error Handling.

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 "completed", the result.download_url field will contain the URL to fetch your exported file.Heads-up: The export processes the entire matching result set. limit and page in the search body are ignored — all matching jobs are exported.
id
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.
type
string
Type of the task, always "export_job_data" for this endpoint
state
string
Current state of the task (queued, processing, completed, failed)
progress
number
Task progress as a float between 0.0 and 1.0
created_at
string
ISO timestamp of task creation
updated_at
string
ISO timestamp of last update
started_at
string
ISO timestamp of when the task started, or null
completed_at
string
ISO timestamp of when the task completed, or null
user_id
string
ID of the user who initiated the task
error
string
Error message if the task failed, otherwise null
worker_id
string
ID of the worker that processed the task, or null
priority
integer
Task priority level (higher means more urgent)
input
object
Task input payload, including the search query and export format
result
object
Present only when the task is complete
format
string
Format of the exported file (e.g., json, csv).

Example Request

{
    "search": {
  "job_titles": ["Site/Civil Engineer"],
  "geo_locations": [{"city": "Richmond", "region": "Virginia", "country": "United States"}],
  "yoe": {"min": 1, "max": 6},
  "company_name": "CompanyXYZ",
  "job_types": ["Full Time"],
  "industry": ["Design", "Construction"],
  "sub_industry": ["Architecture", "Building Construction"],
  "visa": "true",
  "sort_by": "relevance",
  "sort_order": "desc",
  "page": 1,
  "limit": 10
},
  "format": "json"
}

Example Response

{
    "id": "7700n868-05b7-4763-af74-e2c789c3260d",
    "type": "export_job_data",
    "state": "queued",
    "progress": 0.0,
    "created_at": "2025-06-13T06:10:07.605259",
    "updated_at": "2025-06-13T06:10:07.605260",
    "started_at": null,
    "completed_at": null,
    "user_id": "27893d278da3e42f2878gh90",
    "error": null,
    "worker_id": null,
    "priority": 0,
    "input": {
        "query": {
            "job_titles": [
                "Site/Civil Engineer"
            ],
            "keywords": null,
            "location_group": null,
            "location_types": [
                "In-Person"
            ],
            "geo_locations": [
                {
                    "city": "Richmond",
                    "region": "Virginia",
                    "country": "United States"
                }
            ],
            "experience": null,
            "yoe": {
                "min": 1.0,
                "max": 6.0
            },
            "include_yoe": null,
            "company_types": null,
            "company_name": "CompanyXYZ",
            "date_posted": null,
            "days_ago": null,
            "month": null,
            "salary": null,
            "include_no_salary": null,
            "currency": null,
            "job_types": [
                "Full Time"
            ],
            "job_category": null,
            "industry": [
                "Design",
                "Construction"
            ],
            "sub_industry": [
                "Architecture",
                "Building Construction"
            ],
            "visa": "false",
            "include_expired": null,
            "hide_seen_jobs": null,
            "user_id": null,
            "company_slug": null,
            "job_slug": null,
            "job_board": null,
            "sort_by": "relevance",
            "sort_order": "desc",
            "page": 1,
            "limit": 10
        },
        "format": "json"
    },
    "result": null
}

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.
  • Can also be returned if sub_industry is not a valid string from the list of allowed sub-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.