Jooble Jobs Scraper avatar

Jooble Jobs Scraper

Pricing

from $2.52 / 1,000 results

Go to Apify Store
Jooble Jobs Scraper

Jooble Jobs Scraper

Scrape Jooble job listings by keyword, country, and location with structured roles, salaries, company details, and original posting URLs.

Pricing

from $2.52 / 1,000 results

Rating

0.0

(0)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

0

Bookmarked

17

Total users

7

Monthly active users

10 hours ago

Last modified

Share

Jooble Jobs Scraper - Global Job Listings API for 64 Markets

Jooble Jobs Scraper exports up to 10,000 structured Jooble job listings per run across 64 supported markets. Search by keyword and country, optionally narrow by city or region, and receive a consistent 41-field dataset covering job details, salary, employer information, application signals, and public contacts when available.

TL;DR: Enter a keyword, choose a country, set the result limit, and optionally add a location. The Actor searches public Jooble pages without requesting Jooble credentials and stores normalized results in the default dataset.

Public Store snapshot: 17 total users and no public rating on July 21, 2026. The deployed Store content may represent an older release; current local schema and runtime evidence control functional claims here.

Jooble 64 Markets 41 Fields

Run a one-result test ยท View API options

Set max_results to 1 for the first run. One published FREE-tier result costs $0.01280: $0.01000 for Actor start plus $0.00280 for the result.


Why Choose This API

Jooble aggregation data with traceable listing context

๐Ÿ”Ž Aggregated vacancy discovery

Jooble brings together vacancies published by employers and other job sources. Each result keeps the Jooble listing URL, while an original or employer URL remains a separate nullable field so downstream users can distinguish the discovery page from a direct destination.

๐ŸŒ 64 localized search markets

The country selector targets one supported Jooble market at a time. Add a city or region only when local precision matters; leaving it blank requests the broader selected market.

๐Ÿ“… Listing lifecycle signals

Records can include the published date and valid_through when Jooble exposes an expiration value. These are source-derived fields for prioritization, not a promise that every vacancy is still open.

๐Ÿ  Remote and application clues

Remote wording, source-provided remote flags, easy-apply status, and public phone details can appear in output. Their availability varies by listing, and none of them is invented to fill the shared schema.

๐Ÿ’ฐ Mixed-format salary handling

When a Jooble page discloses pay, the dataset separates minimum, maximum, currency, and interval where possible. The optional currency input only converts collected amounts after discovery and does not alter the Jooble search.


Quick Start Guide

Review a Jooble market in 3 steps

Open Actor Input

Enter a role such as Data Engineer, choose a supported Jooble market such as Uzbekistan, and add Tashkent only for a city-focused result set.

Step 2: Run the Actor

Use max_results: 1 for the first run and inspect the listing URL before scaling. At the FREE tier and the minimum single start event, one returned result is approximately $0.01280.

Step 3: Use the dataset

Review source attribution, dates, application signals, and nullable fields in the default dataset. Then export JSON, CSV, Excel, XML, RSS, or another Apify-supported format.


Input Parameters

Configuration fields

ParameterTypeRequiredDescriptionExample
keywordstringYesJob title, skill, or company nameData Engineer
countryselectYesOne of 64 supported Jooble marketsUzbekistan
max_resultsintegerYesMaximum jobs to return, from 1 to 10,0001
locationstringNoCity or region; country-level search is used when omittedTashkent
currencyselectNoTarget currency for converting available salary valuesUSD

Search behavior

  • country selects one of 64 localized Jooble search markets for the run.
  • location is optional; an empty value remains market-wide, and a country name is not reused as a city.
  • keyword is the only query text and can represent a role, skill, or employer.
  • currency applies only to salary amounts that were found; it neither filters vacancies nor guarantees pay data.
  • Remote-only, distance, posting-date, and job-type controls are intentionally absent from the request schema even though related signals may appear in output.

Example input

{
"keyword": "Data Engineer",
"country": "Uzbekistan",
"max_results": 1,
"location": "Tashkent",
"currency": "USD"
}

Output Data Schema

Complete 41-field job record

Every dataset item uses the fields below. Nullable fields make missing source data explicit.

Run and source fields

FieldTypeDescription
processorstring or nullApify Actor URL that processed the record
processed_atstring or nullUTC processing timestamp
platformstring or nullSource platform, normally Jooble
platform_urlstring or nullJooble job listing URL
official_urlstring or nullEmployer's original listing URL when available

Core job fields

FieldTypeDescription
titlestring or nullJob title
posted_datestring or nullPosting date or relative age when available
valid_throughstring or nullClosing or expiration date when available
locationobject or nullStructured location with raw and standardized values
applicant_countinteger or nullApplicant count when available
is_remoteboolean or nullRemote-work signal identified in the listing
descriptionstring or nullJob description and requirements

Classification fields

