MyCareersFuture Jobs Scraper avatar

MyCareersFuture Jobs Scraper

Pricing

from $3.00 / 1,000 job scrapeds

Go to Apify Store
MyCareersFuture Jobs Scraper

MyCareersFuture Jobs Scraper

Scrape public Singapore MyCareersFuture.gov.sg jobs by keyword, UEN, filters, or job UUID/URL. Returns salary, company UEN, skills, and location. HTTP-only, no login, MCP-ready.

Pricing

from $3.00 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

8 days ago

Last modified

Share

Extract public Singapore job listings from MyCareersFuture into structured JSON for recruiting shortlists, salary research, employer hiring intel, and MCP/API agents. Search by keyword, filter by employer ACRA UEN or taxonomy, or paste a job UUID. Each row includes title, SGD salary band, posted company name and UEN, skills, location, and a canonical job link — HTTP-only against the public v2 API, with no Singpass and no login.

Run it on Apify for scheduling, API access, Residential proxy fallback, and Pay per event billing with a clear maxItems cost cap.

Best fit

Choose this Actor when you need public MyCareersFuture postings with SGD salary bands and ACRA UEN on the employer. It works well for Singapore software, healthcare, finance, and government-board monitoring workflows where FCF-style salary disclosure and company identity matter.

For multi-market Indeed jobs, continue with Indeed Job Scraper when the next step is Indeed search cards. For Google Jobs cards across countries, then use Google Jobs Scraper for SERP-style job discovery. For LinkedIn job cards with salary and skills context, continue with LinkedIn Jobs Scraper when the source board is LinkedIn. For India tech hubs, continue with Naukri Jobs Scraper when the workflow moves to Naukri.com.

Workflow story

A Singapore talent-intel analyst sets search to software engineer, maxItems to 10, and keeps sortBy on new_posting_date. The Actor pages the public MyCareersFuture jobs API, writes one validated row per UUID with salaryMin/salaryMax, postedCompanyUen, skills, and jobUrl, then the analyst filters UENs into a watchlist and exports CSV into their compensation sheet.

How it works

  1. Collects keyword, UEN, UUID/URL, or taxonomy/salary filter inputs
  2. Calls the public MyCareersFuture v2/jobs search and optional v2/jobs/{uuid} detail endpoints over HTTPS
  3. Normalizes rows (HTML→text, public fields only), charges job-scraped, then pushData
  4. Writes OUTPUT and RUN_SUMMARY with an honest outcome (COMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT, or UPSTREAM_FAILED)

Input example

{
"search": "software engineer",
"maxItems": 5,
"sortBy": "new_posting_date"
}

Employer UEN mode:

{
"companyUens": ["201816453D"],
"maxItems": 20
}
FieldWhat it controls
search / searchQueriesKeyword search against titles, skills, and descriptions
companyUensACRA UEN list — jobs where posted company UEN matches
jobIds / startUrlsExact 32-character job UUIDs or UUID job URLs (prefer UUID page links)
categories / employmentTypes / positionLevelsExact MyCareersFuture enum labels
salaryFrom / salaryToMonthly SGD salary filter bounds
sortBynew_posting_date (default) or min_monthly_salary
maxItemsHard unique-job cap (default 50; prefill 5)
fetchDetails / includeScreeningQuestionsOptional detail re-fetch / screening questions

Output fields

FieldDescription
title + jobUrlPublic job title and MyCareersFuture page
salaryMin / salaryMax / salaryTypeAdvertised SGD salary band when published
postedCompanyName + postedCompanyUenPosting employer and ACRA UEN
categories / employmentTypes / positionLevelsTaxonomy labels
skillsSkill labels (key-skill flags when present)
postedDate / expiryDatePosting and expiry dates
source / scrapedAtProvenance (mycareersfuture-v2) and scrape time

Example output

You can download the dataset in JSON, HTML, CSV, or Excel.

