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

Scrape remote jobs from Working Nomads: title, company, category, job type, experience level, locations, salary, tags, full description, apply link and posted date. Search by keyword or URL and filter by category, location, type, level, date and salary. No login needed.
Get remote job listings from Working Nomads as clean, structured data: title, company, category, job type, experience level, candidate locations, salary, skill tags, full description, apply link and posted date. Search by keyword or paste any Working Nomads link, add filters, and get hundreds of jobs in seconds. No login, no browser, and you pay only for the jobs you save.
python, product designer, customer support) or paste Working Nomads URLs.| Field | What it does |
|---|---|
keywords | Skills, titles or companies. Each keyword is its own search, like the site's search box. title:designer matches titles only, python AND django needs both words. |
startUrls | Working Nomads links: /jobs?tag=ai&location=europe, /remote-development-jobs, /remote-python-jobs-europe, /remote-germany-jobs, /remote-jobs-that-pay-100k, /remote-company/... or a single job link. |
maxResults | Maximum jobs to save in total (0 = all). |
categories | Development, Design, Marketing, Sales, Management, Finance and the other site categories. |
locations | Countries or regions where candidates may live (Germany, USA, Europe, Latin America, APAC, EMEA, Anywhere). |
strictLocation | Only jobs that name the location itself, not its wider region or "Anywhere". |
positionTypes / experienceLevels | Full-time, part-time, contract / entry, mid, senior. |
postedWithinDays | Only jobs posted in the last N days. |
minSalary / maxSalary / onlyWithSalary | Annual salary range in USD, or only jobs that state a salary. |
excludeKeywords | Skip jobs whose title contains these words. |
sortBy | Relevance, featured first then newest (the site's order), or strictly newest first. |
includeDescription / includeHtml | Save the description as text (on by default) and as HTML. |
{
"keywords": ["python", "data engineer"],
"categories": ["Development"],
"locations": ["Europe"],
"experienceLevels": ["senior"],
"postedWithinDays": 7,
"maxResults": 100
}
| Field | Description |
|---|---|
jobId, title, detailUrl | Job id, title and the job page on Working Nomads |
company, companySlug, companyUrl | Hiring company and its Working Nomads company page |
category, type, experienceLevel | Category, Full-time / Part-time / Contract, Entry / Mid / Senior Level |
location, locations, locationNote | Where candidates may live, as a list, plus the employer's own wording (time zones, limits) |
salary, annualSalaryUsd | Salary as shown and the annual USD figure Working Nomads computes |
tags | Skill tags |
postedAt, promoted | Posting time (UTC) and whether it is a featured listing |
applyUrl, applyEmail | Where to apply |
descriptionText, descriptionHtml | Full description |
searchUrl, scrapedAt | The search the job came from and when it was saved |
Example (description shortened):
{
"jobId": "1960224",
"title": "Business Development and Partnerships Director (Remote)",
"company": "The Athletic Media Company",
"companySlug": "the-athletic-media-company",
"companyUrl": "https://www.workingnomads.com/remote-company/the-athletic-media-company",
"category": "Sales",
"type": "Full-time",
"experienceLevel": "Senior Level",
"location": "USA",
"locations": ["USA"],
"locationNote": null,
"salary": "$130k-$145k per year",
"annualSalaryUsd": 145000,
"tags": ["partnerships", "business development", "director", "business operations", "leadership"],
"postedAt": "2026-10-21T11:13:13Z",
"promoted": false,
"detailUrl": "https://www.workingnomads.com/jobs/business-development-and-partnerships-director-remote-the-athletic-media-company-1960224",
"applyUrl": "https://jobs.lever.co/theathletic/cc74f12b-10f1-4862-bf93-f472e8d4bc3e",
"applyEmail": null,
"descriptionText": "About Us\n\nPowered by one of the largest global newsrooms in sports media, The Athletic brings sports fans ...",
"searchUrl": "https://www.workingnomads.com/jobs",
"scrapedAt": "2026-10-21T11:55:21Z"
}
You pay $4.50 per 1,000 saved jobs ($0.0045 per job), with no start fee. Descriptions, salaries and every other field are included in that price.
Platform usage (compute and proxy traffic) is billed separately and is tiny for this scraper: a 20-job run uses well under $0.001. Set a maximum charge for a run and the scraper stops cleanly when it is reached, keeping everything saved so far.
Is it legal to scrape Working Nomads? The scraper only reads public job listings that any visitor can see without an account. Check the site's terms and the laws that apply to you before you use the data, especially for personal data.
Do I need a login or a proxy? No login. The built-in datacenter proxy is on by default and works well; you do not need anything else.
How many jobs can I get? Everything Working Nomads shows to visitors for your search: currently around 5,000 jobs on the whole board. Use Max results 0 to get them all.
Why is a field empty? Employers do not always fill everything in. Salary is the most often missing field; use "Only jobs with a salary" to keep only jobs that state one.
Why does a Germany search return jobs open to "Europe" or "Anywhere"? That is how the Working Nomads location filter works: a country also matches jobs open to its region and to anywhere. Turn on "Exact location only" to keep only jobs that name the location itself.
Can I schedule it or use the API? Yes. Schedule daily runs with "Posted within (days)" set to 1 to get only new jobs, and start runs or download results through the API or integrations.
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.
keywordsarrayOptionalSearch keywords
Skills, job titles or company names, for example python, product designer or customer support. Each keyword is its own search across title, description and company, like the Working Nomads search box. Write title:designer to match titles only, or python AND django to require both words. Leave keywords and URLs empty to get the newest jobs on the whole board.
startUrlsarrayOptionalWorking Nomads URLs
Working Nomads pages to scrape: search links (workingnomads.com/jobs?tag=ai&location=europe), category, tag, country or experience pages (workingnomads.com/remote-development-jobs, /remote-python-jobs-europe, /remote-germany-jobs), salary pages (/remote-jobs-that-pay-100k), company pages (/remote-company/...) or single job links. Filters in a link are applied.
maxResultsintegerOptionaldefault 20Max results
Maximum number of jobs to save across all searches. Use 0 for every matching job.
All filters are optional. They apply to every keyword and URL and replace the same filter inside a URL.
categoriesarrayOptionalCategories
Keep jobs in any of these Working Nomads categories.
locationsarrayOptionalCandidate locations
Keep jobs open to candidates in any of these places: a country (Germany, USA, Brazil), a region (Europe, North America, Latin America, APAC, Africa, Middle East, EMEA) or Anywhere. Like the site, a country also matches jobs open to its region and to anywhere unless Exact location only is on.
strictLocationbooleanOptionaldefault falseExact location only
Only keep jobs that name the location itself, not jobs open to its wider region or to anywhere.
positionTypesarrayOptionalJob types
Keep jobs of any of these types.
experienceLevelsarrayOptionalExperience levels
Keep jobs at any of these levels.
postedWithinDaysintegerOptionalPosted within (days)
Keep only jobs posted in the last N days, for example 1, 3 or 7.
minSalaryintegerOptionalMinimum salary (USD per year)
Keep jobs whose annual salary, converted to USD by Working Nomads, is at least this amount. Jobs without a salary are left out when this is set.
maxSalaryintegerOptionalMaximum salary (USD per year)
Keep jobs whose annual salary in USD is at most this amount.
onlyWithSalarybooleanOptionaldefault falseOnly jobs with a salary
Skip jobs that do not state a salary.
excludeKeywordsarrayOptionalExclude title keywords
Skip jobs whose title contains any of these words, for example intern or junior.
sortByenumOptionaldefault "relevance"Sort by
Order in which jobs are collected. Matters when Max results is smaller than the number of matches. Relevance and Featured first match the Working Nomads site (featured jobs on top); Newest first ignores featured placement.
maxResultsPerSearchintegerOptionaldefault 0Max results per search
Cap for each keyword or URL on its own. 0 means no per-search cap.
includeDescriptionbooleanOptionaldefault trueInclude description
Save the full job description as plain text.
includeHtmlbooleanOptionaldefault falseInclude description HTML
Also save the description as HTML.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for Working Nomads.
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 |
|---|---|---|
| jobId | string | null | Working Nomads job id |
| title | string | null | Job title |
| company | string | null | Company name |
| companySlug | string | null | Company slug on Working Nomads |
| companyUrl | string | null | Company page on Working Nomads |
| category | string | null | Working Nomads category, e.g. Development, Marketing |
| type | string | null | Full-time, Part-time or Contract |
| experienceLevel | string | null | Entry Level, Mid Level or Senior Level |
| location | string | null | Where candidates may live, joined from locations |
| locations | array | Countries and regions the job is open to |
| locationNote | string | null | Location wording from the employer, e.g. time zone limits |
| salary | string | null | Salary as shown, e.g. $120k-$150k per year |
| annualSalaryUsd | number | null | Annual salary in USD as computed by Working Nomads (top of the range) |
| tags | array | Skill tags |
| postedAt | string | null | When the job was posted (UTC) |
| promoted | boolean | null | Featured (paid) listing |
| detailUrl | string | null | Job page on Working Nomads |
| applyUrl | string | null | Employer apply link (or mailto: link) |
| applyEmail | string | null | Apply email when the employer gives one |
| descriptionText | string | null | Full description as plain text |
| descriptionHtml | string | null | Full description as HTML |
| searchUrl | string | null | The keyword search or URL this job came from |
| scrapedAt | string | null | When the job was scraped (UTC) |
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 |
|---|---|---|
| Job | One saved Working Nomads remote job. | $0.0045 |
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/workingnomads-scraper').call({
"keywords": [
"python"
],
"startUrls": [],
"maxResults": 20,
"locations": [],
"excludeKeywords": [],
"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/workingnomads-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/workingnomads-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.
Paste any Working Nomads search link and get its jobs in the site's order.
Keyword search with category, job type, level and salary filters.
Category page link plus a region filter, with description HTML.
Country page with exact location only.
Salary page link, newest first, without descriptions.
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.