{
  "openapi": "3.0.1",
  "info": {
    "title": "Singapore MyCareersFuture Jobs — Listings API",
    "description": "Search Singapore job listings on MyCareersFuture by keyword. Each listing gives title, company and UEN, sector, location, salary range (SGD), employment type, seniority, experience, posting and expiry dates, skills and job URL. No API key. Pay per record.",
    "version": "0.0",
    "x-build-id": "sanKrmzpZ0Jyd8lzY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nexgendata~singapore-mycareersfuture-jobs/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nexgendata-singapore-mycareersfuture-jobs",
        "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/nexgendata~singapore-mycareersfuture-jobs/runs": {
      "post": {
        "operationId": "runs-sync-nexgendata-singapore-mycareersfuture-jobs",
        "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/nexgendata~singapore-mycareersfuture-jobs/run-sync": {
      "post": {
        "operationId": "run-sync-nexgendata-singapore-mycareersfuture-jobs",
        "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": {
          "searchQuery": {
            "title": "Search query (keyword / job title / skill)",
            "type": "string",
            "description": "Free-text keyword passed to the MyCareersFuture search endpoint. Matches job title, description, and skill fields. Example: 'software engineer', 'cybersecurity analyst', 'financial controller', 'AWS'. Leave empty to scrape the full feed filtered only by the other parameters."
          },
          "sector": {
            "title": "Sector / industry filter",
            "type": "string",
            "description": "Optional MyCareersFuture job category (case does not matter; several can be comma-separated; common short forms like 'IT', 'finance', 'HR', 'healthcare' are mapped). The 43 categories include 'Information Technology', 'Banking and Finance', 'Engineering', 'Healthcare / Pharmaceutical', 'Sales / Retail', 'Accounting / Auditing / Taxation'. Applied by the portal's own search, and every row is checked against it. A value that is not a category stops the run with the full list (nothing charged)."
          },
          "location": {
            "title": "Location keyword (substring match)",
            "type": "string",
            "description": "Optional substring filter applied client-side against the formatted job location (street, building, district, postal code). Useful for narrowing to a region (e.g. 'Raffles Place', 'Jurong East', 'Changi', 'CBD', '038987'). MyCareersFuture itself does not expose a structured location search, so this is a contains-match on the assembled address string."
          },
          "salaryMin": {
            "title": "Minimum monthly salary (SGD)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Minimum monthly salary in SGD. Sent to the MyCareersFuture API as the salary floor; only jobs whose salary band overlaps with this minimum are returned. Leave 0 or blank for no limit."
          },
          "salaryMax": {
            "title": "Maximum monthly salary (SGD)",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Maximum monthly salary in SGD. Filters out jobs whose advertised band starts above this ceiling. Applied client-side after the API call. Leave 0 or blank for no limit."
          },
          "employmentType": {
            "title": "Employment type",
            "enum": [
              "ALL",
              "FULL_TIME",
              "PART_TIME",
              "CONTRACT",
              "PERMANENT",
              "TEMPORARY",
              "FLEXI_WORK",
              "INTERNSHIP",
              "FREELANCE"
            ],
            "type": "string",
            "description": "Filter by employment type. ALL returns every job. FULL_TIME / PART_TIME / CONTRACT / PERMANENT / TEMPORARY / FLEXI_WORK / INTERNSHIP / FREELANCE are passed directly to the MyCareersFuture API.",
            "default": "ALL"
          },
          "seniorityLevel": {
            "title": "Seniority / position level",
            "type": "string",
            "description": "Optional MyCareersFuture position level (case does not matter; comma-separate several): 'Senior Management', 'Middle Management', 'Manager', 'Professional', 'Senior Executive', 'Executive', 'Junior Executive', 'Non-executive', 'Fresh/entry level'. Applied by the portal's own search and checked on every row."
          },
          "postedWithinDays": {
            "title": "Posted within last N days",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "Restrict results to jobs first posted within the last N days (based on MyCareersFuture's newPostingDate field). 7 = past week, 30 = past month, 90 = past quarter. Leave 0 / blank for no recency filter."
          },
          "maxResults": {
            "title": "Max jobs returned",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard cap on jobs returned in this run (1-500). Each job is one dataset row. Premium pricing applies per row.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}