{
"uuid": "8914f4821a02ec72243d855f62a79072",
"jobPostId": "MCF-2026-1579008",
"title": "Software Engineer",
"jobUrl": "https://www.mycareersfuture.gov.sg/job/8914f4821a02ec72243d855f62a79072",
"salaryMin": 5000,
"salaryMax": 8000,
"salaryType": "Monthly",
"postedCompanyName": "Example Pte Ltd",
"postedCompanyUen": "201816453D",
"categories": ["Information Technology"],
"employmentTypes": ["Full Time"],
"positionLevels": ["Professional"],
"skills": [{ "skill": "JavaScript", "isKeySkill": true }],
"postedDate": "2026-09-01",
"expiryDate": "2026-10-01",
"source": "mycareersfuture-v2",
"scrapedAt": "2026-09-21T12:00:00.000Z"
}

Pricing

Startup billing and empty runs

The apify-actor-start event costs $0.00005 per startup unit. Apify charges one startup unit per GB of allocated memory, with a minimum of one unit, so a 2 GB run incurs two units. This startup charge still applies when input is invalid, no results are found, or an upstream request fails. Statements about free, unbilled, or skipped results refer only to the corresponding result event; they do not waive the startup charge. Apify platform usage is included in the event prices and is not passed through as an additional customer charge. Check the live Pricing tab for current events, tiers, and rates. Result limits cap result events, not the entire run cost.

This Actor uses Pay per event with platform usage included. The live Pricing tab is the source of truth.

  • apify-actor-start: $0.00005 per run
  • job-scraped: $0.003 per unique persisted job row

A five-job sample is about $0.015 in result events with Apify platform usage included. Duplicate UUIDs and rows past maxItems are billed once per unique saved job.

API example

curl "https://api.apify.com/v2/acts/khadinakbar~mycareersfuture-jobs-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"search":"software engineer","maxItems":5,"sortBy":"new_posting_date"}'

Best results

  • Prefer maxItems ≤ 20 while testing filters so you can validate enums before a larger harvest.
  • Category / employment / position values work best when they match MyCareersFuture labels exactly (for example Information Technology, Full Time); mismatched enums finish as INVALID_INPUT.
  • Copy the UUID from the job page URL (/job/<32-hex>). Prefer UUID detail links for the public API detail path.
  • Leave fetchDetails off for lean search harvests; enable it when you want the freshest detail payload or screening questions.
  • Empty but valid searches finish successfully with VALID_EMPTY and zero job-scraped charges.
  • Hitting maxItems finishes as PARTIAL by design — raise the cap when you need a larger sample.

Use with AI agents (Apify MCP)

Search MyCareersFuture for software engineer jobs in Singapore. Return title, salaryMin, salaryMax, postedCompanyName, postedCompanyUen, and jobUrl. Cap at 5 jobs.

Connect via https://mcp.apify.com. Tool name shape: apify--mycareersfuture-jobs-scraper. Read OUTPUT.outcome and itemsPushed before treating an empty dataset as an outage. Cost signal: about $0.003 per saved job with Apify platform usage included.

Builder's note

I built this around the public MyCareersFuture v2/jobs JSON surface because I found that salary bands and ACRA UEN already arrive without a browser. I learned that enum-exact filters, UUID-only detail URLs, and honest PARTIAL when maxItems stops pagination matter more for callers than fighting Cloudflare. My goal was one validated public job row per UUID with PDPA-safe fields only.

MyCareersFuture, SkillsFuture Singapore, and related Government of Singapore marks are trademarks of their respective owners. This independent Actor is not affiliated with, associated with, or endorsed by SkillsFuture Singapore, MyCareersFuture, GovTech, or the Government of Singapore. SkillsFuture Singapore and MyCareersFuture are trademarks of their respective owners. This independent Actor is not affiliated with, associated with, or endorsed by SkillsFuture Singapore or the Government of Singapore.

You remain responsible for complying with applicable laws, site terms, and your own data-use policies.

PDPA: Output is limited to public job and company fields. Recruiter personal emails and internal user identifiers stay out of the billed row. Use results for lawful recruiting research and salary analysis only.

For feedback or custom workflows, use the Actor Issues tab on Apify.