{
  "openapi": "3.0.1",
  "info": {
    "title": "JobsDB Jobs Scraper",
    "description": "Scrape JobsDB jobs in Hong Kong and Thailand by keyword and location: title, company, salary as numbers, work type, classification, full description and apply link. Filters and alerts.",
    "version": "0.1",
    "x-build-id": "rHp4Bc8LrOGFsQtZ4"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/robertosan16~jobsdb-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-robertosan16-jobsdb-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/robertosan16~jobsdb-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-robertosan16-jobsdb-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/robertosan16~jobsdb-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-robertosan16-jobsdb-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": "Job titles or keywords",
            "type": "array",
            "description": "What to search, for example <code>software engineer</code> or <code>accountant</code>. Each line is a separate search with the filters below. You can also paste links of searches from hk.jobsdb.com or th.jobsdb.com.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "enum": [
              "HK",
              "TH"
            ],
            "type": "string",
            "description": "The JobsDB site to search. Salaries come in its currency, HKD or THB.",
            "default": "HK"
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "A suburb, city, region or state as on JobsDB, for example <code>Kowloon</code>, <code>Hong Kong Island</code> or <code>Bangkok</code>. Leave empty for the whole country."
          },
          "classifications": {
            "title": "Classifications",
            "type": "array",
            "description": "Job categories as on SEEK. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "1200",
                "6251",
                "6304",
                "1203",
                "1204",
                "7019",
                "6163",
                "1206",
                "6076",
                "6263",
                "6123",
                "1209",
                "6205",
                "1210",
                "1211",
                "1212",
                "6317",
                "6281",
                "1214",
                "1216",
                "6092",
                "6008",
                "6058",
                "1220",
                "6043",
                "6362",
                "1223",
                "6261",
                "6246",
                "1225"
              ],
              "enumTitles": [
                "Accounting",
                "Administration & Office Support",
                "Advertising, Arts & Media",
                "Banking & Financial Services",
                "Call Centre & Customer Service",
                "CEO & General Management",
                "Community Services & Development",
                "Construction",
                "Consulting & Strategy",
                "Design & Architecture",
                "Education & Training",
                "Engineering",
                "Farming, Animals & Conservation",
                "Government & Defence",
                "Healthcare & Medical",
                "Hospitality & Tourism",
                "Human Resources & Recruitment",
                "Information & Communication Technology",
                "Insurance & Superannuation",
                "Legal",
                "Manufacturing, Transport & Logistics",
                "Marketing & Communications",
                "Mining, Resources & Energy",
                "Real Estate & Property",
                "Retail & Consumer Products",
                "Sales",
                "Science & Technology",
                "Self Employment",
                "Sport & Recreation",
                "Trades & Services"
              ]
            }
          },
          "workTypes": {
            "title": "Work type",
            "type": "array",
            "description": "Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "242",
                "243",
                "244",
                "245"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Contract/Temp",
                "Casual/Vacation"
              ]
            }
          },
          "workArrangements": {
            "title": "Work arrangement",
            "type": "array",
            "description": "On-site, hybrid or remote. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "1",
                "2",
                "3"
              ],
              "enumTitles": [
                "On-site",
                "Hybrid",
                "Remote"
              ]
            }
          },
          "postedWithinDays": {
            "title": "Posted in the last days",
            "minimum": 0,
            "type": "integer",
            "description": "Keep jobs listed in the last N days: 1 means today and yesterday. Leave empty or 0 for any date."
          },
          "minSalary": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Keep jobs paying at least this much, in HKD or THB, per the salary type below. JobsDB applies it to the pay range the employer set, even when the ad does not show it."
          },
          "salaryType": {
            "title": "Salary type",
            "enum": [
              "annual",
              "monthly",
              "hourly"
            ],
            "type": "string",
            "description": "What the minimum salary above means.",
            "default": "monthly"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "ListedDate",
              "KeywordRelevance"
            ],
            "type": "string",
            "description": "Newest first suits job alerts. Links you paste keep their own order.",
            "default": "ListedDate"
          },
          "excludeKeywords": {
            "title": "Exclude title keywords",
            "type": "array",
            "description": "Skip jobs whose title contains any of these, for example <code>intern</code> or <code>senior</code>. Common word endings are included.",
            "items": {
              "type": "string"
            }
          },
          "keywords": {
            "title": "Title must contain",
            "type": "array",
            "description": "Keep only jobs whose title contains any of these words or phrases. JobsDB searches descriptions too, so this makes results stricter. Add <code>*</code> for any ending: <code>data*</code>.",
            "items": {
              "type": "string"
            }
          },
          "onlyWithSalary": {
            "title": "Only jobs with a salary",
            "type": "boolean",
            "description": "Keep only jobs that state a pay range or rate.",
            "default": false
          },
          "onlyNew": {
            "title": "Only new jobs since the last run",
            "type": "boolean",
            "description": "For scheduled runs: save only jobs that were not seen in earlier runs of the same saved task. The first run saves all current jobs and remembers them. Jobs that did not match your filters are remembered too.",
            "default": false
          },
          "includeDescription": {
            "title": "Load full job details",
            "type": "boolean",
            "description": "Open each job page for the full description (text and HTML), expiry date and company industry, size and website. Turn off for fast results with a short summary instead.",
            "default": true
          },
          "maxItems": {
            "title": "Maximum jobs in total",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after saving this many jobs. Leave empty or 0 for no limit. The example is kept small so the first run takes seconds."
          },
          "maxItemsPerCompany": {
            "title": "Maximum jobs per search",
            "minimum": 0,
            "type": "integer",
            "description": "Save at most this many jobs from each search. Leave empty or 0 for no limit."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "The Actor connects directly, which is fastest. If JobsDB starts limiting requests, it switches to Apify Proxy automatically. Turn on a proxy here only to use it from the start.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}