JustJoin.it Scraper β€” IT Jobs, Salaries & Tech Stacks avatar

JustJoin.it Scraper β€” IT Jobs, Salaries & Tech Stacks

Pricing

from $2.00 / 1,000 results

Go to Apify Store
JustJoin.it Scraper β€” IT Jobs, Salaries & Tech Stacks

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

Haketa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

JustJoin.it Scraper β€” IT Jobs, Salaries & Tech Stacks πŸ‡΅πŸ‡±πŸ’»

Jobs Salaries Tech stack Poland Format No login Pay per result Maintained Support

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

FieldDescription
titleJob title
companyName, companyLogoEmployer name & logo
category, categoryIdIT category (e.g. JavaScript, Python, DevOps)
experienceLeveljunior / mid / senior
workplaceTyperemote / hybrid / office
workingTimefull_time / part_time / freelance
salaryTextHuman-readable salary (e.g. 18 000 - 24 000 PLN / month (b2b net))
minSalaryPln, maxSalaryPlnNormalized 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, longitudeLocation & coordinates
multilocation[]All office locations for multi-city offers
languages[]Required languages with levels (e.g. en Β· b2)
openToHireUkrainians, remoteInterviewUseful hiring flags
publishedAt, lastPublishedAt, expiredAtTimestamps
applyMethod, isSuperOfferApplication method & promoted flag
urlDirect link to the offer
With includeDetails
requiredSkills[], niceToHaveSkills[]Tech stack with proficiency level (1–5)
companySize, companyUrlCompany size & website
applyUrlDirect application link (often the employer's ATS)
descriptionFull job description text

πŸš€ Quick start

  1. Open the actor and (optionally) pick one or more Tech categories.
  2. Add any filters you like β€” city, seniority, working time, or a keyword.
  3. Set Maximum offers.
  4. (Optional) Enable Include full details to also get the tech stack and description.
  5. 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

JavaScriptPythonJava.NETPHP
HTMLRubyScalaC / C++Go
MobileTestingDevOpsAdminUX/UI
PMGameAnalyticsSecurityData
SupportERPArchitectureAI/MLOther

πŸ“€ 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"
}

  • 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 ApifyClient
client = 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.


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.