{
  "openapi": "3.0.1",
  "info": {
    "title": "MyCareersFuture Singapore Scraper: Jobs, Salaries, Skills & UEN",
    "description": "Scrape MyCareersFuture jobs from Singapore's official job portal: SGD salary ranges, skills, full descriptions, seniority, vacancies and employer UEN with website. Search by keyword, category or link, filter by salary and date, and monitor new jobs on a schedule. No login needed.",
    "version": "0.2",
    "x-build-id": "xdWQM2vIaawR8ykvY"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~mycareersfuture-jobs-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-mycareersfuture-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/getascraper~mycareersfuture-jobs-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-mycareersfuture-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/getascraper~mycareersfuture-jobs-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-mycareersfuture-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 skills",
            "type": "array",
            "description": "One or more job titles, skills or keywords to search in Singapore, for example software engineer, nurse or chef. Each keyword runs its own search and the results are combined without duplicates. Leave empty (and add no links) to list the newest jobs across Singapore.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "MyCareersFuture links",
            "type": "array",
            "description": "Optional. Paste job page links to get those exact jobs, or search page links to reuse a search you built on the site.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQuery": {
            "title": "Single keyword (older field, still works)",
            "type": "string",
            "description": "The original single keyword box. It is combined with the list above, so older saved inputs keep working."
          },
          "categories": {
            "title": "Job categories",
            "type": "array",
            "description": "Only jobs in these portal categories. Leave empty for all categories.",
            "items": {
              "type": "string",
              "enum": [
                "Accounting / Auditing / Taxation",
                "Admin / Secretarial",
                "Advertising / Media",
                "Architecture / Interior Design",
                "Banking and Finance",
                "Building and Construction",
                "Consulting",
                "Customer Service",
                "Design",
                "Education and Training",
                "Engineering",
                "Entertainment",
                "Environment / Health",
                "Events / Promotions",
                "F&B",
                "General Management",
                "General Work",
                "Healthcare / Pharmaceutical",
                "Hospitality",
                "Human Resources",
                "Information Technology",
                "Insurance",
                "Legal",
                "Logistics / Supply Chain",
                "Manufacturing",
                "Marketing / Public Relations",
                "Medical / Therapy Services",
                "Personal Care / Beauty",
                "Precision Engineering",
                "Professional Services",
                "Public / Civil Service",
                "Purchasing / Merchandising",
                "Real Estate / Property Management",
                "Repair and Maintenance",
                "Risk Management",
                "Sales / Retail",
                "Sciences / Laboratory / R&D",
                "Security and Investigation",
                "Social Services",
                "Telecommunications",
                "Travel / Tourism",
                "Wholesale Trade",
                "Others"
              ]
            },
            "default": []
          },
          "employmentTypes": {
            "title": "Employment types",
            "type": "array",
            "description": "Only these contract types, for example Permanent, Part Time or Internship/Attachment.",
            "items": {
              "type": "string",
              "enum": [
                "Permanent",
                "Full Time",
                "Part Time",
                "Contract",
                "Temporary",
                "Freelance",
                "Internship/Attachment"
              ]
            },
            "default": []
          },
          "positionLevels": {
            "title": "Seniority levels",
            "type": "array",
            "description": "Only these seniority levels, from Fresh/entry level to Senior Management.",
            "items": {
              "type": "string",
              "enum": [
                "Fresh/entry level",
                "Non-executive",
                "Junior Executive",
                "Executive",
                "Senior Executive",
                "Professional",
                "Manager",
                "Middle Management",
                "Senior Management"
              ]
            },
            "default": []
          },
          "minSalary": {
            "title": "Minimum monthly salary (SGD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs whose lowest advertised monthly salary is at least this amount. Handy for roles that qualify for an Employment Pass."
          },
          "maxSalary": {
            "title": "Maximum monthly salary (SGD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs whose highest advertised monthly salary is at most this amount."
          },
          "minExperience": {
            "title": "Minimum years of experience",
            "minimum": 0,
            "type": "integer",
            "description": "Only jobs that ask for at least this many years of experience. This needs the full job details, so it overrides fast mode."
          },
          "postedWithinDays": {
            "title": "Posted within the last days",
            "minimum": 1,
            "type": "integer",
            "description": "Only jobs posted or reposted in the last N days. Leave empty for no date limit. Pairs well with a schedule."
          },
          "onlyWithUen": {
            "title": "Only employers with a registered UEN",
            "type": "boolean",
            "description": "Skip postings that hide the employer's company registry number (UEN).",
            "default": false
          },
          "onlyResponsive": {
            "title": "Only responsive employers",
            "type": "boolean",
            "description": "Keep only employers the portal marks as responsive to applicants.",
            "default": false
          },
          "onlyGovernment": {
            "title": "Only public and civil service jobs",
            "type": "boolean",
            "description": "Keep only jobs listed under the portal's Public / Civil Service category.",
            "default": false
          },
          "sortBy": {
            "title": "Sort order",
            "enum": [
              "new_posting_date",
              "min_monthly_salary",
              "relevance"
            ],
            "type": "string",
            "description": "Newest first (default), highest salary first, or best match for your keywords.",
            "default": "new_posting_date"
          },
          "maxItems": {
            "title": "Maximum job rows",
            "minimum": 1,
            "maximum": 200000,
            "type": "integer",
            "description": "Stop after this many rows. Free-plan runs are capped at 100 rows. With a keyword or filters the portal shows up to 10,000 jobs per search; larger runs are split by category automatically.",
            "default": 25
          },
          "skipJobDetails": {
            "title": "Fast mode: skip full job details",
            "type": "boolean",
            "description": "Faster runs without the description, vacancies, experience, SSOC code, employer website and view counts. Leave off for the complete record.",
            "default": false
          },
          "includeCompanyLeads": {
            "title": "Add hiring-company rows",
            "type": "boolean",
            "description": "After the jobs, also save one row per hiring employer (UEN, website, industry, size, open jobs in this run, top skills and salary range). These rows are billed like job rows and do not count toward the maximum.",
            "default": false
          },
          "monitorMode": {
            "title": "Only new or changed jobs",
            "type": "boolean",
            "description": "Remember jobs between runs and save only new jobs, salary changes and reposts, each marked in change_type. Schedule the Actor to build a hiring feed. Max job rows then counts only new or changed rows.",
            "default": false
          },
          "monitorScope": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name of this monitor, so separate schedules keep separate histories. Letters, numbers and dashes.",
            "default": "default"
          },
          "proxyConfiguration": {
            "title": "Network connection",
            "type": "object",
            "description": "The default connects directly and falls back to a datacenter proxy only if the portal refuses. Leave it as is.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}