NoFluffJobs Scraper — IT Jobs & Salary Data API avatar

NoFluffJobs Scraper — IT Jobs & Salary Data API

Pricing

from $2.00 / 1,000 scraped nofluffjobs jobs

Go to Apify Store
NoFluffJobs Scraper — IT Jobs & Salary Data API

NoFluffJobs Scraper — IT Jobs & Salary Data API

Export NoFluffJobs job offers with salary ranges per contract, must-have skills, seniority, locations, benefits and recruitment steps. USD 2.50 per 1,000 jobs.

Pricing

from $2.00 / 1,000 scraped nofluffjobs jobs

Rating

0.0

(0)

Developer

Muhammad Afzal

Muhammad Afzal

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Security

Limited permissions

Share

NoFluffJobs Scraper exports public job offers from No Fluff Jobs in Poland, the Czech Republic, Slovakia, Hungary and Ukraine, with salary ranges per contract type, must-have and nice-to-have skills, seniority, locations, benefits and recruitment steps. It is built for compensation analysts, recruiters, job-market researchers and AI agents, and costs about USD 2.50 per 1,000 job records on the FREE tier (USD 2.00 on GOLD), plus a small start fee.

The Actor reads the same public listing and job-detail JSON that the No Fluff Jobs website loads, so no login, cookies or API key are needed. Every row is validated before it is written, each job appears once per run, and run diagnostics go to the OUTPUT key-value record.

What data does NoFluffJobs Scraper return?

Each dataset row is one job record of type: "job". Optional values are null and lists are always arrays, in both enriched and list-only runs.

FieldWhat you get
jobId, jobUrl, apiUrlJob slug, public job URL and the public detail JSON URL
title, category, seniorityJob title, No Fluff Jobs category (backend, data, devops…), and levels such as Senior
companyName, companyWebsite, companySizeEmployer name, website and size band, for example 250 - 499
locations, remote, hybridDescriptionCities and countries, fully-remote flag, and the hybrid note (for example 6x/msc)
salaryMinimum, salaryMaximum, salaryCurrency, salaryPeriodThe first published salary range, with period month, day or hour
salaryContractsEvery contract type with its own range, currency, period and paid-holiday flag
primaryTechnology, mustHaveSkills, niceToHaveSkills, languagesMain technology, required and optional skills, required languages
description, requirements, dailyTasksPlain-text role description, requirements and daily tasks
benefits, officePerks, recruitmentProcess, onlineInterview, applyTypeHiring details as published
postedAt, expiresAt, scrapedAtPosting, expiry and extraction timestamps

How do I get NoFluffJobs salary data for a technology?

Pick a market and categories, add keywords, and set a result cap. The Console prefill searches Polish backend jobs that mention Python:

{
"region": "pl",
"categories": ["backend"],
"keywords": ["Python"],
"maxResults": 25
}

A wider salary-research input:

{
"region": "pl",
"categories": ["backend", "data", "devops"],
"seniority": ["Senior"],
"remoteOnly": true,
"salaryCurrency": "EUR",
"salaryPeriod": "month",
"enrichDetails": true,
"maxResults": 200
}
InputWhat it does
regionMarket: pl, cz, sk, hu or ua (default pl)
categoriesOne or more categories such as backend, frontend, data, devops; prefilled backend in Console, empty means all
keywordsKeep jobs whose title, company, technology or skill tiles contain any keyword
seniorityTrainee, Junior, Mid, Senior, Lead, Expert; empty means all
remoteOnlyKeep only fully remote listings (default false)
salaryCurrency, salaryPeriodCurrency (PLN, EUR, USD, GBP, CZK, HUF, UAH) and period used for list-level salaries
enrichDetailsOpen each job's detail JSON for description, contracts, skills, benefits and recruitment steps (default true)
startUrlsSingle job URLs such as https://nofluffjobs.com/job/<slug>, or region/category pages such as https://nofluffjobs.com/pl/backend. Job URLs alone, with no keywords or filters, return only those jobs
maxResultsDelivered and billed rows, 1–10,000 (default 20)
maxPagesListing pages scanned (20 listings each), 1–200 (default 50)
maxConcurrencyParallel detail requests, 1–20 (default 8)

When should I use it, and when not?

Use it when you benchmark IT salaries in Poland or CEE by stack, seniority and contract type, monitor which companies hire, feed an internal job index, or give an AI agent current No Fluff Jobs postings.

Use another Actor when:

Use it from an AI assistant

NoFluffJobs Scraper works from Claude, ChatGPT, Cursor or any MCP client through Apify's MCP server. Add it with https://mcp.apify.com/?tools=muhammadafzal/nofluffjobs-scraper, then ask, for example: "Pull 50 senior DevOps jobs from No Fluff Jobs Poland and give me the B2B salary range per month in PLN."

