{
  "openapi": "3.0.1",
  "info": {
    "title": "JobStreet.com Scraper",
    "description": "Extract job listings from JobStreet across Singapore, Malaysia, Philippines and Indonesia. Keyword search, work type filter, structured salary fields, company logo, and full descriptions (with details enabled). Incremental mode for scheduled monitoring. No API key required.",
    "version": "0.0",
    "x-build-id": "bHRzZ0wEVj2tsWk1c"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/unfenced-group~jobstreet-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-unfenced-group-jobstreet-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/unfenced-group~jobstreet-scraper/runs": {
      "post": {
        "operationId": "runs-sync-unfenced-group-jobstreet-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/unfenced-group~jobstreet-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-unfenced-group-jobstreet-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": {
          "country": {
            "title": "Country",
            "enum": [
              "SG",
              "MY",
              "PH",
              "ID"
            ],
            "type": "string",
            "description": "Target market. Supported: SG (Singapore), MY (Malaysia), PH (Philippines), ID (Indonesia).",
            "default": "SG"
          },
          "searchQuery": {
            "title": "Search query (keywords)",
            "type": "string",
            "description": "Job title, skill, or keyword to search for. Leave empty to fetch all recent listings. For several searches in one run, use Search queries below instead.",
            "default": ""
          },
          "searchQueries": {
            "title": "Search queries (batch)",
            "type": "array",
            "description": "Run several keyword searches in a single run. Results are merged and de-duplicated. Overrides the single search query above when set. Leave empty to use the single field.",
            "items": {
              "type": "string"
            }
          },
          "location": {
            "title": "Location",
            "type": "string",
            "description": "City or region name, e.g. 'Singapore', 'Kuala Lumpur', 'Manila'. Leave empty for all locations.",
            "default": ""
          },
          "workType": {
            "title": "Work type",
            "enum": [
              "",
              "Full time",
              "Part time",
              "Contract/Temp",
              "Casual/Vacation"
            ],
            "type": "string",
            "description": "Filter by employment type.",
            "default": ""
          },
          "classificationId": {
            "title": "Category ID",
            "minimum": 0,
            "type": "integer",
            "description": "Optional SEEK classification ID to filter by job category (e.g. 1209 for ICT). Leave blank for all categories."
          },
          "salaryMin": {
            "title": "Minimum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with a salary at or above this amount, filtered server-side by JobStreet. Interpreted in the units set by Salary period below. Leave blank for no lower bound."
          },
          "salaryMax": {
            "title": "Maximum salary",
            "minimum": 0,
            "type": "integer",
            "description": "Only return listings with a salary at or below this amount, filtered server-side by JobStreet. Interpreted in the units set by Salary period below. Leave blank for no upper bound."
          },
          "salaryType": {
            "title": "Salary period",
            "enum": [
              "monthly",
              "annual",
              "hourly"
            ],
            "type": "string",
            "description": "The period the salary min/max are expressed in. Applies only when a salary filter is set.",
            "default": "monthly"
          },
          "daysOld": {
            "title": "Posted within (days)",
            "type": "integer",
            "description": "Only return listings posted within this many days. Leave blank for no date filter."
          },
          "includeKeywords": {
            "title": "Include keywords",
            "type": "array",
            "description": "Keep only listings whose title, company, or description contains at least one of these words. Applied after the search. Leave empty to keep everything.",
            "items": {
              "type": "string"
            }
          },
          "excludeKeywords": {
            "title": "Exclude keywords",
            "type": "array",
            "description": "Drop any listing whose title, company, or description contains one of these words, e.g. 'senior', 'internship'. Applied after the search.",
            "items": {
              "type": "string"
            }
          },
          "maxAgeMinutes": {
            "title": "Maximum age (minutes)",
            "minimum": 0,
            "type": "integer",
            "description": "Drop listings older than this many minutes. Useful for near-real-time monitoring on a schedule. Leave blank for no limit."
          },
          "fetchDetails": {
            "title": "Include full job details",
            "type": "boolean",
            "description": "ON: fetches full job description, salary, company info, and all details. OFF: returns basic listing info only (faster, lower cost).",
            "default": false
          },
          "incrementalMode": {
            "title": "Incremental mode",
            "type": "boolean",
            "description": "Only return listings that are new or changed since the previous run. Each result carries a changeStatus of NEW, UPDATED, or REAPPEARED. Unchanged reposts are skipped and never charged. Ideal for scheduled monitoring.",
            "default": false
          },
          "skipReposts": {
            "title": "Skip reposts",
            "type": "boolean",
            "description": "Skip listings already seen in previous runs (based on 90-day deduplication cache). Superseded by incremental mode, which also reports what changed.",
            "default": false
          },
          "compactOutput": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Return a reduced set of core fields (id, title, company, location, salary, work type, date, changeStatus). Smaller payload for AI agents, MCP clients, and automated pipelines.",
            "default": false
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Optional: provide specific JobStreet job page URLs to fetch directly instead of searching.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of listings to return across all queries. Default 5.",
            "default": 5
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}