JustJoin.it Scraper avatar

JustJoin.it Scraper

Pricing

from $0.95 / 1,000 results

Go to Apify Store
JustJoin.it Scraper

JustJoin.it Scraper

[πŸ’° $0.95 / 1K] Extract IT jobs from JustJoin.it β€” salaries, tech stack, company, location, and apply links. Search by keyword and city, filter by category, seniority, contract type, and remote/hybrid/office.

Pricing

from $0.95 / 1,000 results

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Pull IT job listings from JustJoin.it at scale β€” disclosed salary ranges, per-skill proficiency levels, company size and logo, geo-coordinates, contract breakdowns, and apply links for every role across the Polish and Central European tech market. Built for tech recruiters, sourcers, salary-benchmarking analysts, and developers job-hunting in the CEE market who need structured salary and skill data without copy-pasting one offer page at a time.

Why This Scraper?

  • Real disclosed salary ranges, multi-currency aware β€” every job that publishes pay returns salaryFrom, salaryTo, and salaryCurrency using the employer's original posted figure (PLN, EUR, USD, GBP), never a converted estimate.
  • Per-skill proficiency levels β€” requiredSkills and niceToHaveSkills each return the skill name plus the seniority level the employer wants (e.g. React: 4, Python: 5), not just a flat tag list.
  • Geo-coordinates on every listing β€” latitude, longitude, city, street, and country code for each role, ready to map or cluster.
  • Polish/CEE contract-type breakdown β€” B2B, Permanent (UoP), Mandate contract, Specific-task contract, and Internship captured per job, with salary attached to each contract type.
  • 25 named tech categories β€” Python, Java, JavaScript, DevOps, Data, AI/ML, Testing, Mobile, Security, PHP, Ruby, Go, Scala, C/C++, .NET, UX/UI, PM, Architecture, ERP, Analytics, Game, HTML, Admin, Support, and Other.
  • 6 seniority levels β€” filter to Intern, Junior, Mid, Senior, Team Leader / Manager, or C-level roles.
  • Remote / Hybrid / Office working-mode filter plus required-languages with proficiency, so you can target fully-remote, English-speaking roles in one pass.
  • Apply link and method captured β€” applyUrl and applyMethod for direct outreach, alongside published and expiry dates.
  • Up to 10,000 results per search with a one-toggle full-description option (HTML + plain text) you can switch off for faster bulk pulls.

Use Cases

Tech Recruitment & Sourcing

  • Build candidate-facing role lists filtered by stack, seniority, and city
  • Surface fully-remote roles open to your candidates' languages
  • Track competitor hiring by company across categories
  • Capture apply links for direct candidate referrals

Salary Benchmarking

  • Compare disclosed B2B vs Permanent pay for the same role
  • Benchmark salary ranges by city, seniority, and tech category
  • Track pay movements over time with repeated newest-first pulls
  • Map salary against required skill levels

Market Research & Talent Analytics

  • Measure demand for specific frameworks and languages across the CEE market
  • Map hiring density by city using per-listing geo-coordinates
  • Quantify remote vs hybrid vs office offerings by category
  • Profile company sizes hiring for a given stack

Competitive Intelligence

  • Monitor a competitor's open roles, stack, and seniority mix
  • Detect new openings the day they go live with newest-first sorting
  • Track which contract types competitors offer in your market

Job Seekers

  • Filter to remote, salary-disclosed roles matching your skills
  • Sort by highest salary to surface top-of-market openings
  • Pull full job descriptions and apply links for shortlisted roles

Getting Started

{
"keywords": "Python",
"maxItems": 50
}

Keyword, city, category, and seniority

{
"keywords": "React",
"city": "Warszawa",
"categories": ["javascript"],
"seniority": ["senior"],
"workingMode": ["remote"],
"withSalaryOnly": true,
"maxItems": 200
}

Start URLs with filters and a result cap

{
"startUrls": [
"https://justjoin.it/job-offers/warszawa/python",
"https://justjoin.it/job-offer/example-senior-data-engineer"
],
"employmentType": ["b2b", "permanent"],
"sortBy": "salary-desc",
"includeDescription": false,
"maxItems": 500
}

