Jooble Scraper — 50+ Countries Job Aggregator
Pricing
Pay per usage
Jooble Scraper — 50+ Countries Job Aggregator
Scrape Jooble.org job listings across 50+ countries. Filter by keyword, location, country domain, and recency. No proxy required. Repost detection. $1.50/1,000 results.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
27
Total users
11
Monthly active users
4 days ago
Last modified
Categories
Share
Jooble Scraper

Extract job listings from jooble.org at scale, in a clean, consistent structure ready for analysis, job boards, recruiting tools and market research. No API key required.
Why this scraper?
🎯 Built for 70+ countries
A dedicated global scraper, not a global tool with a country dropdown. Search, locations and currency (USD) are tuned for jooble.org.
📄 Clean job records
Job title, direct listing URL and publish date for every record, in a consistent structure.
💶 Salary data
Salary information parsed from the listing where the employer publishes it, in USD. Missing salaries are returned as null, never guessed.
🏢 Company details
Hiring company name plus the profile details the source publishes, such as logo and company page.
🔁 Repost & change detection
Every record carries isRepost and changeStatus, so daily feeds return genuinely new jobs instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
location | string | (empty) | City, region or country to search in. Example: 'Amsterdam', 'Netherlands', 'Berlin'. |
country | string | (empty) | Country-specific Jooble domain. Leave empty for global (jooble.org). |
remoteOnly | boolean | false | When enabled, return only remote job listings. |
maxResults | integer | 100 | Maximum number of job listings to return. Set to 0 for no limit. |
daysOld | integer | (empty) | Only return jobs posted within the last N days. Leave empty for all results. |
skipReposts | boolean | true | Skip duplicate listings seen in this run (same title + company + location). |
proxyConfiguration | object | {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"]} | Proxy settings. Residential proxy recommended for best results. |
startUrls | array | (empty) | Optional. Specific Jooble search URLs to scrape. Overrides keywords/location/country. |
fetchDetails | boolean | false | Fetch full job details from individual listing pages. |
keywords | string | "software engineer" | Job title or keywords to search for. Example: 'software developer', 'marketing manager'. |
Output schema
Every field below is present on every record. Fields the source does not publish for a given job are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
title | string | Job title |
company | string | Hiring company or recruiter name |
contractType | string | e.g. Full-time, Part-time, Contract |
workSchedule | string | Schedule description |
isRemote | boolean | true for remote or work-from-home roles |
salaryRaw | string | Salary text as displayed |
salaryMin | number | Minimum salary (numeric), or null |
salaryMax | number | Maximum salary (numeric), or null |
salaryCurrency | string | Currency code |
salaryPeriod | string | e.g. Monthly, Yearly, Hourly |
publishDate | string | Date posted |
isNew | boolean | true for listings posted in the last 24 hours |
isPremium | boolean | true for sponsored/featured listings |
isEasyApply | boolean | true when one-click apply is available |
appliesCount | string | Number of applications received (where shown) |
url | string | Direct link to the listing |
isRepost | boolean | true if seen in a previous run |
scrapedAt | string | ISO 8601 scrape timestamp |
Example record
{"title": "Nurse","company": "Brightpath Group","contractType": "FULL_TIME","workSchedule": null,"isRemote": false,"salaryRaw": null,"salaryMin": 45000,"salaryMax": 60000,"salaryCurrency": "USD","salaryPeriod": "year","publishDate": "2026-07-01","isNew": false,"isPremium": false,"isEasyApply": false,"appliesCount": null,"url": "https://www.jooble.org/job/1084213","isRepost": false,"scrapedAt": "2026-07-01"}
Examples
Search for nurse roles in Warsaw:
{"keywords": "nurse","location": "Warsaw","maxResults": 100}
Only jobs from the last 3 days:
{"keywords": "nurse","location": "Warsaw","maxResults": 100,"daysOld": 3}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.jooble.org/"}],"maxResults": 200}
Daily feed (run on a schedule):
{"keywords": "nurse","daysOld": 1,"skipReposts": true,"maxResults": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only jobs posted in the last 24 hours.
💰 Pricing
This actor is currently free to run — you only pay for the Apify platform resources your runs consume. Use the Max results cap in the input to control run size.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Salary is only returned when the employer publishes it — many listings carry
nullsalary fields. - Company details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be removed by the source at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: jooble.org — 70+ countries job listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl