
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Extract public job listings from Seek, JobStreet, and JobsDB. Search by keyword, location, or a results URL and save salary, company, applicant, and contact details when the listing publishes them.
Search public job listings on SEEK, JobStreet, and JobsDB and get clean data: title, salary, company profile, location, work type, applicant counts, full description, and apply link. No login and no API key. $0.001 per job, which is $1 per 1,000.
software engineer, or paste a Search results URL or a single job link.| Field | Key | Description |
|---|---|---|
| Search term | searchTerm | Job title or keyword. |
| Search results URL | searchUrl | A full SEEK, JobStreet, or JobsDB search URL, or one /job/ link. When set, the filters below are ignored. |
| Maximum jobs | maxResults | 1 to 550, since SEEK caps one search at 550. Default 10. |
| Country | country | australia, new zealand, hongkong, indonesia, malaysia, philippines, singapore, or thailand. |
| Location, State, Postcode, Radius | location, state, postCode, radius | Where to search, and how far in kilometres. |
| Posted within days | dateRange | Only jobs posted in the last N days. |
| Sort by | sortBy | KeywordRelevance or ListedDate. |
| Work types / arrangements | workTypes, workArrangements | Full time, part time, contract, casual; on-site, hybrid, remote. |
| Salary | salaryType, salaryMin, salaryMax | Annual, monthly, or hourly range in local currency. |
| Classification | classification, subclassifications | SEEK classification ids. |
| Applicants | minApplicants, maxApplicants | Jobs that hide the count are skipped when set. |
| Title keywords | includeOneInTitle | Keep a job only when its title has one of these words. |
| Contact filters | requireEmail, requirePhone, requireEmailAndPhone | Keep only jobs that publish those contacts. |
| Proxy configuration | proxyConfiguration | Datacenter by default. |
{
"searchTerm": "software engineer",
"country": "australia",
"location": "Sydney",
"maxResults": 10,
"workArrangements": ["hybrid", "remote"],
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": ["DATACENTER"]
}
}
One row per job.
| Field | Description |
|---|---|
id, jobLink, applyLink | Job id, public page, and apply page |
title, salary, workTypes, workArrangements | Title, published salary label, work type, and arrangement |
content | Bullet points, job hook, and the description |
classificationInfo, joblocationInfo | Classification and location, including country and suburb |
advertiser, companyProfile | Hiring company, with industry, size, rating, reviews, website, and perks |
numApplicants, phoneNumbers, emails | Applicant count and contact details when published |
employerQuestions, recruiterProfile | Screening questions and recruiter details when published |
listedAt, expiresAtUtc | When the job was listed and when it expires |
Example item (trimmed):
{
"id": "95163389",
"jobLink": "https://au.seek.com/job/95163389",
"applyLink": "https://au.seek.com/job/95163389/apply",
"title": "Principal Software Architect",
"salary": null,
"workTypes": "Full time",
"content": {
"bulletPoints": [
"Lead the architecture of global data platforms",
"Drive technical strategy and platform innovation",
"Hybrid work, wellbeing benefits, real impact"
]
},
"classificationInfo": {
"classification": "Information & Communication Technology",
"subClassification": "Architects"
},
"joblocationInfo": {
"displayLocation": "Sydney NSW",
"country": "Australia",
"countryCode": "AU"
},
"advertiser": { "id": "21190750", "name": "Cotality", "isVerified": true },
"companyProfile": {
"name": "Cotality",
"size": "5,001-10,000 employees",
"website": "https://www.cotality.com/au",
"numberOfReviews": 32,
"rating": 2.8
},
"listedAt": "2026-10-09T03:44:33.724Z",
"expiresAtUtc": "2026-11-08T12:59:59.999Z"
}
$0.001 per job ($1 per 1,000 jobs). Platform usage is billed on top at standard rates: compute $0.30 per GB-hour and datacenter proxy $1 per GB.
Worked example: 10 jobs cost 10 × $0.001 = $0.01 in job fees. With measured platform usage, a 10-job search came to about $0.012.
The actor reads public job listings that anyone can open. Follow the site's terms and privacy laws such as GDPR for personal contact data.
No login. Datacenter proxies are used by default and billed per GB.
Up to 550 per search, because SEEK caps one search there. Split larger jobs by location, date, or classification.
Salary, applicant counts, and contacts are only filled when the advertiser publishes them, so null or empty lists are normal.
Yes. Use Schedules for daily runs, or call the REST API and read the dataset in any format.
joblocationInfo.area and locationIds come back empty because the public data does not include them.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchTermstringOptionalSearch term
Job title or keyword, such as software engineer.
searchUrlstringOptionalSearch results URL
A full Seek, JobStreet, or JobsDB search results URL, or a single /job/ link. When this is set, the other filters are ignored.
maxResultsintegerOptionaldefault 10Maximum jobs
How many job listings to save. Seek caps one search at 550.
Narrow the search. A search results URL ignores these fields.
countryenumOptionaldefault "australia"Country
Which public jobs site to search.
locationstringOptionalLocation
Suburb, city, or region, such as Sydney or All Sydney NSW.
statestringOptionalState
State or territory, such as NSW.
postCodestringOptionalPostcode
Postcode to include in the location.
radiusintegerOptionalRadius (km)
Distance in kilometres from the location.
dateRangeintegerOptionalPosted within days
Only jobs posted in the last this many days.
sortByenumOptionalSort by
Sort order for the search.
workTypesarrayOptionalWork types
Full time, part time, contract, or casual. Leave empty for all.
workArrangementsarrayOptionalWork arrangements
On-site, hybrid, or remote. Leave empty for all.
salaryTypeenumOptionalSalary type
How salary min and max are interpreted.
salaryMinintegerOptionalMinimum salary
Lowest salary to include, in the local currency.
salaryMaxintegerOptionalMaximum salary
Highest salary to include, in the local currency.
classificationstringOptionalClassification ids
Parent classification ids, comma-separated. Example: 6281 for Information & Communication Technology.
subclassificationsarrayOptionalSubclassification ids
Subclassification ids, such as 6287 for Developers/Programmers.
minApplicantsintegerOptionalMinimum applicants
Only save jobs with at least this many applicants. Jobs that hide the count are skipped.
maxApplicantsintegerOptionalMaximum applicants
Only save jobs with at most this many applicants. Jobs that hide the count are skipped.
includeOneInTitlearrayOptionalTitle must include one of
Keep a job only when its title contains at least one of these words.
requireEmailbooleanOptionaldefault falseRequire an email
Only save jobs whose description includes an email address.
requirePhonebooleanOptionaldefault falseRequire a phone number
Only save jobs that publish a phone number.
requireEmailAndPhonebooleanOptionaldefault falseRequire email and phone
Only save jobs that publish both an email address and a phone number.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies are the default. Use residential only when the jobs site refuses the datacenter pool.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | null | Job id |
| title | string | null | Job title |
| salary | string | null | Published salary label |
| numApplicants | integer | null | Applicant count when the listing publishes it |
| workTypes | string | null | Work type |
| workArrangements | string | null | Remote, hybrid, or on-site |
| jobLink | string | null | Public job page |
| applyLink | string | null | Apply page |
| listedAt | string | null | When the job was listed |
| advertiser | object | null | |
| joblocationInfo | object | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One saved job listing. | $0.001 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('openrole/seek-job-scraper').call({
"searchTerm": "software engineer",
"searchUrl": "",
"maxResults": 10,
"country": "australia",
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run openrole/seek-job-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=openrole/seek-job-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Jobs listed in the last 14 days.
Jobs from a pasted JobStreet search URL.
Remote full-time jobs, newest first.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.