JustJoin.it Scraper β IT Jobs, Salaries & Tech Stacks
Pricing
from $2.00 / 1,000 results
JustJoin.it Scraper β IT Jobs, Salaries & Tech Stacks
Scrape IT & tech jobs from JustJoin.it, Poland's #1 developer job board. Export titles, transparent salaries in PLN/EUR/USD/GBP, required tech stack with skill levels, seniority, work model, city, coordinates & company data. Filter by 25 categories, city & experience. JSON, CSV, Excel.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
JustJoin.it Scraper β IT Jobs, Salaries & Tech Stacks π΅π±π»
Turn JustJoin.it β Poland's #1 IT & tech job board β into clean, structured data. Get transparent salary ranges in four currencies, the exact required tech stack with proficiency levels, seniority, work model, location, coordinates and company details for every offer. Perfect for recruiters, market-research, salary benchmarking, dev-tool lead generation and job-aggregators.
No account, cookies or manual setup needed. Pick a category (or paste a search URL), press Start, and export to JSON, CSV, Excel, or push straight into your app via API.
β¨ Why this scraper
- πΈ Real salary data, four currencies β most job scrapers return empty salary fields. This one gives you the fromβto range in PLN, EUR, USD, GBP and CHF, plus contract type (B2B / permanent), period (month / hour) and gross/net flag.
- π§© Full tech stack, with levels β optional detail mode returns required and nice-to-have skills, each with a 1β5 proficiency level (e.g.
React Β· 4/5,AWS Β· 3/5). Ideal for demand analysis and skill-gap research. - π― Precise filtering β filter by any of 25 IT categories, seniority (Junior / Mid / Senior), working time, city, or a free-text keyword.
- π Location + geo β city, street, latitude & longitude for every posting (including multi-location offers).
- π’ Company insight β company name, logo, size, website and the direct apply URL.
- β‘ Fast & reliable β pure data extraction, no browser overhead. Deduplicated automatically (0 duplicates).
- π§Ύ Structured & clean β flat, predictable JSON with stable columns, ready for spreadsheets, BI tools and databases.
π¦ What you get per offer
| Field | Description |
|---|---|
title | Job title |
companyName, companyLogo | Employer name & logo |
category, categoryId | IT category (e.g. JavaScript, Python, DevOps) |
experienceLevel | junior / mid / senior |
workplaceType | remote / hybrid / office |
workingTime | full_time / part_time / freelance |
salaryText | Human-readable salary (e.g. 18 000 - 24 000 PLN / month (b2b net)) |
minSalaryPln, maxSalaryPln | Normalized salary range in PLN (great for sorting) |
employmentTypes[] | Full salary breakdown: type, unit, gross, and from/to in PLN, EUR, USD, GBP, CHF |
city, street, latitude, longitude | Location & coordinates |
multilocation[] | All office locations for multi-city offers |
languages[] | Required languages with levels (e.g. en Β· b2) |
openToHireUkrainians, remoteInterview | Useful hiring flags |
publishedAt, lastPublishedAt, expiredAt | Timestamps |
applyMethod, isSuperOffer | Application method & promoted flag |
url | Direct link to the offer |
With includeDetails | |
requiredSkills[], niceToHaveSkills[] | Tech stack with proficiency level (1β5) |
companySize, companyUrl | Company size & website |
applyUrl | Direct application link (often the employer's ATS) |
description | Full job description text |
π Quick start
- Open the actor and (optionally) pick one or more Tech categories.
- Add any filters you like β city, seniority, working time, or a keyword.
- Set Maximum offers.
- (Optional) Enable Include full details to also get the tech stack and description.
- Click Start. Export from the Storage tab or fetch via API.
Example input
{"categories": ["javascript", "python"],"city": "Warszawa","experienceLevels": ["senior"],"workingTimes": ["full_time"],"sortBy": "salary","includeDetails": true,"maxItems": 500}
Scrape everything (all categories, newest first)
{"categories": [],"sortBy": "published","maxItems": 1000}
Paste a search URL instead
{"startUrls": [{ "url": "https://justjoin.it/job-offers/all-locations/python" }],"maxItems": 300}
ποΈ Categories you can filter by
| JavaScript | Python | Java | .NET | PHP |
| HTML | Ruby | Scala | C / C++ | Go |
| Mobile | Testing | DevOps | Admin | UX/UI |
| PM | Game | Analytics | Security | Data |
| Support | ERP | Architecture | AI/ML | Other |
π€ Example output
{"id": "3b16c83f-3aac-467b-a300-cdb3e89c20d0","url": "https://justjoin.it/job-offer/example-senior-frontend-warszawa","title": "Senior Frontend Developer","companyName": "Acme Software","category": "JavaScript","experienceLevel": "senior","workplaceType": "hybrid","workingTime": "full_time","salaryText": "18 000 - 24 000 PLN / month (b2b net)","minSalaryPln": 18000,"maxSalaryPln": 24000,"employmentTypes": [{"type": "b2b", "unit": "month", "gross": false, "currency": "pln","from": 18000, "to": 24000,"fromEur": 4180, "toEur": 5570,"fromUsd": 4520, "toUsd": 6030}],"city": "Warszawa","latitude": "52.2328","longitude": "20.9985","languages": [{ "code": "en", "level": "b2" }],"requiredSkills": [{ "name": "React", "level": 4 },{ "name": "TypeScript", "level": 4 },{ "name": "GraphQL", "level": 3 }],"publishedAt": "2026-08-12T11:19:42.271Z"}
π‘ Popular use cases
- Recruitment & sourcing β build a live feed of open IT roles, filtered by stack and seniority.
- Salary benchmarking β compare compensation by role, city, seniority and contract type across four currencies.
- Tech-stack / demand analytics β measure which frameworks and tools employers ask for, and at what proficiency.
- Dev-tool & B2B lead generation β identify companies actively hiring for a given technology.
- Job boards & aggregators β keep your listings fresh with structured, deduplicated data.
- Relocation & remote-work research β filter remote-friendly and Ukraine-friendly roles.
π Run via API
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("YOUR_ACTOR_ID").call(run_input={"categories": ["python", "data"],"experienceLevels": ["senior"],"sortBy": "salary","maxItems": 500,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], "β", item.get("salaryText"))
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('YOUR_ACTOR_ID').call({categories: ['javascript'],city: 'KrakΓ³w',maxItems: 300,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
π§Ύ Output formats
Every run can be exported as JSON, CSV, Excel, HTML or an RSS feed, or accessed programmatically through the Apify API. Data is stored in the run's dataset and never expires until you delete it.
β FAQ
Do I need an account or login for JustJoin.it? No. The actor works out of the box β just set your filters and run it.
Are salaries always included?
Salary is returned whenever the employer publishes it. When present you get the full range in five currencies. The hasSalary flag tells you which offers disclose pay.
How do I get the tech stack for each job?
Enable Include full details. You'll then get requiredSkills and niceToHaveSkills, each with a proficiency level, plus the full description.
Can I scrape only remote jobs?
Yes β filter by category/city as needed and use the workplaceType field (remote / hybrid / office) to post-process, or add a keyword.
How many offers can I collect?
As many as you want β set maxItems. The board holds thousands of active offers at any time.
Is it fast? Yes. Listing mode is very fast; enabling full details adds one request per offer, so it's slower but richer.
βοΈ Legal & responsible use
This actor collects publicly available job-offer information for legitimate purposes such as recruitment, market research and analytics. It does not access private, gated or personal data, and it is not affiliated with, endorsed by, or connected to JustJoin.it or its operators β all product and company names are trademarks of their respective owners.
You are responsible for how you use the collected data. Use it in compliance with applicable laws (including the GDPR), the target website's Terms of Service, and any relevant data-protection regulations. Respect rate limits and use the data ethically.
π¬ Support & feedback
Found a bug, need an extra field or a new filter? Open an issue or drop a message β feature requests are welcome and the actor is actively maintained.