Input Reference

ParameterTypeDefaultDescription
keywordsstring"Python"Search term for job titles, skills, or companies (e.g. "React", "DevOps"). Leave empty to browse all jobs.
citystring""City name to filter by (e.g. "Warszawa", "KrakΓ³w", "WrocΕ‚aw", "Berlin"). Also includes nearby jobs within ~30 km of the city. Leave empty for all locations.
startUrlsstring[][]Paste full JustJoin.it search or job-offer URLs to scrape directly. Used in addition to the keyword/city search.

Filters

ParameterTypeDefaultDescription
categoriesselect[][]Tech categories to include: AI/ML, JavaScript, HTML, PHP, Ruby, Python, Java, .NET, Scala, C / C++, Mobile, Testing, DevOps, Admin, UX/UI, Project Manager, Game, Analytics, Security, Data, Go, Support, ERP, Architecture, Other. Leave empty for all.
seniorityselect[][]Experience levels: Intern, Junior, Mid, Senior, Team Leader / Manager, C-level. Leave empty for all.
employmentTypeselect[][]Contract types: B2B, Permanent (UoP), Mandate contract, Internship, Specific-task contract. Leave empty for all.
workingModeselect[][]Work arrangements: Remote, Hybrid, Office. Leave empty for all.
withSalaryOnlybooleanfalseWhen on, only include jobs that publish a salary range.
sortByselectDefault (relevance)Result order: Default (relevance), Newest first, Highest salary first, Lowest salary first.

Output & Limits

ParameterTypeDefaultDescription
includeDescriptionbooleantrueInclude each job's full description text and HTML. Turn off for a faster, lighter run when you only need summary fields.
maxItemsinteger100Maximum number of jobs to collect. Set to 0 for no limit (everything matching your search).

Output

Each job posting is one flat row. Here's a representative result with descriptions enabled:

{
"id": "a1b2c3d4-1234-5678-90ab-cdef12345678",
"slug": "senior-python-engineer-acme-warszawa",
"url": "https://justjoin.it/job-offer/senior-python-engineer-acme-warszawa",
"title": "Senior Python Engineer",
"company": "Acme Tech",
"companyUrl": "https://justjoin.it/companies/acme-tech",
"companySize": "100 - 499",
"companyLogo": "https://justjoin.it/logos/acme.png",
"category": "python",
"experience": "senior",
"salary": "20,000 - 28,000 PLN / month",
"salaryFrom": 20000,
"salaryTo": 28000,
"salaryCurrency": "PLN",
"employmentTypes": [
{ "type": "b2b", "from": 20000, "to": 28000, "currency": "PLN", "currencySource": "original", "unit": "month", "gross": false }
],
"workingMode": "remote",
"workingTime": "full_time",
"city": "Warszawa",
"street": "Krucza 50",
"country": "PL",
"latitude": 52.2297,
"longitude": 21.0122,
"locations": [
{ "city": "Warszawa", "street": "Krucza 50", "latitude": 52.2297, "longitude": 21.0122, "slug": "warszawa" }
],
"requiredSkills": [
{ "name": "Python", "level": 5 },
{ "name": "Django", "level": 4 }
],
"niceToHaveSkills": [
{ "name": "Kubernetes", "level": 3 }
],
"languages": [
{ "code": "en", "level": "B2" }
],
"remoteInterview": true,
"openToHireUkrainians": true,
"promoted": false,
"isSuperOffer": false,
"applyMethod": "apply_external",
"applyUrl": "https://acme-tech.com/careers/senior-python",
"isActive": true,
"datePosted": "2026-05-20T08:00:00Z",
"lastPublishedAt": "2026-05-22T08:00:00Z",
"expiresAt": "2026-06-21T08:00:00Z",
"descriptionHtml": "<p>We are looking for a Senior Python Engineer...</p>",
"descriptionText": "We are looking for a Senior Python Engineer...",
"source": "justjoin.it"
}

Core Fields

FieldTypeDescription
idstringUnique job offer identifier
slugstringURL slug for the offer
urlstringPublic JustJoin.it listing URL
titlestringJob title
categorystringTech category (e.g. python, devops)
experiencestringSeniority level (intern, junior, mid, senior, manager, c_level)
workingModestringremote, hybrid, or office
workingTimestringFull-time or part-time
sourcestringSource marker ("justjoin.it")