Run it with the API

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('muhammadafzal/nofluffjobs-scraper').call({
region: 'cz',
categories: ['devops'],
keywords: ['Kubernetes'],
maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((job) => `${job.title} | ${job.companyName} | ${job.salaryMinimum}-${job.salaryMaximum} ${job.salaryCurrency}/${job.salaryPeriod}`));

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("muhammadafzal/nofluffjobs-scraper").call(
run_input={"region": "pl", "categories": ["data"], "seniority": ["Senior"], "maxResults": 50}
)
for job in client.dataset(run.default_dataset_id).iterate_items():
print(job["title"], job["companyName"], job["salaryContracts"], job["jobUrl"])

What does the output look like?

Two records from a prefill run on 2026-10-26, shortened:

[
{
"type": "job",
"jobId": "senior-aws-developer-mindbox-krakow",
"title": "Senior AWS Developer",
"companyName": "Mindbox Sp. z o.o.",
"companyWebsite": "https://mindboxgroup.com/",
"companySize": "250 - 499",
"category": "backend",
"seniority": ["Senior"],
"locations": ["Kraków, Poland"],
"remote": true,
"hybridDescription": "6x/msc",
"salaryMinimum": 1450,
"salaryMaximum": 1550,
"salaryCurrency": "PLN",
"salaryPeriod": "day",
"salaryContracts": [
{ "employmentType": "b2b", "minimum": 1450, "maximum": 1550, "currency": "PLN", "period": "day", "paidHoliday": null }
],
"primaryTechnology": "Python",
"mustHaveSkills": ["Python", "AWS", "Jenkins", "Git", "Ansible", "DevOps"],
"niceToHaveSkills": ["Linux", "Terraform", "IaC"],
"languages": ["en"],
"applyType": "url",
"postedAt": "2026-10-21T22:01:06.348Z",
"expiresAt": "2026-11-21T23:59:59.000Z",
"jobUrl": "https://nofluffjobs.com/job/senior-aws-developer-mindbox-krakow"
},
{
"type": "job",
"jobId": "python-backend-engineer-ework-group-warsaw",
"title": "Python Backend Engineer",
"companyName": "Ework Group",
"companySize": "50 - 249",
"locations": ["Warsaw, Poland", "Remote", "lower-silesian, Poland"],
"remote": true,
"salaryMinimum": 47,
"salaryMaximum": 50,
"salaryCurrency": "EUR",
"salaryPeriod": "hour",
"mustHaveSkills": ["Python", "Fast API", "Microservices", "GitHub Actions", "Azure"],
"languages": ["en", "pl"],
"onlineInterview": true,
"jobUrl": "https://nofluffjobs.com/job/python-backend-engineer-ework-group-warsaw"
}
]

Pricing: how much does it cost to scrape NoFluffJobs?

The Actor uses pay-per-event pricing with platform usage included. Each row written to the dataset is one event.

EventFREEBRONZESILVERGOLD / PLATINUM / DIAMOND
Scraped NoFluffJobs job (one dataset row)USD 0.002501USD 0.002438USD 0.002375USD 0.002
Actor start (per started GB of allocated memory)USD 0.006251USD 0.006094USD 0.005938USD 0.005

Worked totals on the FREE tier at the default 256 MB memory (one start event):

  • Prefill, 25 rows: 25 × USD 0.002501 + USD 0.006251 = about USD 0.069
  • 1,000 rows: 1,000 × USD 0.002501 + USD 0.006251 = about USD 2.51

A search with no matches charges only the start fee. Before each write the Actor checks your run's maximum total charge and stops cleanly when the next row would exceed it.

What are the limits?

  • One row per job: a job advertised in several cities has one listing URL per city. The Actor collapses them to one posting before fetching details and never writes or bills the same jobId twice in a run; all cities appear in locations. OUTPUT.duplicatesSkipped counts any repeats it dropped.
  • Scan depth: at most maxPages × 20 listings are scanned (4,000 at maxPages 200), so narrow keyword searches can return fewer rows than maxResults.
  • List-only mode: with enrichDetails: false the run is faster, but description, contracts, benefits and recruitment fields stay empty.
  • Missing source fields such as salary, company website or hybrid notes are null, never invented.
  • Blocking: a first-page 403 or 429 is reported as BLOCKED in OUTPUT; invalid input is REJECTED.

FAQ

Is there a NoFluffJobs API?

This Actor is not an official No Fluff Jobs API and is not affiliated with No Fluff Jobs. It reads the public JSON the website uses and gives you a stable, documented output you can call from the Apify API, the JavaScript or Python client, or an MCP client.

Will a multi-city job appear more than once?

No. No Fluff Jobs gives a multi-city job one listing URL per city, but the Actor keeps one row per jobId, lists every city in locations, and bills that job once.

Which countries does it cover?

Poland (pl), the Czech Republic (cz), Slovakia (sk), Hungary (hu) and Ukraine (ua). One run covers one market.

How do I get salary data in EUR or per hour?

Set salaryCurrency and salaryPeriod for list-level salaries. salaryContracts always keeps each contract in its originally published currency and period.

Can I scrape a single NoFluffJobs job URL?

Yes. Add https://nofluffjobs.com/job/<slug> to startUrls; direct job URLs are always fetched with full details. With no keywords, categories or other filters, the run returns and bills only the jobs you listed.

Can I export the jobs to CSV or Excel?

Yes. Download the dataset from Apify Console as CSV, Excel, JSON or XML, or read it through the API.

Job-board data from the same developer:

NoFluffJobs Scraper reads public job-advertisement data only. It does not use candidate accounts, cookies or application forms. Follow No Fluff Jobs' terms, GDPR and database law, keep only what you need, link back to the original posting, and do not use job data for spam or discriminatory decisions.

Last verified: 2026-10-27