MyCareersFuture Singapore Jobs Scraper avatar

MyCareersFuture Singapore Jobs Scraper

Pricing

from $0.79 / 1,000 job scrapeds

Go to Apify Store
MyCareersFuture Singapore Jobs Scraper

MyCareersFuture Singapore Jobs Scraper

Scrape jobs from MyCareersFuture.gov.sg: title, description, salary, skills, employer UEN, SSIC code, location, district, and application counts. Filter by keyword, category, employment type, seniority, and company. Export as JSON, CSV, or Excel.

Pricing

from $0.79 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

MyCareersFuture Singapore Jobs Scraper

Scrape job listings from MyCareersFuture.gov.sg — Singapore's national jobs portal run by Workforce Singapore — into clean, structured JSON. The MyCareersFuture Jobs Scraper returns the full job description, the mandatory salary range in SGD, the government-curated skills list, the employer's UEN and SSIC code, location, district, and live view and application counts, with no login and no MyCareersFuture API key.

Search every active listing by keyword, filter by job category, employment type, seniority, and employer, and get 37 structured fields per job — including salary, skills, employer UEN, SSIC code, district, and application counts — ready for analysis or a jobs product.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Actor: parsebird/mycareersfuture-jobs-scraper (Apify). Scrapes jobs from mycareersfuture.gov.sg. Call with ApifyClient.
Input JSON fields:
searchQuery: string — full-text over title, description, skills. "" = all active listings (~90,000)
categories: string[] of category ids, e.g. ["11","21"] (11=Engineering, 21=Information Technology, 5=Banking and Finance, 26=Marketing / Public Relations, ... 1-43)
employmentTypes: string[] of ids (2=Temporary, 3=Contract, 5=Part Time, 6=Freelance, 7=Permanent, 8=Full Time, 10=Internship/Attachment)
positionLevels: string[] of ids (1=Senior Management, 2=Middle Management, 3=Manager, 7=Professional, 8=Senior Executive, 9=Executive, 10=Junior Executive, 11=Non-executive, 12=Fresh/entry level)
companyNames: string[] — normalised, case-insensitive substring match on posting + hiring company (entity suffixes stripped)
maxItems: int (default 100, 0 = all). This is the number of billed rows.
maxPages: int (default 2000, 100 listings per page)
proxyConfiguration: { "useApifyProxy": true }
Output: one dataset item per job — job_id, job_post_id, title, description (HTML), employer_name, employer_uen, employer_logo_url, employer_description, employer_website_url, employer_size, employer_ssic_code, hiring_company_name, hiring_company_uen, employment_type, seniority, categories[], skills[], schemes[], flexible_work_arrangements[], min_experience_years, salary_min_sgd, salary_max_sgd, salary_type, location, district, region, is_overseas, posted_date, expires_date, updated_at, is_government_job, job_status, number_of_vacancies, view_count, application_count, job_url, scraped_at.
Example: { "searchQuery": "software engineer", "categories": ["21"], "maxItems": 100 }
API: https://api.apify.com/v2/acts/parsebird~mycareersfuture-jobs-scraper · Token: https://console.apify.com/account/integrations

What does MyCareersFuture Singapore Jobs Scraper do?

MyCareersFuture carries roughly 90,000 active job listings from Singapore-registered employers, each with a mandatory salary disclosure and a standardised skills taxonomy. There is no public MyCareersFuture jobs API — this MyCareersFuture scraper is the alternative. It extracts:

  • 💰 Salary data — the minimum and maximum monthly (or annual) salary in SGD that every listing on MyCareersFuture must disclose.
  • 🧠 Skills — the government-curated skill tags attached to each role.
  • 🏢 Employer identity — company name, UEN (joins to the ACRA registry), SSIC industry code, logo, headcount, website, and company profile.
  • 🕵️ Hiring company — the real employer behind a recruitment-agency posting, when disclosed.
  • 📍 Location — full street address, Singapore postal district, and region (Central, East, West, North, North-East).
  • 📊 Demand signals — view count and application count for each listing, plus number of vacancies.
  • 🎛️ Filters — keyword search, plus job category, employment type, seniority, and an employer allowlist.

Common uses: labour-market and salary-benchmarking research, recruitment intelligence, building a Singapore jobs board or aggregator, lead lists of hiring companies, and skills-demand tracking over time.

Input parameters