FieldTypeDescription
job_typestring or nullEmployment type parsed from the listing
job_levelstring or nullCareer or seniority level when available
job_functionstring or nullDepartment or job function
listing_typestring or nullListing classification when available
skillsstring or nullSkills and attributes identified for the role
work_from_homestring or nullRemote or hybrid arrangement when identified
vacancy_countinteger or nullNumber of openings when available
experience_rangestring or nullExperience requirement when available
easy_applyboolean or nullWhether direct application is available

Salary fields

FieldTypeDescription
salary_periodstring or nullPay period, such as monthly or yearly
salary_minimumnumber or nullMinimum disclosed salary
salary_maximumnumber or nullMaximum disclosed salary
salary_currencystring or nullISO currency code

Employer fields

FieldTypeDescription
company_namestring or nullHiring company name
company_typestring or nullCompany ownership type when available
company_foundedinteger or nullFounding year when available
company_industrystring or nullIndustry or sector
company_urlstring or nullJooble or employer profile URL
company_websitestring or nullOfficial company website
company_logostring or nullCompany logo URL
company_addressesstring or nullCompany address text
company_revenuestring or nullRevenue range when available
company_descriptionstring or nullCompany overview
company_ratingnumber or nullCompany rating when available
employee_countstring or nullEmployee range when available
review_countinteger or nullReview count when available

Public contact fields

FieldTypeDescription
emailsarray or nullPublic company or hiring emails when discoverable
phonesarray or nullPublic company or hiring phone numbers when discoverable
social_linksobject or nullPublic company social URLs grouped by platform

Representative output

This abbreviated record follows the Tashkent Data Engineer scenario. It is illustrative, and unavailable source values remain null.

{
"processor": "https://apify.com/agentx/jooble-jobs-scraper",
"processed_at": "2026-07-21T12:00:00.000Z",
"platform": "Jooble",
"platform_url": "https://uz.jooble.org/jdp/example-id",
"official_url": null,
"title": "Data Engineer",
"posted_date": "1 day ago",
"location": {
"raw": "Tashkent, Uzbekistan",
"locality": "Tashkent",
"country": "Uzbekistan",
"country_code": "UZ"
},
"company_name": "Example Technology Group",
"salary_currency": "USD"
}

Integration Examples & Options

The verified Actor ID is 8GyhemcELZ9fi55a3.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("8GyhemcELZ9fi55a3").call(
run_input={
"keyword": "Data Engineer",
"country": "Uzbekistan",
"max_results": 1,
}
)
items = client.dataset(run["defaultDatasetId"]).list_items().items

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('8GyhemcELZ9fi55a3').call({
keyword: 'Data Engineer',
country: 'Uzbekistan',
max_results: 1,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Direct API request

curl -X POST "https://api.apify.com/v2/acts/8GyhemcELZ9fi55a3/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keyword":"Data Engineer","country":"Uzbekistan","max_results":1}'

Make and n8n

Use the Apify integration in Make or n8n, select Actor ID 8GyhemcELZ9fi55a3, pass the same input object, wait for the run to finish, and read the default dataset items.

  • Open the Actor's API tab for generated requests in other supported languages.
  • Connect completed runs to webhooks or another Apify integration.
  • Read the default dataset directly or export it in an Apify-supported format.

JSON-LD Metadata

{
"@context": "https://schema.org",
"@graph": [
{
"@type": "SoftwareApplication",
"@id": "https://apify.com/agentx/jooble-jobs-scraper#software",
"name": "Jooble Jobs Scraper",
"description": "Scrape Jooble job listings across 64 markets and export 41 structured job, salary, employer, application, and public contact fields when available.",
"applicationCategory": "BusinessApplication",
"applicationSubCategory": "Job Scraping API",
"operatingSystem": "Web, Cloud",
"url": "https://apify.com/agentx/jooble-jobs-scraper",
"dateModified": "2026-07-21",
"featureList": [
"Searches 64 supported Jooble markets",
"Returns a consistent 41-field dataset",
"Supports optional location and post-collection salary-currency controls",
"Exports results through Apify datasets and integrations"
],
"author": { "@id": "https://apify.com/agentx#organization" },
"publisher": { "@id": "https://apify.com#organization" }
},
{
"@type": "Organization",
"@id": "https://apify.com/agentx#organization",
"name": "AgentX",
"url": "https://apify.com/agentx",
"sameAs": ["https://apify.com/agentx", "https://t.me/AiAgentApi"]
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How many Jooble markets can I select?",
"acceptedAnswer": { "@type": "Answer", "text": "The input offers 64 supported Jooble markets." }
},
{
"@type": "Question",
"name": "Can I filter by remote work, date, distance, or job type?",
"acceptedAnswer": { "@type": "Answer", "text": "No. Those values may appear in output when a listing provides them, but they are not available as search controls." }
},
{
"@type": "Question",
"name": "What happens when location is empty?",
"acceptedAnswer": { "@type": "Answer", "text": "The Actor performs a country-level search and does not invent a city or region." }
},
{
"@type": "Question",
"name": "How much does 1,000 results cost?",
"acceptedAnswer": { "@type": "Answer", "text": "At the FREE tier, 1,000 results cost $2.80 plus the Actor start event. At GOLD, PLATINUM, or DIAMOND, 1,000 results cost $2.52 plus the Actor start event." }
}
]
},
{
"@type": "HowTo",
"name": "How to export Jooble jobs with Jooble Jobs Scraper",
"step": [
{ "@type": "HowToStep", "position": 1, "name": "Configure the search", "text": "Enter a keyword, choose a country, set the maximum results, and optionally provide a location." },
{ "@type": "HowToStep", "position": 2, "name": "Run the Actor", "text": "Click Start. Leave Location empty for a country-level search or provide a city or region." },
{ "@type": "HowToStep", "position": 3, "name": "Use the dataset", "text": "Preview or export the default dataset, or connect the completed run to an Apify integration." }
]
},
{
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Apify", "item": "https://apify.com" },
{ "@type": "ListItem", "position": 2, "name": "AgentX", "item": "https://apify.com/agentx" },
{ "@type": "ListItem", "position": 3, "name": "Jooble Jobs Scraper", "item": "https://apify.com/agentx/jooble-jobs-scraper" }
]
}
]
}

