{
  "openapi": "3.0.1",
  "info": {
    "title": "HiringCafe Jobs Scraper",
    "description": "Scrape HiringCafe jobs by keyword, city, country, company or pay (min and max), or from a search link: title, company, location, pay range, seniority, apply link. Pay per result: $0.70 per 1,000 jobs, no login.",
    "version": "1.0",
    "x-build-id": "g1gdFA4ht4Uv4g6zB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/brii3343~hiringcafe-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-brii3343-hiringcafe-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/brii3343~hiringcafe-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-brii3343-hiringcafe-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/brii3343~hiringcafe-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-brii3343-hiringcafe-jobs-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Job titles or keywords as you would type them on HiringCafe, one per line, for example <code>python developer</code>, <code>registered nurse</code> or <code>data analyst</code>. Each query is one search in the chosen country, read page by page.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "HiringCafe search URLs",
            "type": "array",
            "description": "HiringCafe search links with every filter you set on the site (city, radius, salary, company, industry...): set the filters on hiring.cafe, then copy the address bar, for example <code>https://hiring.cafe/?searchState=%7B%22searchQuery%22%3A%22nurse%22%7D</code>. The country and filters below do not change these links.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "GB",
              "CA",
              "AU",
              "IN",
              "DE",
              "FR",
              "NL",
              "IE",
              "ES",
              "IT",
              "PT",
              "BE",
              "CH",
              "AT",
              "SE",
              "NO",
              "DK",
              "FI",
              "PL",
              "CZ",
              "RO",
              "HU",
              "GR",
              "NZ",
              "SG",
              "JP",
              "KR",
              "CN",
              "HK",
              "TW",
              "PH",
              "MY",
              "ID",
              "TH",
              "VN",
              "PK",
              "AE",
              "SA",
              "IL",
              "TR",
              "ZA",
              "NG",
              "EG",
              "KE",
              "BR",
              "MX",
              "AR",
              "CO",
              "CL"
            ],
            "type": "string",
            "description": "Country of the site to read: it decides prices, currency and which results appear.",
            "default": "US"
          },
          "location": {
            "title": "City, state or country",
            "type": "string",
            "description": "Optional place to search, for search queries. A city (<code>Austin</code>, <code>Austin, TX</code>, <code>Bangalore</code>, <code>London, UK</code>), a state or a country name or code (<code>UK</code>, <code>Germany</code>). <code>Remote</code> keeps only remote jobs. A place HiringCafe does not know gives one free error row. Empty = the country above."
          },
          "radiusMiles": {
            "title": "City radius (miles)",
            "minimum": 0,
            "maximum": 200,
            "type": "integer",
            "description": "Only with a city in the field above: include jobs within this many miles of the city. 0 or empty = only jobs in the city itself."
          },
          "minSalary": {
            "title": "Minimum yearly pay",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs that publish a pay of at least this much per year, (for search queries), compared with the yearly pay HiringCafe shows in yearlySalaryMin. Jobs that do not publish a pay are left out. Empty = no limit."
          },
          "maxSalary": {
            "title": "Maximum yearly pay",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs that publish a pay whose top end is at most this much per year (for search queries), compared with yearlySalaryMax. Jobs that do not publish a pay are left out. Empty = no limit."
          },
          "companyNames": {
            "title": "Company names",
            "type": "array",
            "description": "Only jobs from these companies (for search queries): a name such as <code>Stripe</code> or <code>Google</code>, or a website such as <code>google.com</code>. The scraper reads the company's own page on HiringCafe and applies your search words, country, city and other filters to its jobs. Subsidiaries on that page (Google DeepMind for Google) come too; with several companies the maximum per search is shared equally. An unknown company gives a free row that names it. Empty = all companies.",
            "items": {
              "type": "string"
            }
          },
          "workplaceTypes": {
            "title": "Workplace",
            "type": "array",
            "description": "Only jobs with these workplace types (for search queries). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Remote",
                "Hybrid",
                "Onsite"
              ]
            }
          },
          "commitmentTypes": {
            "title": "Commitment",
            "type": "array",
            "description": "Only jobs with these commitments (for search queries). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "Full Time",
                "Part Time",
                "Contract",
                "Internship",
                "Temporary",
                "Seasonal",
                "Volunteer"
              ]
            }
          },
          "seniorityLevel": {
            "title": "Seniority",
            "type": "array",
            "description": "Only jobs at these levels (for search queries). Empty = all.",
            "items": {
              "type": "string",
              "enum": [
                "No Prior Experience Required",
                "Entry Level",
                "Mid Level",
                "Senior Level"
              ]
            }
          },
          "onlyWithSalary": {
            "title": "Only jobs with a published salary",
            "type": "boolean",
            "description": "Only jobs whose employer published the pay range (for search queries).",
            "default": false
          },
          "maxItemsPerSource": {
            "title": "Max jobs per search or URL",
            "minimum": 0,
            "type": "integer",
            "description": "Jobs to save for each search query and each URL. 0 = everything the search shows (HiringCafe shows up to 250 pages per search).",
            "default": 100
          },
          "maxItems": {
            "title": "Max jobs in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many jobs in the whole run. 0 = no limit.",
            "default": 0
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed: the scraper connects directly and switches to Apify Proxy by itself only when HiringCafe blocks it. Set a proxy here only to force one.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}