JustJoin.it Job Scraper
Pricing
from $0.79 / 1,000 results
JustJoin.it Job Scraper
Extract tech job listings from JustJoin.it — Poland's largest IT job board with 10,000+ listings. Returns title, company, PLN/EUR salary, tech stack, experience level, remote policy, contract type (B2B/UoP) and city.
Pricing
from $0.79 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
13
Total users
6
Monthly active users
3 days ago
Last modified
Categories
Share

Extract job listings from justjoin.it 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 Poland
A dedicated Polish tech scraper, not a global tool with a country dropdown. Search, locations and currency (PLN) are tuned for justjoin.it.
📄 Complete job data
Full job title and description, direct listing URL and publish date for every record.
🏢 Company details
Hiring company name plus the profile details the source publishes, such as logo and company page.
📍 Precise location
City, region and country plus latitude/longitude for mapping and radius analysis.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQuery | string | "developer" | Job title or keyword to search for (e.g. 'python', 'react developer'). |
location | string | (empty) | City name to filter by (e.g. 'warszawa', 'krakow', 'wroclaw'). Leave empty for all locations. |
category | string | (empty) | Technology/category slug (e.g. 'javascript', 'python', 'devops', 'data'). |
experienceLevel | string | "senior" | Filter by experience level. Options: junior, mid, senior, c_level. |
contractType | string | "b2b" | Only return jobs with this contract type (client-side filter). Options: b2b, permanent, mandate_contract, internship. |
remote | boolean | false | If true, only return remote jobs. |
publishedSince | integer | (empty) | Only return jobs published within the last N days. Leave empty for all. |
fetchDetails | boolean | false | ON: fetches full job description, salary, company info, and all details. OFF: returns basic listing info only (faster, lower cost). |
detailConcurrency | integer | 3 | Number of detail pages fetched in parallel when fetchDetails is enabled. Max 5. |
maxResults | integer | 100 | Maximum number of job listings to return. Leave empty for all results. |
startUrls | array | (empty) | Custom JustJoin.it job-offer URLs to scrape instead of building from filters. |
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 as published. |
companyName | string | Hiring company name. |
companyLogoUrl | string | Company logo url. |
city | string | City of the position. |
multilocation | array | Multilocation. |
latitude | number | Latitude of the workplace. |
longitude | number | Longitude of the workplace. |
experienceLevel | string | Experience level. |
workplaceType | string | Workplace type. |
workingTime | string | Working time. |
requiredSkills | array | Required skills. |
niceToHaveSkills | array | Nice to have skills. |
salaryFrom | number | Salary from. |
salaryTo | number | Salary to. |
salaryCurrency | string | Currency code of the salary. |
salaryUnit | string | Salary unit. |
salaryGross | boolean | Salary gross. |
contractType | string | e.g. B2B, permanent, mandate |
employmentTypes | array | Employment types. |
applyUrl | string | Direct application link. |
applyMethod | string | Apply method. |
remoteInterview | boolean | Remote interview. |
openToHireUkrainians | boolean | Open to hire ukrainians. |
publishedAt | string | Date the job was published. |
lastPublishedAt | string | Last published at. |
expiredAt | string | Expired at. |
guid | string | Guid. |
slug | string | Slug. |
url | string | Direct link to the listing. |
source | string | Source. |
scrapedAt | string | Timestamp when this record was scraped. |
descriptionHtml | string | Full job description in HTML. |
descriptionText | string | Full job description in plain text. |
descriptionMarkdown | string | Description markdown. |
Example record
{"title": "Senior SAP ABAP Developer","companyName": "zooplus","companyLogoUrl": "https://imgproxy.justjoinit.tech/TnmozQBaDM5K941P1Et_qkSyBetPh7h5hjkrSLUzA2c/h:200/w:200/plain/https://public.rocketjobs.pl/companies/logos/original/1e00111c4fb30a54ec6476150a5d2c31f5a61678.png","city": "Kraków","multilocation": [{"city": "Kraków","street": "Pawia 19","latitude": 50.0714274,"longitude": 19.9452254}],"latitude": 50.0714274,"longitude": 19.9452254,"experienceLevel": "senior","workplaceType": "hybrid","workingTime": "full_time","requiredSkills": ["SAP Fiori","SAP ABAP","ABAP RAP","CDS Views"],"niceToHaveSkills": [],"salaryFrom": 196300,"salaryTo": 294500,"salaryCurrency": "PLN","salaryUnit": "year","salaryGross": true,"contractType": "permanent","employmentTypes": [{"from": 196300,"fromPerUnit": 196300,"to": 294500,"toPerUnit": 294500,"currency": "PLN","currencySource": "original","type": "permanent","unit": "year","gross": true},{"from": 52057.91874403316,"fromPerUnit": 52057.91874403316,"to": 78100.1379017716,"toPerUnit": 78100.1379017716,"currency": "USD","currencySource": "conversion","type": "permanent","unit": "year","gross": true},{"from": 45676.656738644786,"fromPerUnit": 45676.656738644786,"to": 68526.61950856286,"toPerUnit": 68526.61950856286,"currency": "EUR","currencySource": "conversion","type": "permanent","unit": "year","gross": true},{"from": 42155.22054718026,"fromPerUnit": 42155.22054718026,"to": 63243.56826869377,"toPerUnit": 63243.56826869377,"currency": "CHF","currencySource": "conversion","type": "permanent","unit": "year","gross": true}],"applyUrl": null,"applyMethod": "external","remoteInterview": false,"openToHireUkrainians": false,"publishedAt": "2026-07-02T11:04:33.1182491Z","lastPublishedAt": "2026-07-02T11:04:33.1182491Z","expiredAt": "2026-09-30T10:42:16.98Z","guid": "bfc180b5-1bff-4f3c-898d-1d78487e6320","slug": "zooplus-senior-sap-abap-developer-krakow-erp","url": "https://justjoin.it/job-offer/zooplus-senior-sap-abap-developer-krakow-erp","source": "justjoin.it","scrapedAt": "2026-07-02T11:17:41.655Z","descriptionHtml": "<p class=\"ql-header-3\">Company Description</p><p>With over 25 years’ experience, plus the same enormous passion and ambition we had on day-one, we’re trailblazers in the pet e-commerce industry. Our s …","descriptionText": "Company Description\nWith over 25 years’ experience, plus the same enormous passion and ambition we had on day-one, we’re trailblazers in the pet e-commerce industry. Our solutions make over 12 million …","descriptionMarkdown": "Company Description\n\nWith over 25 years’ experience, plus the same enormous passion and ambition we had on day-one, we’re trailblazers in the pet e-commerce industry. Our solutions make over 12 millio …"}
Examples
Search for Java developer roles in Warszawa:
{"searchQuery": "Java developer","location": "Warszawa","maxResults": 100}
Filter by contract type:
{"searchQuery": "Java developer","location": "Warszawa","maxResults": 100,"contractType": "b2b"}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.justjoin.it/"}],"maxResults": 200}
Daily feed (run on a schedule):
{"searchQuery": "Java developer","maxResults": 500}
Schedule this input in the Apify Scheduler (for example daily at 07:00) to keep an always-fresh feed of the newest listings.
💰 Pricing
$0.99 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.10 |
| 1,000 | ~$0.99 |
| 10,000 | ~$9.9 |
| 100,000 | ~$99 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.59 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
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: justjoin.it — Poland 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