MyCareersFuture Singapore Jobs Scraper
Pricing
from $0.01 / 1,000 job extracteds
MyCareersFuture Singapore Jobs Scraper
Extract public Singapore jobs with salaries, employer UENs, skills, categories, vacancies, locations, dates, and source links. Search, schedule, and export without login.
Pricing
from $0.01 / 1,000 job extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Collect public Singapore job listings from MyCareersFuture as clean JSON, CSV, Excel, XML, or RSS data. Search by title or skill, filter structured records, and export salaries, employer UENs, skills, dates, vacancies, locations, and public job URLs.
The Actor talks directly to the public MyCareersFuture JSON service.
It needs no login, cookie, browser, proxy, or external API key.
Start with software engineer and ten jobs to review the dataset in under a minute.
What does MyCareersFuture Singapore Jobs Scraper do?
MyCareersFuture Singapore Jobs Scraper searches and paginates current listings on Singapore's public MyCareersFuture portal. It turns each listing into one analysis-ready row with normalized text and flattened fields.
Use it to:
- ๐ search job titles, skills, descriptions, and employers;
- ๐ฐ compare advertised SGD salary ranges;
- ๐ข identify employers by company name and Singapore UEN;
- ๐งฐ collect skills, categories, seniority, and employment types;
- ๐ map jobs by address, district, region, postal code, and coordinates;
- ๐ monitor posting, update, and expiry dates;
- ๐ retain the public job page and API record links.
Unlike browser automation, the Actor uses lightweight HTTP requests to the structured source. That makes scheduled collection fast, stable, and inexpensive.
Who is it for?
Recruiters and talent intelligence teams
- Build daily shortlists for specific roles or skills.
- Compare salary bands across employers and position levels.
- Monitor one employer by UEN for new hiring activity.
Job boards and aggregators
- Import normalized listings into a search index.
- Deduplicate updates with stable job UUIDs and MCF post IDs.
- Remove expired records using the published expiry date.
Labor-market and salary analysts
- Track vacancy volume by category, district, or seniority.
- Measure salary distributions in SGD.
- Analyze demand for skills and occupations over time.
Sales and business intelligence teams
- Detect companies actively hiring.
- Connect employer UENs with internal company records.
- Trigger account alerts from scheduled job-feed changes.
Why use this MyCareersFuture scraper?
- โ First-party structured data โ no brittle visual page selectors.
- โ Rich Singapore fields โ salary, UEN, SSOC, skills, vacancies, dates, and GPS where published.
- โ No authentication โ no MyCareersFuture account or private credential.
- โ Strict filters โ missing salary or date values do not accidentally pass active filters.
- โ Bounded collection โ control both saved jobs and scanned API pages.
- โ Portable exports โ use Apify datasets in JSON, CSV, Excel, XML, or RSS.
- โ Automation ready โ schedule runs, call the API, send webhooks, or connect Make and Zapier.
- โ Efficient runtime โ direct HTTP at 256 MB, without browser overhead.
What MyCareersFuture job data can you extract?
| Data group | Example fields |
|---|---|
| Job identity | uuid, jobPostId, title, status |
| Description | normalized description, optional descriptionHtml |
| Employer | companyName, companyUen, website, logo, employee count |
| Salary | salaryMinimum, salaryMaximum, salaryType, salaryCurrency |
| Requirements | skills, key skills, minimum experience, SSOC and occupation IDs |
| Classification | categories, employment types, position levels, schemes |
| Hiring volume | vacancies, view count, application count |
| Location | address, postal code, districts, regions, latitude, longitude |
| Dates | posted, original posted, created, updated, expiry, scraped |
| Links | public sourceUrl and structured apiUrl |
Optional fields are omitted when the source does not publish them. Arrays remain arrays, numbers remain numbers, and descriptions are converted from HTML to readable text.
How much does it cost to scrape MyCareersFuture jobs?
This Actor uses pay-per-event pricing. A run has a small start fee and a price for each job saved successfully. There is no separate proxy, browser, or API subscription charge.
| Apify plan | Start | Per saved job |
|---|---|---|
| Free | $0.005 | $0.000024783 |
| Starter / Bronze | $0.005 | $0.00002155 |
| Scale / Silver | $0.005 | $0.000016809 |
| Business / Gold | $0.005 | $0.00001293 |
At the current rates, 100 jobs cost about $0.0075 on the Free tier and $0.0072 on Starter, including the start fee. One thousand jobs cost about $0.0298 on Free and $0.0266 on Starter. Higher Apify plans receive additional volume discounts.
Prices are visible before every run, and maxItems is a hard output cap.
Start small to confirm that a query and filters fit your workflow.
How to scrape Singapore jobs from MyCareersFuture
- Open MyCareersFuture Singapore Jobs Scraper.
- Enter a job title, skill, company, or keyword in Search query.
- Set Maximum jobs to the number of rows you need.
- Optionally add a recency, salary, category, employment type, or UEN filter.
- Click Start.
- Review the Singapore job listings dataset view.
- Export JSON, CSV, Excel, XML, or RSS, or connect the dataset to another system.
A minimal input is:
{"searchQuery": "software engineer","sortBy": "newest","maxItems": 10}
A recent salary-focused search is:
{"searchQuery": "data analyst","postedWithinDays": 30,"salaryMin": 5000,"maxItems": 100,"maxPages": 20}
An employer monitor is:
{"companyUen": "201426535W","sortBy": "newest","postedWithinDays": 14,"maxItems": 200,"maxPages": 100}
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | software engineer | Source-side keyword, title, skill, or employer search |
maxItems | integer | 50 | Maximum matching jobs saved, from 1 to 10,000 |
sortBy | string | newest | newest or source relevance order |
postedWithinDays | integer | unset | Keep parseable posting dates within 0โ365 days |
salaryMin | integer | unset | Salary band maximum must reach this SGD amount |
salaryMax | integer | unset | Salary band minimum must not exceed this SGD amount |
categories | string[] | [] | Exact category names; any requested value may match |
employmentTypes | string[] | [] | Exact source employment types; any may match |
companyUen | string | unset | Exact case-insensitive Singapore company UEN |
includeDescriptionHtml | boolean | false | Include original HTML alongside normalized text |
maxPages | integer | 20 | Maximum 100-record API pages scanned |
Category and employment filters use the labels published in each listing.
Examples include Information Technology, Engineering, Full Time, Contract, Internship, and Part Time.
salaryMin and salaryMax test whether an advertised salary band overlaps the requested range.
When a salary filter is active, jobs without numeric salary data are excluded.
Output example
{"uuid": "7ae80628786621c34bf2dc83ee2dc61c","jobPostId": "MCF-2026-1222459","title": "Medical Social Worker - Nursing Home","description": "Key Responsibilities\nIntake, Assessment and Admission Support...","companyName": "THE SUPREME HR ADVISORY PTE. LTD.","companyUen": "201426535W","salaryMinimum": 5000,"salaryMaximum": 6500,"salaryType": "Monthly","salaryCurrency": "SGD","minimumYearsExperience": 2,"vacancies": 1,"status": "Open","skills": ["Healthcare", "Social Work", "Case Management"],"categories": ["Social Services"],"employmentTypes": ["Full Time"],"positionLevels": ["Junior Executive"],"districts": ["Islandwide"],"regions": ["Islandwide"],"postedAt": "2026-07-16","expiresAt": "2026-08-15","sourceUrl": "https://www.mycareersfuture.gov.sg/job/...","apiUrl": "https://api.mycareersfuture.gov.sg/v2/jobs/7ae80628786621c34bf2dc83ee2dc61c","scrapedAt": "2026-07-16T06:00:00.000Z"}
The exact available fields vary by employer and listing. For example, an islandwide role may not publish a street address or coordinates.
Filter behavior and pagination
Keyword search and newest ordering are sent to the public MyCareersFuture API. Salary, recency, category, employment type, and UEN filters are applied to structured records returned by that API.
The Actor scans 100 source records per page until one of these conditions is met:
maxItemsmatching jobs have been saved;maxPageshas been scanned;- the source returns an empty page;
- the source-reported result total has been reached.
Sparse client-side filters may return fewer than maxItems when maxPages is low.
Increase maxPages deliberately for a narrow employer or salary query.
Tips for better job datasets
- ๐ฏ Use specific skills such as
Kubernetes,SAP, orregistered nurseinstead of a broad word likemanager. - ๐งช Begin with 10โ50 jobs before requesting thousands.
- ๐
Combine
sortBy: newestandpostedWithinDaysfor monitoring. - ๐ข Use a UEN instead of a company name when you need exact employer matching.
- ๐ฐ Remember that source salary types can be monthly, annual, daily, or hourly.
- ๐งน Use stable
uuidvalues to upsert jobs between scheduled runs. - โณ Compare
expiresAtwith your previous dataset to remove closed listings. - ๐ Enable raw HTML only when downstream formatting requires it.
Schedule a Singapore hiring monitor
Apify schedules can run this Actor hourly, daily, or weekly. A common monitoring workflow is:
- Run every morning with
sortBy: newestandpostedWithinDays: 2. - Store or merge rows by
uuidin a named dataset or database. - Compare the new UUID set with the previous run.
- Send alerts only for unseen jobs or changed expiry and salary fields.
For one employer, add companyUen and increase maxPages enough to scan the relevant feed.
For market-wide trends, schedule separate keyword or category tasks so each dataset has a clear purpose.
Integrations and automation workflows
MyCareersFuture โ Google Sheets
Append new role, employer, salary, skill, and expiry columns to a recruiting tracker after each scheduled run.
MyCareersFuture โ Slack or Discord
Send an alert when a monitored company publishes a new engineering or sales role.
MyCareersFuture โ Make or Zapier
Trigger CRM account activity from employer UENs and create recruiter follow-up tasks.
MyCareersFuture โ BigQuery, Snowflake, or PostgreSQL
Upsert jobs by UUID, snapshot salary bands, and calculate category or skill trends over time.
MyCareersFuture โ webhooks
Notify a downstream service when a run succeeds, then fetch its dataset through the Apify API.
API usage: use the Apify API
Replace YOUR_APIFY_TOKEN with a token from Apify Console.
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/mycareersfuture-singapore-jobs-scraper').call({searchQuery: 'cybersecurity analyst',postedWithinDays: 30,maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_APIFY_TOKEN")run = client.actor("automation-lab/mycareersfuture-singapore-jobs-scraper").call(run_input={"searchQuery": "cybersecurity analyst","postedWithinDays": 30,"maxItems": 100,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~mycareersfuture-singapore-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQuery":"cybersecurity analyst","postedWithinDays":30,"maxItems":100}'
For long runs, start the Actor asynchronously through /runs and poll the returned run ID.
Use with AI agents via MCP
The Actor can be called by assistants that support the Model Context Protocol.
For Claude Code:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/mycareersfuture-singapore-jobs-scraper"
For Claude Desktop, Cursor, or VS Code, add:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/mycareersfuture-singapore-jobs-scraper"}}}
Authenticate with your Apify account when prompted. Then try asking:
- "Use
automation-lab/mycareersfuture-singapore-jobs-scraperto find 50 new Singapore data engineer jobs and summarize salary bands." - "Monitor UEN 201426535W for MyCareersFuture jobs posted in the last seven days."
- "Extract Singapore cybersecurity roles above SGD 6,000 and group their required skills."
Reliability and source limitations
The Actor retries temporary network errors four times with exponential backoff. Each request has a 20-second timeout, UUIDs are deduplicated, and unexpected API response shapes fail the run visibly.
MyCareersFuture controls the source data and API. Fields, taxonomies, totals, and availability can change without notice. The Actor does not infer hidden salaries, private application details, recruiter contact data, or unpublished employer information.
A valid search with no matching jobs may produce an empty dataset. A complete extraction failure returns a failed run instead of silently succeeding.
Legality: is it legal to scrape MyCareersFuture?
This Actor collects publicly accessible job-listing data without bypassing authentication. Web scraping laws and contractual obligations vary by jurisdiction and use case.
You are responsible for:
- using the data for a lawful purpose;
- respecting MyCareersFuture terms and applicable rate limits;
- handling personal data under Singapore's PDPA and other relevant privacy laws;
- avoiding spam, discrimination, or automated decisions that violate employment law;
- retaining only the data needed for your workflow.
When in doubt, seek professional legal advice. This documentation is not legal advice.
Troubleshooting
Why did the run return fewer jobs than maxItems?
Strict filters may reject many source rows before the page safety cap is reached.
Check logs for scanned pages, loosen the filter, or increase maxPages.
Also confirm that category and employment labels exactly match source values.
Why is a salary or address field missing?
The employer did not publish that field for the listing. When salary filtering is enabled, missing numeric salaries are excluded rather than guessed.
Why did the run fail after retries?
The public source may be temporarily unavailable or may have changed its response shape. Review the run log, retry later, and report reproducible failures with the input and run URL.
FAQ: frequently asked questions
How fast is the scraper?
It fetches up to 100 source records per HTTP request and does not launch a browser. Small keyword runs usually complete quickly; sparse filters take longer because more pages must be scanned.
Can I scrape every MyCareersFuture job?
Yes, within your chosen maxItems, maxPages, run timeout, and current source availability.
For large snapshots, use no keyword, raise both limits deliberately, and schedule less frequently.
Does it need a Singapore proxy or MyCareersFuture login?
No. The current implementation reads an anonymously accessible public JSON endpoint directly.
How is this different from the official website?
The website is designed for interactive job search. This Actor adds bounded bulk pagination, normalized exports, strict filters, scheduling, API access, webhooks, and integrations.
Can I monitor changed jobs, not only new jobs?
Yes.
Store prior rows by UUID and compare updatedAt, salary, status, vacancies, and expiresAt during each scheduled run.
Are application counts guaranteed?
No. The Actor returns the source's public count when present and does not estimate unavailable values.
Related Singapore jobs scrapers
Combine this Actor with other Automation Lab tools:
- LinkedIn Jobs Scraper for professional-network job coverage.
- Google Jobs Scraper for aggregated search results.
- Glassdoor Jobs Scraper for employer and job-market research.
- Amazon Jobs Scraper for one major employer's openings.
- Greenhouse Jobs Scraper for public ATS boards.
- Workable Jobs Scraper for Workable-hosted careers pages.
- Workday Jobs Scraper for Workday-hosted employers.
- Ashby Jobs Scraper for Ashby-hosted job boards.
Use source-specific actors when you need stable native identifiers and fields. Use an aggregator when broad discovery matters more than source-level detail.