ParameterTypeRequiredDefaultDescription
searchQuerystringNoFull-text search across job titles, descriptions, and skills. Empty = all active listings.
categoriesarrayNoJob category IDs to keep. Empty = all.
employmentTypesarrayNoEmployment type IDs to keep. Empty = all.
positionLevelsarrayNoSeniority IDs to keep. Empty = all.
companyNamesarrayNoEmployer allowlist, normalised case-insensitive substring match. Unmatched name returns zero rows.
maxItemsintegerNo100Maximum job rows saved. 0 = all matching listings. This is the number of billed rows.
maxPagesintegerNo2000Maximum source pages scanned (100 listings per page).
proxyConfigurationobjectNoApify ProxyProxy settings. MyCareersFuture's API works from datacenter IPs.

Filter IDs

Job categories (categories): 1 Accounting / Auditing / Taxation · 5 Banking and Finance · 6 Building and Construction · 7 Consulting · 8 Customer Service · 9 Design · 10 Education and Training · 11 Engineering · 15 F&B · 18 Healthcare / Pharmaceutical · 19 Hospitality · 20 Human Resources · 21 Information Technology · 22 Insurance · 23 Legal · 24 Logistics / Supply Chain · 25 Manufacturing · 26 Marketing / Public Relations · 29 Professional Services · 35 Sales / Retail · 36 Sciences / Laboratory / R&D · 43 Precision Engineering (full list 1–43 in the Console dropdown).

Employment types (employmentTypes): 2 Temporary · 3 Contract · 5 Part Time · 6 Freelance · 7 Permanent · 8 Full Time · 10 Internship/Attachment.

Position levels (positionLevels): 1 Senior Management · 2 Middle Management · 3 Manager · 7 Professional · 8 Senior Executive · 9 Executive · 10 Junior Executive · 11 Non-executive · 12 Fresh/entry level.

Example inputs

All IT jobs, first 200:

{ "searchQuery": "", "categories": ["21"], "maxItems": 200 }

Full-time senior engineering roles matching a keyword:

{
"searchQuery": "backend",
"categories": ["11", "21"],
"employmentTypes": ["8"],
"positionLevels": ["1", "8"],
"maxItems": 500
}

Every listing from specific employers:

{ "searchQuery": "", "companyNames": ["shopee", "grab", "sea"], "maxItems": 0 }

Every active listing on MyCareersFuture:

{ "searchQuery": "", "maxItems": 0 }

What data can you extract from MyCareersFuture?

FieldDescription
job_idUnique job listing UUID from MyCareersFuture
job_post_idHuman-readable job post ID (e.g. MCF-2026-0776599)
titleJob title
descriptionFull job description (HTML)
employer_name / employer_uenPosting company and its Singapore UEN (joins to ACRA)
employer_logo_url / employer_description / employer_website_urlEmployer branding and profile
employer_size / employer_ssic_codeHeadcount and Singapore Standard Industrial Classification code
hiring_company_name / hiring_company_uenReal employer behind an agency posting
employment_type / seniorityEmployment type(s) and position level(s)
categories / skills / schemes / flexible_work_arrangementsClassification, curated skills, hiring schemes, FWA types
min_experience_yearsMinimum years of experience required
salary_min_sgd / salary_max_sgd / salary_typeDisclosed salary range and period (Monthly or Annual)
location / district / regionFull address, Singapore postal district, region
is_overseasWork location is outside Singapore
posted_date / expires_date / updated_atPosting, expiry, and last-updated timestamps
is_government_jobEmployer UEN matches a Singapore government entity
job_status / number_of_vacanciesListing status (Open, Re-open) and open headcount
view_count / application_countViews and applications the listing has received
job_urlDirect link to the listing on MyCareersFuture.gov.sg
scraped_atWhen the record was scraped

Output example

{
"job_id": "0b06b625c884745acdf98c2aa2ca0612",
"job_post_id": "MCF-2026-0776599",
"title": "Senior Data Engineer - MPID Team",
"description": "<p>We are looking for a Senior Data Engineer...</p>",
"employer_name": "SHOPEE IP SINGAPORE PRIVATE LIMITED",
"employer_uen": "201818794D",
"employer_logo_url": "https://static.mycareersfuture.gov.sg/images/company/logos/abc123/shopee.jpg",
"employer_ssic_code": "62021",
"hiring_company_name": "",
"hiring_company_uen": "",
"employment_type": "Permanent, Full Time",
"seniority": "Senior Executive",
"categories": ["Information Technology"],
"skills": ["Python", "Apache Spark", "Data Modeling", "AWS"],
"schemes": [],
"flexible_work_arrangements": [],
"min_experience_years": 2,
"salary_min_sgd": 8000,
"salary_max_sgd": 10500,
"salary_type": "Monthly",
"location": "1 FUSIONOPOLIS PLACE GALAXIS Singapore 138522",
"district": "D05 Pasir Panjang, Hong Leong Garden, Clementi New Town",
"region": "West",
"is_overseas": false,
"posted_date": "2026-08-12",
"expires_date": "2026-09-10",
"updated_at": "2026-08-27T09:46:29.000Z",
"is_government_job": false,
"job_status": "Re-open",
"number_of_vacancies": 1,
"view_count": 204,
"application_count": 28,
"job_url": "https://www.mycareersfuture.gov.sg/job/information-technology/senior-data-engineer-mpid-team-shopee-0b06b625c884745acdf98c2aa2ca0612",
"scraped_at": "2026-08-29T10:00:00.000Z"
}