Pricing & Cost Calculator

Pay-per-event pricing

Event or tierPriceBilling unit
Actor start$0.01Run start event; the count depends on Actor memory, with a minimum of one
FREE result$0.00280One default dataset result
BRONZE result$0.00271One default dataset result
SILVER result$0.00261One default dataset result
GOLD result$0.00252One default dataset result
PLATINUM result$0.00252One default dataset result
DIAMOND result$0.00252One default dataset result

Example costs at the default memory setting

PlanResultsResult costActor startEstimated total
FREE500$1.40$0.01$1.41
FREE1,000$2.80$0.01$2.81
FREE5,000$14.00$0.01$14.01
GOLD or higher1,000$2.52$0.01$2.53

Actual cost depends on the number of results produced, the user's plan, and the number of Actor start events charged for the selected memory.


Use Cases & Applications

Aggregator coverage and source triage

  • Discover which employers and publishing sources appear for a role in a selected Jooble market.
  • Separate the Jooble discovery URL from an original application destination when both are available.
  • Build a review queue that checks source attribution before a vacancy is republished or contacted.

Vacancy lifecycle and application research

  • Prioritize listings that expose both a posting date and an expiration value.
  • Compare easy-apply, direct-link, and source-page availability without assuming every item offers the same path.
  • Identify remote wording or public recruiter contact signals for manual verification.

Salary and market monitoring

  • Compare disclosed pay bands while retaining nulls for listings without salary information.
  • Schedule the same keyword in selected markets to observe changes in aggregated vacancy supply.
  • Deliver normalized Jooble records to a dashboard, database, webhook, or internal job feed.

FAQ

Is Jooble always the original job publisher?

No. Jooble is a vacancy discovery and aggregation surface. Use platform_url for the Jooble page and check official_url when a reliable direct destination is available.

Can I request only remote or recently posted jobs?

No. The current input does not send remote, date, distance, or job-type filters. Related attributes can still appear in output when the listing provides enough evidence.

What does valid_through prove?

It records a source-provided expiration value when available. It does not independently guarantee that the employer is still accepting applications, so production workflows should recheck the source URL.

Why can salary or company fields be null?

Aggregated listings differ in detail. The Actor preserves disclosed values and leaves unavailable compensation or employer attributes null rather than estimating them.

Are returned phones and emails candidate contact data?

No. Those fields are reserved for public company or hiring-contact signals discovered from public pages and remain null when no reliable value is available.

How much does 1,000 results cost?

At the FREE tier, 1,000 results cost $2.80 plus the Actor start event. At GOLD, PLATINUM, or DIAMOND, 1,000 results cost $2.52 plus the Actor start event.


Trust & Data Responsibility

  • Verified inputs: every public search field is supported by the current Actor behavior.
  • Transparent billing: the Actor start event and every plan's result price are listed above.
  • Explicit nullability: missing source values are not presented as verified facts.
  • No Jooble credentials requested: the input schema does not ask for a username, password, cookie, or token.

Jooble Jobs Scraper is intended for lawful collection and analysis of publicly accessible job-listing data. You are responsible for reviewing Jooble's terms, applicable privacy and database laws, employment-data rules, and the permitted use of contact information in each jurisdiction. This documentation is not legal advice.


Enrich Your Workflow

Support & Community

Last Updated: 2026-07-21. Current local schemas, metadata, pricing, and read-only runtime behavior were verified separately from older deployed Store content.