{
  "openapi": "3.0.1",
  "info": {
    "title": "JobStreet & JobsDB Scraper + Hiring Company Leads (Asia)",
    "description": "Search JobStreet Malaysia, Singapore, Indonesia and the Philippines, and JobsDB Hong Kong and Thailand. One row per job with monthly salaries, plus one row per hiring company with website, emails and phone numbers.",
    "version": "1.0",
    "x-build-id": "yLLqjUmWzm6gcM2kt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/snappytools~jobstreet-jobsdb-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-snappytools-jobstreet-jobsdb-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/snappytools~jobstreet-jobsdb-scraper/runs": {
      "post": {
        "operationId": "runs-sync-snappytools-jobstreet-jobsdb-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/snappytools~jobstreet-jobsdb-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-snappytools-jobstreet-jobsdb-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",
        "required": [
          "searches"
        ],
        "properties": {
          "searches": {
            "title": "Searches",
            "type": "array",
            "description": "One search per line: keywords, then a | and a location. For example \"accountant | Kuala Lumpur\", \"software engineer | Singapore\", \"sales | Jakarta Raya\" or \"nurse\" for the whole country. You can also paste a link from a JobStreet or JobsDB results page; its country and filters are kept.",
            "default": [
              "accountant | Kuala Lumpur"
            ],
            "items": {
              "type": "string"
            }
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Which sites to search. Each search line runs in every country you pick. A pasted link uses only its own country.",
            "items": {
              "type": "string",
              "enum": [
                "my",
                "sg",
                "id",
                "ph",
                "hk",
                "th"
              ],
              "enumTitles": [
                "Malaysia (my.jobstreet.com)",
                "Singapore (sg.jobstreet.com)",
                "Indonesia (id.jobstreet.com)",
                "Philippines (ph.jobstreet.com)",
                "Hong Kong (hk.jobsdb.com)",
                "Thailand (th.jobsdb.com)"
              ]
            },
            "default": [
              "my"
            ]
          },
          "output": {
            "title": "What to return",
            "enum": [
              "jobs",
              "jobsAndCompanies",
              "companies"
            ],
            "type": "string",
            "description": "Jobs only, jobs plus one row per hiring company, or just the hiring companies (for lead lists).",
            "default": "jobs"
          },
          "findCompanyContacts": {
            "title": "Find company emails and phone numbers",
            "type": "boolean",
            "description": "For each hiring company, find its website (from its company profile, the job ad, or its name) and check its homepage and contact page for emails, phone numbers (including WhatsApp links) and social links. Needs \"Jobs and hiring companies\" or \"Hiring companies only\". Slower: allow about 1 to 3 seconds per company.",
            "default": false
          },
          "skipRecruiters": {
            "title": "Leave out recruitment agencies",
            "type": "boolean",
            "description": "Skip ads whose advertiser looks like a recruitment or staffing agency (Randstad, Michael Page, PERSOLKELLY, \"... Manpower\", \"Agensi Pekerjaan ...\" and so on), so you only get companies hiring for themselves. Based on the advertiser name, so a few may slip through.",
            "default": false
          },
          "maxJobsPerSearch": {
            "title": "Max jobs per search",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "The most jobs to collect for each search line. The site lists at most 500 jobs per search; above that the search is split by classification automatically.",
            "default": 100
          },
          "datePosted": {
            "title": "Listed in the last",
            "enum": [
              "any",
              "1",
              "3",
              "7",
              "14",
              "31"
            ],
            "type": "string",
            "description": "Only jobs listed in this many days.",
            "default": "any"
          },
          "classifications": {
            "title": "Classification",
            "type": "array",
            "description": "Only jobs in these classifications. 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"
              ]
            },
            "default": []
          },
          "workTypes": {
            "title": "Work type",
            "type": "array",
            "description": "Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "fulltime",
                "parttime",
                "contract",
                "casual"
              ],
              "enumTitles": [
                "Full time",
                "Part time",
                "Contract/Temp",
                "Casual/Vacation"
              ]
            },
            "default": []
          },
          "workArrangements": {
            "title": "Remote or on-site",
            "type": "array",
            "description": "Leave empty for all. Many advertisers don't set this, so picking one leaves those jobs out.",
            "items": {
              "type": "string",
              "enum": [
                "onsite",
                "hybrid",
                "remote"
              ],
              "enumTitles": [
                "On-site",
                "Hybrid",
                "Remote"
              ]
            },
            "default": []
          },
          "salaryMin": {
            "title": "Minimum salary",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "integer",
            "description": "Only jobs paying at least this much, in the country's own currency (RM, S$, Rp, ₱, HK$, ฿), using the site's own salary filter. Leave at 0 for no minimum.",
            "default": 0
          },
          "salaryType": {
            "title": "Minimum salary is",
            "enum": [
              "monthly",
              "annual",
              "hourly"
            ],
            "type": "string",
            "description": "Whether the minimum above is per month (the usual way salaries are shown on these sites), per year or per hour.",
            "default": "monthly"
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "newest",
              "relevance"
            ],
            "type": "string",
            "description": "Newest first is best for schedules.",
            "default": "newest"
          },
          "includeDescriptions": {
            "title": "Include full job descriptions",
            "type": "boolean",
            "description": "Adds the full ad text, the phone number if listed, emails and websites written in the ad, and whether applying goes to an external site. Costs a little extra per job.",
            "default": false
          },
          "onlyNewSinceLastRun": {
            "title": "Only new jobs since my last run",
            "type": "boolean",
            "description": "For schedules. Remembers the jobs each search has already returned and skips them next time. The first run returns everything, as usual.",
            "default": false
          },
          "newCompaniesOnly": {
            "title": "Only companies I haven't had before",
            "type": "boolean",
            "description": "Skip hiring companies that an earlier run already delivered (with the same searches, or the same watch name). Stops you paying twice for the same lead.",
            "default": false
          },
          "watchName": {
            "title": "Watch name",
            "type": "string",
            "description": "Optional. Runs with the same searches share their memory automatically. Give a name to keep two schedules separate, or to share one company memory across different searches."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}