Download the dataset as JSON, CSV, Excel, HTML, or XML from the Storage tab or the Apify API.

Use cases

  • Salary benchmarking — every MyCareersFuture listing carries a disclosed SGD range; aggregate it by role, seniority, district, or industry.
  • Labour-market research — track hiring volume, skills demand, and vacancy counts across the Singapore economy over time.
  • Recruitment intelligence — see which companies are hiring, how many applications listings attract, and how long roles stay open.
  • Company lead lists — pull employers by category or SSIC code, each with a UEN that joins to the ACRA company registry.
  • Job board / aggregator — power a Singapore-focused jobs product with structured, deduplicated listings.
  • LLM training data — a large corpus of well-structured job descriptions with salary and skills labels.

How it works

  1. Search — the scraper queries MyCareersFuture's public job API with your searchQuery, newest listings first, 100 per page.
  2. Filtercategories, employmentTypes, positionLevels, and companyNames are applied to each listing (the API returns the full record, so filtering costs no extra requests).
  3. Shape — each listing is flattened into 37 fields, with the address assembled into a single string and the salary range read from the mandatory disclosure.
  4. Rows stream to the dataset and stop at maxItems (or run to the end of the feed when maxItems is 0).

How much does it cost to scrape MyCareersFuture?

This actor is pay per result — you are charged once per job listing saved.

PlanPrice per 1,000 jobs
Free$0.99
Bronze$0.89
Silver$0.89
Gold$0.79

A small platform Actor start fee also applies per run. maxItems is the exact number of billed rows — set it to control spend. Scraping 1,000 listings on the Free plan costs about $0.99; the full board of ~90,000 listings costs about $89 and takes 30–45 minutes. Apify's monthly free platform usage covers small runs.

How to scrape MyCareersFuture

  1. Click Try for free and sign in to Apify.
  2. Enter a search query, or leave it blank for every listing.
  3. Optionally pick categories, employment types, position levels, or add company names.
  4. Set Max items low for the first run (e.g. 100).
  5. Click Start, then watch rows appear in the Output tab.
  6. Export from Storage, or pull results via the API.

Run it via API

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/mycareersfuture-jobs-scraper").call(run_input={
"searchQuery": "data analyst",
"categories": ["21"],
"employmentTypes": ["8"],
"maxItems": 200,
})
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["title"], "-", job["employer_name"], "-", job["salary_min_sgd"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/mycareersfuture-jobs-scraper').call({
searchQuery: '',
companyNames: ['shopee', 'grab'],
maxItems: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Schedule recurring runs, add webhooks, or push results to Google Sheets, Slack, Zapier, and Make with Apify integrations.

FAQ

Do I need a MyCareersFuture account or API key? No. The scraper reads MyCareersFuture's public job data only. There is no official MyCareersFuture jobs API for developers — this actor is the alternative.

How current is the data? Live. Each run reads MyCareersFuture at that moment. Use Apify's scheduler to keep a dataset fresh.

Does every listing really have a salary? Yes — salary disclosure is mandatory on MyCareersFuture. A small number of employers hide it; those rows come back with salary_min_sgd and salary_max_sgd as null.

What is the UEN and why is it useful? The Unique Entity Number is every Singapore-registered entity's ID. employer_uen lets you join listings to the ACRA company registry, financial filings, or your own CRM.

How do I get every job on MyCareersFuture? Set searchQuery to "" and maxItems to 0. The run scans the whole feed (~90,000 listings, ~940 pages) and takes roughly 30–45 minutes.

Why did my category / seniority filter return fewer rows than expected? Those filters are applied to each listing as it is read from the newest-first feed. For a very selective filter with no search query, raise maxPages so the run scans deeper into the feed.

Something's not working. Open an issue on the Issues tab with your input and the run link — we respond quickly.

MyCareersFuture is a Singapore government portal and its job listings are public information any visitor can see. Scraping publicly available pages is legal in most jurisdictions, and this actor does not access private data or bypass any login. You are responsible for how you use the data — follow MyCareersFuture's Terms of Use and the Singapore PDPA when handling any personal data, and consult a lawyer if you are unsure. See Apify's guide on the legality of web scraping.

Browse all ParseBird actors on Apify Store.