StepStone Jobs Scraper: Germany, Austria & UK Totaljobs avatar

StepStone Jobs Scraper: Germany, Austria & UK Totaljobs

Pricing

from $0.70 / 1,000 jobs

Go to Apify Store
StepStone Jobs Scraper: Germany, Austria & UK Totaljobs

StepStone Jobs Scraper: Germany, Austria & UK Totaljobs

Scrape job listings from StepStone Germany, StepStone Austria, Totaljobs and CWJobs by keyword and location: title, company, salary, remote or hybrid, benefits, skills, posting date and the full job description if you want it. Radius and date filters. No login. Pay per job.

Pricing

from $0.70 / 1,000 jobs

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

What does StepStone Jobs Scraper do?

Give it a job title or keyword and a location. Get back the job listings from the StepStone group job boards, one row per job: title, company, company logo and page, location, posting date, salary text with the numbers pulled out, remote or hybrid status, quick apply, the benefits listed on the job card, the ad's opening text and a link to the ad.

It covers four boards: StepStone.de (Germany), StepStone.at (Austria), Totaljobs (UK) and CWJobs (UK tech jobs). They run on the same software, so one actor and one set of fields covers all four.

Turn on Full job description and each row also gets the complete ad text, the employment type, the closing date and the address with coordinates, read from the job's own page.

✅ StepStone Germany and Austria, Totaljobs, CWJobs | ✅ Radius, posted date and home office filters | ✅ Salary numbers read from the salary text | ✅ Optional full descriptions | ✅ No login or cookies | ✅ Pay only for jobs delivered | ✅ MCP-ready for AI agents

Who is it for?

Recruiters and staffing agencies tracking who is hiring for which roles in Germany, Austria and the UK. Sales teams that sell to companies while they are hiring. Job market and salary researchers who need clean, flat listing data. Job boards and aggregators that want German, Austrian and British listings in one format. Job seekers who want a daily list of new ads for their search.

How much does it cost to scrape StepStone and Totaljobs?

You pay per job delivered to your dataset, plus $0.005 per run at the default memory. A full description costs a second, separate event, only for jobs where it was actually added.

Apify planPer jobPer full description
Free$0.0015$0.001
Starter (Bronze)$0.0012$0.0008
Scale (Silver)$0.001$0.0007
Business (Gold) and above$0.0007$0.0005

So 1,000 jobs cost 1,000 times the per job price of your plan, plus $0.005 for the run. Filters, salary numbers, the home office field and the proxies needed to reach the sites are all included.

Never charged: pages the site refused, the same job found again by a second keyword, jobs skipped by Exact matches only or the date window, descriptions that could not be fetched, and the information row. The Pricing tab always shows the rate for your own plan; if this table and the Pricing tab ever disagree, the Pricing tab is right.

How does it get the jobs without logging in?

It opens the same search results page a visitor sees, for example https://www.stepstone.de/jobs/data-analyst/in-berlin. That page carries its whole result list as data inside it: 25 jobs, how many results the search has, how many pages, and how the site understood your keyword and location. The actor reads that data directly rather than the page layout, page by page (?page=2, ?page=3 and so on) until it has as many jobs as you asked for or the results end.

The boards sit behind bot protection that turns many requests away. The actor first uses a fast connection that looks like a normal Chrome browser, and when an address gets through it keeps using it. If a page is still refused after several tries, it tries again through Apify's unblocking proxy, which is slower but gets through. Refused pages are listed in the run summary and never charged.

With Full job description on, it then opens each job's own page and reads the description from the structured job data the page publishes for search engines.

What input does it take?

{
"keywords": ["data analyst", "business intelligence"],
"location": "Berlin",
"site": "stepstone.de",
"maxResultsPerSearch": 100,
"postedWithinDays": "7",
"radius": 20,
"workFromHome": "hybrid",
"exactMatchesOnly": true,
"includeDescription": false
}
InputDefaultWhat it does
keywordsnoneJob titles or keywords, one search each: data analyst, Projektmanager, C++ Entwickler. Up to 50 per run. keyword (a single text) and query are accepted too
locationemptyCity, region or postcode: Berlin, München, Wien, London. Empty searches the whole country
sitestepstone.destepstone.de, stepstone.at, totaljobs.com or cwjobs.co.uk
maxResultsPerSearch25Most jobs per keyword, 1 to 1,000. The sites show 25 per page
postedWithinDaysany1, 3, 7 or 14 days
radiussite defaultKilometres on StepStone (5, 10, 20, 30, 40, 50, 75, 100), miles on Totaljobs and CWJobs (0, 5, 10, 20, 30)
workFromHomeanyremote for fully remote jobs, hybrid for partly remote
exactMatchesOnlytrueOnly jobs that match your search. Turn off to also get the similar titles and outside radius jobs the site adds when exact matches run out
includeDescriptionfalseAdd the full description, employment type, closing date and address from each job's page
allowUnblockerFallbacktrueRetry refused pages through Apify's unblocking proxy

