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

Export job listings from Jooble in 60+ countries (US, UK, Canada, Germany, France, India, Australia and more) by keyword, location, date, job type and salary, or from Jooble search links. Get company, location, salary split into min / max / period, posting date, job type, schedule, remote flag and the full description. No login needed.
Export job listings from Jooble, the job search engine that aggregates ads from thousands of sites, in more than 60 countries (US, UK, Canada, Germany, France, India, Australia, Brazil and more) to JSON, CSV or Excel. Search by keyword and location with date, job-type and salary filters, or paste Jooble search links. Every job comes with the company, location, salary split into min / max / period, posting date, job type, schedule, remote flag and the full description. No login needed, and about 1,000 jobs arrive in under half a minute.
salary_min, salary_max, salary_period and currency.nurse, python developer), pick a Country and optionally a Location.| Field | What it does |
|---|---|
queries | Job titles, skills or companies. Each query is its own search. |
country | Two-letter Jooble site code: us, uk, ca, au, de, fr, in, es, it, nl, pl, br, mx and 50 more. |
location | City, state, region or postcode, or Remote. |
startUrls | Jooble search links such as jooble.org/SearchResult?ukw=nurse&rgns=Chicago. |
maxItems | Total jobs to save across all searches (Jooble shows about 1,000 per search). 0 = no limit. |
postedWithin | 24h, 3d, 7d, 14d or 30d. |
jobTypes | full_time, part_time, contract, internship. |
salaryMin | Minimum yearly salary in local currency. |
{
"queries": ["software engineer"],
"country": "us",
"location": "New York",
"maxItems": 20,
"postedWithin": "7d",
"jobTypes": ["full_time"]
}
| Field | Description |
|---|---|
job_id, url, source_url | Jooble id, Jooble job page, and the forwarding link to the original ad when the job opens off-site |
title, company, company_verified, company_logo | Job and employer |
location, latitude, longitude, country | Where the job is (coordinates when Jooble has them) |
salary_text, salary_min, salary_max, salary_period, salary_currency | Advertised salary and its parsed parts |
estimated_salary | Jooble's estimate, when shown |
date_posted, date_updated, posted_ago | When the job was posted or refreshed |
employment_types, work_schedule, working_conditions, salary_payment | Lists of Jooble's job tags |
is_remote, is_new, is_easy_apply, is_premium | Flags |
snippet, description, description_html | Short preview, full plain text and full HTML |
search_query, search_location, scraped_at | The search that found the job |
{
"job_id": "2826207142508315417",
"title": "Full Stack Software Engineer",
"company": "Robert Half",
"location": "New York, NY",
"salary_text": "$170k",
"salary_min": 170000,
"salary_max": 170000,
"salary_period": "year",
"salary_currency": "USD",
"date_posted": "2026-10-12",
"posted_ago": "3 days ago",
"employment_types": ["Full time"],
"is_remote": false,
"snippet": "...Location: Monroe, NY (Orange County) — Onsite 5 days/week Title: Software Engineer ...",
"description": "Location: Monroe, NY (Orange County) — Onsite 5 days/week Title: Software Engineer\nSalary: up to $170k plus health benefits ...",
"url": "https://jooble.org/desc/2826207142508315417",
"source_url": "https://jooble.org/away/2826207142508315417?p=1&pos=3&...",
"country": "us",
"search_query": "software engineer",
"search_location": "New York",
"scraped_at": "2026-10-16T01:12:24Z"
}
You pay $2.50 per 1,000 jobs saved, plus a small amount of platform usage (compute and proxy traffic). A typical run of 1,000 jobs with full descriptions costs about $2.51 in total. There is no extra charge for descriptions, and you are never charged for jobs that were not saved.
Is it legal to scrape Jooble? The actor reads public job listings that anyone can see without an account. Check Jooble's terms and your local rules (for example GDPR) for how you use the data.
Do I need a Jooble account, API key or my own proxy? No. The actor uses residential proxies pinned to the searched country, which Jooble needs (datacenter exits are refused).
How many jobs can I get? Jooble shows about 1,000 jobs per search. For more, add more queries or locations in the same run, or use date filters. Duplicates are removed.
Why is a field empty? Fields are only filled when Jooble has the data. Many ads have no salary, and coordinates or company logos are only present for some jobs.
Can I schedule it or use it through the API? Yes. Schedule runs in the console and read the dataset through the API, or connect it to webhooks and integrations.
jooble.org/desc/...) cannot be opened directly; paste search links instead. Every search result already includes the full description.salary_text always keeps the original wording.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.
queriesarrayOptionalSearch queries
Job titles, skills or companies to search, one per line, e.g. 'nurse', 'python developer'. Each query is its own search. Leave empty to list all jobs in the location.
countryenumOptionaldefault "us"Country
Which Jooble country site to search (jooble.org for the US, uk.jooble.org, de.jooble.org, ...). Pasted links keep their own country.
locationstringOptionalLocation
City, state, region or postcode, e.g. 'New York', 'Chicago, IL', 'Remote'. Leave empty for the whole country.
startUrlsarrayOptionalJooble search links
Optional. Jooble search result links such as jooble.org/SearchResult?ukw=nurse&rgns=Chicago or de.jooble.org/jobs-python/Berlin, from any country site. Filters below are added to them.
maxItemsintegerOptionaldefault 20Maximum jobs
How many jobs to save in total across all queries and links. Jooble shows about 1,000 jobs per search. 0 = no limit.
postedWithinenumOptionalPosted within
Only jobs posted or updated within this period.
jobTypesarrayOptionalJob type
Only jobs of these types.
salaryMinintegerOptionalMinimum yearly salary
Only jobs whose salary is at least this yearly amount in the local currency (jobs without a salary are left out).
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
Proxy servers used to reach Jooble. Residential exits are pinned to the searched country unless you pick one.
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 |
|---|---|---|
| job_id | string | null | |
| title | string | null | |
| company | string | null | |
| company_verified | boolean | null | |
| company_logo | string | null | |
| location | string | null | |
| latitude | number | null | |
| longitude | number | null | |
| salary_text | string | null | |
| salary_min | number | null | |
| salary_max | number | null | |
| salary_period | string | null | |
| salary_currency | string | null | |
| estimated_salary | string | null | |
| date_posted | string | null | |
| date_updated | string | null | |
| posted_ago | string | null | |
| employment_types | array | null | |
| work_schedule | array | null | |
| working_conditions | array | null | |
| salary_payment | array | null | |
| is_remote | boolean | null | |
| is_new | boolean | null | |
| is_easy_apply | boolean | null | |
| is_premium | boolean | null | |
| snippet | string | null | |
| description | string | null | |
| description_html | string | null | |
| url | string | null | |
| source_url | string | null | |
| country | string | null | |
| search_query | string | null | |
| search_location | string | null | |
| scraped_at | string | 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 |
|---|---|---|
| Job | One saved job listing. | $0.0025 |
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/jooble-scraper').call({
"queries": [
"software engineer"
],
"country": "us",
"location": "New York",
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
]
}
})
// 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/jooble-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/jooble-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.
Jooble jobs posted in the last 7 days.
Fresh UK job listings posted in the last day.
Canadian jobs posted in the last 3 days.
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.