Company

FieldTypeDescription
companystringEmployer / company name
companyUrlstringCompany profile URL
companySizestringCompany size band (e.g. "100 - 499")
companyLogostringCompany logo URL

Salary

FieldTypeDescription
salarystringHuman-readable salary range summary
salaryFromnumberLower bound of the disclosed salary
salaryTonumberUpper bound of the disclosed salary
salaryCurrencystringSalary currency (PLN, EUR, USD, GBP)
employmentTypesobject[]Contract types with per-type salary, currency, unit, and gross flag. May include an EUR-converted mirror of a row alongside the employer's original figure β€” the original always has currencySource: "original".

Location

FieldTypeDescription
citystringPrimary city
streetstringStreet address
countrystringCountry code (e.g. PL)
latitudenumberGeo latitude
longitudenumberGeo longitude
locationsobject[]All listed work locations with city, street, and coordinates

Skills & Languages

FieldTypeDescription
requiredSkillsobject[]Must-have skills, each with name and proficiency level
niceToHaveSkillsobject[]Nice-to-have skills, each with name and proficiency level
languagesobject[]Required languages, each with code and proficiency level
remoteInterviewbooleanWhether a remote interview is available
openToHireUkrainiansbooleanWhether the employer is open to hiring Ukrainians

Dates & Apply

FieldTypeDescription
applyMethodstringHow to apply (e.g. external link, internal)
applyUrlstringExternal application URL
isActivebooleanWhether the listing is still open (from the full job detail)
datePostedstringFirst publication date
lastPublishedAtstringMost recent republication date
expiresAtstringListing expiry date
promotedbooleanPromoted listing flag
isSuperOfferbooleanFeatured "super offer" flag

Description

Populated when includeDescription is on.

FieldTypeDescription
descriptionHtmlstringFull job description in HTML
descriptionTextstringFull job description in plain text

Tips for Best Results

  • Start small β€” set maxItems to 25-50 on your first run to confirm the data matches your needs, then scale up.
  • Use withSalaryOnly for clean benchmarking β€” toggling it on removes "salary undisclosed" rows so every result has a real salaryFrom/salaryTo to compare.
  • Turn off includeDescription for fast bulk pulls β€” when you only need salary, skills, and company fields, skipping descriptions makes large runs noticeably quicker.
  • Sort by Highest salary first β€” set sortBy to "Highest salary first" to surface top-of-market roles at the front of your dataset.
  • Read employmentTypes for true compensation β€” a single job often lists different pay for B2B vs Permanent; the per-type array shows each figure with its currency, so you compare like-for-like. The array may also include an EUR-converted mirror of a row; filter to entries where currencySource is "original" to keep only the employer's posted figures.
  • Combine inputs in one run β€” mix a keyword, a city, several categories, and start URLs together; results are de-duplicated across all entry points.
  • Use seniority plus a category for tight talent maps β€” e.g. Senior + Data + Remote gives a focused, mappable slice using each listing's coordinates.

Pricing

From $0.95 per 1,000 results β€” competitively priced for the CEE tech-hiring market. No compute charges β€” you only pay per result returned. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

ResultsNo discountBronzeSilverGold
100$0.11$0.11$0.10$0.10
1,000$1.10$1.05$1.00$0.95
10,000$11.00$10.50$10.00$9.50
100,000$110.00$105.00$100.00$95.00

A "result" is one job posting row in the output dataset. There are no separate compute or per-event charges β€” you pay only for the jobs returned.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n β€” Workflow automation
  • Google Sheets β€” Direct spreadsheet export
  • Slack / Email β€” Notifications on new results
  • Webhooks β€” Trigger custom integrations on run completion
  • Apify API β€” Full programmatic access

This actor is designed for legitimate recruitment research, salary benchmarking, and labor-market analysis. Users are responsible for complying with applicable laws and JustJoin.it's Terms of Service. Do not use extracted data for spam, harassment, or any unlawful purpose, and handle any personal data in line with applicable privacy regulations such as GDPR.