What data do you get back?

One row per job. A real row from a test run on 27 Sep 2026 (StepStone.de, data analyst in Berlin), with the long text shortened:

{
"job_id": "14538687",
"url": "https://www.stepstone.de/stellenangebote--Senior-Data-Analyst-Analytics-Engineer-m-w-d-Remote-Augsburg-Muenchen-Stuttgart-Nuernberg-Frankfurt-Koeln-Dresden-Hannover-Hamburg-Berlin-Leipzig-Studyflix-GmbH--14538687-inline.html",
"title": "Senior Data Analyst / Analytics Engineer (m/w/d)",
"company_name": "Studyflix GmbH",
"company_id": "213191",
"company_url": "https://www.stepstone.de/cmp/de/studyflix-gmbh-213191/jobs",
"company_logo_url": "https://www.stepstone.de/upload_DE/logo/E/logoStudyflix-GmbH-213191DE-2309011641.gif",
"location": "Remote,Augsburg,München,Stuttgart,Nürnberg,Frankfurt,Köln,Dresden,Hannover,Hamburg,Berlin,Leipzig",
"posted_at": "2026-09-24T12:58:05.000Z",
"work_from_home": "hybrid",
"quick_apply": true,
"labels": ["QUICK_APPLY"],
"snippet": "Studyflix ist mit über 6 Mio. Nutzern die größte kostenlose E-Learning- und Karriere-Plattform im DACH-Raum! ...",
"benefits": [
"30 Tage Urlaub: Zusätzlich bekommst du an Heiligabend und Silvester jeweils einen halben Tag frei.",
"Kurze Entscheidungswege: Dich erwarten flache Hierarchien, viel Eigenverantwortung und die Möglichkeit, Themen selbstständig voranzutreiben.",
"..."
],
"is_anonymous": false,
"match_type": "exact",
"position": 11,
"site": "stepstone.de",
"country": "DE",
"search_keyword": "data analyst",
"search_location": "Berlin",
"scraped_at": "2026-09-27T15:15:27.577Z"
}

On Totaljobs and CWJobs most ads show a salary, and the actor reads the numbers out of it. From the same test day, a Totaljobs row had "salary_text": "£40000.00 - £47000.00 per annum + + £3,300 London allowance" with salary_min 40000, salary_max 47000, salary_currency GBP and salary_period year.

FieldDescription
job_id, urlJob id on the site and the link to the ad
title, company_name, company_id, company_url, company_logo_urlThe job and who posted it (for agency ads, the agency)
locationLocation as the ad states it, sometimes several cities
posted_atPosting date, ISO 8601 UTC
salary_textSalary exactly as shown
salary_min, salary_max, salary_currency, salary_periodSalary numbers, currency and period (year, month, week, day or hour)
work_from_homeremote or hybrid when the ad offers home office
quick_apply, labelsWhether the site's quick application is offered, and the card labels (QUICK_APPLY, NO_COVER_LETTER, FEATURED, NEW and so on)
skills, snippet, benefitsSkills listed on the card, the ad's opening text, and the benefits list
is_anonymousThe employer posted without its name
match_typeexact, or what the site added after the exact matches: similar (related titles), outside_radius, recommended, related_company
positionRank in the site's results
site, country, search_keyword, search_location, scraped_atWhere and how the row was found, and when
description, employment_type, valid_through, street_address, postal_code, latitude, longitudeWith Full job description on: full ad text, employment type, closing date and address details

Empty fields are dropped rather than sent as null. Each run also writes a summary to the key-value store record OUTPUT: for every keyword a status (ok, no_results or blocked), the number of results the site reports, pages read and refused, attempts per connection type and how many worked, and what was delivered and skipped.

What are the limitations?

Salaries on StepStone. StepStone Germany and Austria show most salaries only to logged in users, so salary_min and salary_max are usually empty there (none of 60 Berlin jobs in the test run had one). Totaljobs and CWJobs show a salary on most ads (all 50 London jobs in the test run had salary text, and numbers could be read from 39).

Home office on Totaljobs and CWJobs. Their job cards do not say whether a job is remote, so work_from_home stays empty there. Their Work From Home filter still works.

Posted dates on Totaljobs and CWJobs. Those sites count a refreshed ad as new, so a job returned for "last 7 days" can show a posted_at from weeks earlier. The actor keeps what the site returns.

Speed. A StepStone page usually takes 2 to 4 seconds. Totaljobs and CWJobs refuse more requests, and a page that has to go through the unblocking proxy takes about 10 seconds. Full descriptions add one page per job.

