Just Join IT Scraper avatar

Just Join IT Scraper

Pricing

$1.00 / 1,000 jobs

Go to Apify Store
Just Join IT Scraper

Just Join IT Scraper

Fast IT job scraper for JustJoin.it. Extract salaries, tech stacks, experience levels, remote options. Supports keyword, location, category filters. Up to 100 offers per request.

Pricing

$1.00 / 1,000 jobs

Rating

0.0

(0)

Developer

Paweł

Paweł

Maintained by Community

Actor stats

1

Bookmarked

51

Total users

17

Monthly active users

12 days ago

Last modified

Share

Fast and efficient Apify Actor for scraping IT job listings from JustJoin.it -- Poland's and Central Europe's leading IT job board.

Features

  • Scrapes every matching offer -- automatically pages through the full result set (hundreds or thousands of offers, not just the first page)
  • Comprehensive job data: title, company, salary (min/max/currency/type), location, experience level, required skills, workplace type, and more
  • All salary information broken down into structured fields (min, max, currency, contract type, gross/net)
  • Multiple employment type salary variants per offer (B2B, permanent, converted currencies)
  • Filter by: keyword, location, technology category, experience level, employment type, workplace type, salary availability
  • Optional full detail extraction: visits each job page for description, skill levels, languages, company size
  • Built-in deduplication, session rotation, and proxy support
  • Three dataset views: Overview, Detailed, and Salaries

How It Works

  1. You set filters (keyword, location, category, experience, salary, etc.) or paste JustJoin.it URLs
  2. The scraper pages through every matching offer and returns clean, structured data -- no browser, fast and lightweight
  3. Optionally enriches each offer with the full description, skill levels, languages, and company size

Input Parameters

ParameterTypeDefaultDescription
startUrlsArray[]Direct JustJoin.it URLs to scrape (overrides filters)
keywordString-Search keyword (e.g., "React", "DevOps")
locationStringall-locationsCity name (e.g., "warszawa", "krakow")
categoryString-Technology category (javascript, python, devops, etc.)
experienceLevelArray[]Filter: junior, mid, senior, lead
employmentTypeArray[]Filter: b2b, permanent, mandate_contract
workplaceTypeArray[]Filter: remote, hybrid, office
withSalaryBooleanfalseOnly return offers with salary disclosed
sortByStringpublishedSort by: published, salary
maxItemsInteger100Max offers to scrape (0 = unlimited)
extractFullDetailsBooleanfalseVisit each job page for full description
maxConcurrencyInteger10Max parallel requests
maxRequestsPerMinuteInteger300Rate limiting
proxyConfigurationObject-Proxy settings (recommended for extractFullDetails)

Input Example

{
"keyword": "React",
"location": "warszawa",
"category": "javascript",
"experienceLevel": ["senior", "mid"],
"employmentType": ["b2b"],
"workplaceType": ["remote", "hybrid"],
"withSalary": true,
"maxItems": 50,
"extractFullDetails": false
}

Using Start URLs

You can also provide pre-built URLs directly:

{
"startUrls": [
"https://justjoin.it/job-offers/all-locations/python?experience-level=senior&with-salary=yes",
"https://justjoin.it/job-offers/warszawa/javascript?workplace-type=remote"
],
"maxItems": 200
}

Output

Default Mode (extractFullDetails: false)

Each record contains:

FieldTypeDescription
titleStringJob title
companyNameStringCompany name
companyLogoUrlStringCompany logo image URL
cityStringPrimary city
streetStringStreet address
locationsArrayAll locations [{city, street}]
salaryStringHuman-readable salary (e.g., "24,000 - 33,000 PLN/month (net, b2b)")
salaryMinNumberMinimum salary (original currency)
salaryMaxNumberMaximum salary (original currency)
salaryCurrencyStringSalary currency (PLN, USD, EUR, etc.)
salaryTypeStringContract type for this salary (b2b, permanent, etc.)
salaryUnitStringPay unit (month, hour)
salaryGrossBooleanWhether salary is gross (true) or net (false)
allEmploymentTypesArrayAll salary variants [{from, to, currency, type, unit, gross}]
experienceLevelStringExperience level (junior, mid, senior, lead)
workplaceTypeStringWorkplace type (remote, hybrid, office)
workingTimeStringWorking time (full_time, part_time)
requiredSkillsArrayRequired technology skills
niceToHaveSkillsArrayNice-to-have skills
remoteInterviewBooleanRemote interview available
isPromotedBooleanPromoted/featured listing
isSuperOfferBooleanSuper offer badge
publishedAtStringISO 8601 publish date
lastPublishedAtStringISO 8601 last republish date
expiredAtStringISO 8601 expiration date
slugStringURL slug identifier
jobUrlStringDirect URL to job offer
guidStringUnique offer identifier
scrapedAtStringISO 8601 scrape timestamp

Full Details Mode (extractFullDetails: true)

Additional fields when visiting each job page:

FieldTypeDescription
descriptionStringFull job description text
companyWebsiteStringCompany website URL
countryStringCountry code (e.g., "PL")
regionStringRegion/state
validThroughStringOffer validity date
requiredSkillsDetailedArraySkills with proficiency levels [{name, level}]
niceToHaveSkillsDetailedArrayNice-to-have skills with levels
languagesArrayRequired languages [{code, level}]
companySizeStringCompany size category
countryCodeStringISO country code

Example Output (Default Mode)

{
"title": "Fullstack Developer (Angular + Python)",
"companyName": "Code and Pepper",
"companyLogoUrl": "https://imgproxy.justjoinit.tech/.../logo.png",
"city": "Gdansk",
"street": "Aleja Grunwaldzka",
"locations": [
{ "city": "Gdansk", "street": "Aleja Grunwaldzka" },
{ "city": "Suwalki", "street": null }
],
"salary": "24,000 - 33,000 PLN/month (net, b2b)",
"salaryMin": 24000,
"salaryMax": 33000,
"salaryCurrency": "PLN",
"salaryType": "b2b",
"salaryUnit": "month",
"salaryGross": false,
"allEmploymentTypes": [
{
"from": 24000,
"to": 33000,
"currency": "PLN",
"type": "b2b",
"unit": "month",
"gross": false,
"currencySource": "original"
},
{
"from": 18000,
"to": 27000,
"currency": "PLN",
"type": "permanent",
"unit": "month",
"gross": true,
"currencySource": "original"
},
{
"from": 6402,
"to": 8803,
"currency": "USD",
"type": "b2b",
"unit": "month",
"gross": false,
"currencySource": "conversion"
}
],
"experienceLevel": "senior",
"workplaceType": "hybrid",
"workingTime": "full_time",
"requiredSkills": ["Angular", "Python", "TypeScript", "REST API"],
"niceToHaveSkills": [],
"remoteInterview": true,
"isPromoted": false,
"isSuperOffer": false,
"publishedAt": "2026-03-15T08:00:00.000Z",
"lastPublishedAt": "2026-03-15T08:00:00.000Z",
"expiredAt": "2026-04-15T21:59:59.999Z",
"slug": "code-and-pepper-fullstack-developer-angular-python--gdansk-javascript",
"jobUrl": "https://justjoin.it/job-offer/code-and-pepper-fullstack-developer-angular-python--gdansk-javascript",
"guid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"scrapedAt": "2026-03-16T12:00:00.000Z"
}

Example Output (Full Details Mode)

Includes all fields above plus:

{
"description": "We are looking for a Senior Fullstack Developer with strong Angular and Python skills to join our product team...",
"companyWebsite": "https://codeandpepper.com",
"country": "PL",
"region": "Pomorskie",
"validThrough": "2026-04-15T21:59:59.999Z",
"requiredSkillsDetailed": [
{ "name": "Angular", "level": 4 },
{ "name": "Python", "level": 4 },
{ "name": "TypeScript", "level": 3 },
{ "name": "REST API", "level": 3 }
],
"languages": [{ "code": "en", "level": "B2" }],
"countryCode": "PL"
}

Available Technology Categories

SlugName
javascriptJavaScript
htmlHTML
phpPHP
rubyRuby
pythonPython
javaJava
net.NET
scalaScala
cC
mobileMobile
testingTesting/QA
devopsDevOps
adminAdmin/IT
uxUX/UI
pmProject Management
gameGame Dev
analyticsAnalytics
securitySecurity
dataData
goGo
supportSupport
erpERP
architectureArchitecture
aiAI/ML

Performance and Cost

Default Mode (extractFullDetails: false)

  • Speed: Very fast -- fetches 100 offers per page and pages through the whole result set
  • Cost: Minimal -- lightweight structured data, no browser
  • Proxy: Optional, works without proxies in most cases
  • Recommended for: Most use cases, salary analysis, market research

Full Details Mode (extractFullDetails: true)

  • Speed: Slower -- fetches one extra page per offer for the full description
  • Cost: Higher -- one extra fetch per offer on top of the listing pages
  • Proxy: Recommended to avoid rate limiting
  • Recommended for: When you need full job descriptions, skill proficiency levels, or language requirements

URL Filter Reference

JustJoin.it URL structure:

https://justjoin.it/job-offers/{location}/{category}?{filters}

Query Parameters

ParameterValuesExample
experience-leveljunior, mid, senior, lead?experience-level=senior,mid
employment-typeb2b, permanent, mandate_contract?employment-type=b2b
workplace-typeremote, hybrid, office?workplace-type=remote,hybrid
with-salaryyes?with-salary=yes
keywordany string?keyword=React
orderByDESC?orderBy=DESC
sortBypublished, salary?sortBy=published

Example URLs

# All remote senior Python jobs with salary
https://justjoin.it/job-offers/all-locations/python?experience-level=senior&workplace-type=remote&with-salary=yes
# B2B JavaScript jobs in Warsaw
https://justjoin.it/job-offers/warszawa/javascript?employment-type=b2b
# All DevOps jobs sorted by salary
https://justjoin.it/job-offers/all-locations/devops?with-salary=yes&sortBy=salary&orderBy=DESC