Limits. Up to 50 keywords per run and 1,000 jobs per keyword, one board per run. A run stops cleanly at its timeout (one hour by default) and keeps everything delivered so far; raise the timeout for very large runs. The sites change from time to time; if one refuses a page, the run summary says so and nothing is charged for it.

What can you use it for?

Hiring signals for sales. Find companies hiring data, finance or engineering roles in a city this week, with their company page and logo, and reach them while the budget is open.

Recruitment and sourcing. Track new ads for the roles you place, with posting date, salary and remote status, across Germany, Austria and the UK in one format.

Salary and job market research. Collect salary ranges by title and city on Totaljobs and CWJobs, and job volumes and benefits by city on StepStone.

Job alerts and aggregation. Run the same searches every morning with Posted within set to 24 hours and feed the new jobs into a sheet, a Slack channel or your own board.

How do I get started?

  1. Type your job titles into Keywords, one per line, and a city into Location.
  2. Pick the Job board: StepStone Germany, StepStone Austria, Totaljobs or CWJobs.
  3. Set Jobs per keyword and, if you like, Posted within, Radius and Home office.
  4. Turn on Full job description if you need the complete ad text.
  5. Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API or MCP.

Can I run it on a schedule?

Yes. Run it once with the input you want, click Save as a task, then in Apify Console go to Schedules, create a schedule, pick how often (for example every weekday at 7:00) and add the task. Each scheduled run is billed the same way as a manual one; the schedule itself costs nothing.

FAQ

How much does it cost to scrape 1,000 jobs from StepStone or Totaljobs?

1,000 times the per job price of your plan (see the table above), plus $0.005 for the run. Filters and salary numbers are included. A full description is a separate event per job and only charged when you turn it on and it was added.

Do I need a StepStone or Totaljobs account, cookies or an API key?

No. The actor reads the public listings a visitor sees without logging in. There is nothing of yours to connect.

Which countries and job boards does it cover?

StepStone.de for Germany, StepStone.at for Austria, and Totaljobs and CWJobs for the United Kingdom. CWJobs is the StepStone group's board for IT and tech jobs; many of its ads link to job pages on totaljobs.com, which is normal.

Can I get only remote or hybrid jobs?

Yes. Set Home office to fully remote or hybrid. On StepStone these are the site's own "Nur Home-Office" and "Teilweise Home-Office" filters, and each row says remote or hybrid. Totaljobs and CWJobs have one Work From Home filter, used for both choices.

Why do I get jobs with a different title than my keyword?

When the exact matches for a search run out, StepStone and Totaljobs add similar titles and jobs from outside your radius, like their own site does under "similar jobs". By default the actor stops there, so you only get and pay for jobs that match your search. Turn off Exact matches only to get the similar jobs too; every row says which kind it is in match_type.

Can I get the full job description?

Yes. Turn on Full job description. The actor opens each job's page and adds the full text, employment type, closing date, street, postcode and coordinates when the page has them. It is slower and charged as a separate event, only for jobs that actually got a description.

How do I search a whole country instead of one city?

Leave Location empty. The actor then searches all of Germany, Austria or the UK, depending on the board.

What does the radius mean on each site?

Kilometres on StepStone (default 30) and miles on Totaljobs and CWJobs (default 10). The sites accept a fixed set of values, so the actor uses the nearest one and notes the change in the run log.

The actor collects only publicly visible job listings and never logs in. Job ads are published to be read, and they are mostly about companies rather than people, but site terms and privacy laws such as GDPR still apply to how you store and use the data, for example recruiter names inside descriptions. This is general information, not legal advice.

Use in Claude, ChatGPT and any MCP agent

Add it to Claude Code in one line:

$claude mcp add --transport http apify "https://mcp.apify.com/?tools=themineworks/stepstone-totaljobs-scraper"

Or point any MCP client at:

https://mcp.apify.com/?tools=themineworks/stepstone-totaljobs-scraper

Things an agent can ask once connected:

  • "Which companies posted data analyst jobs in Berlin on StepStone this week?"
  • "List remote Python developer jobs on CWJobs with a day rate above £500."
  • "Compare salary ranges for business analyst jobs in London and Manchester on Totaljobs."

Or call it from code with the Apify client:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/stepstone-totaljobs-scraper').call({
keywords: ['data analyst'],
location: 'London',
site: 'totaljobs.com',
maxResultsPerSearch: 100,
postedWithinDays: '7',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.filter((j) => j.salary_min >= 50000));

More from The Mine Works

Browse every tool at themineworks.com. Related actors for job data:

Found this useful? A quick Store review helps other buyers find it. Found a bug or want a field added? Open an issue on the actor's Apify Console page.


Disclaimer: This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by StepStone, Totaljobs or CWJobs. StepStone, Totaljobs and CWJobs are trademarks of their owners. Use scraped public data in line with GDPR, the UK GDPR and your local laws.