Skip to content

AkiLetschne/stepstone-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stepstone-cli (unofficial)

Python CLI for the German Stepstone market:

  • Search job listings via the Stepstone mobile listings API
  • Fetch a job ad (HTML) and extract structured details (incl. salary range if present)
  • Optional --junior mode that filters out senior/lead roles by scanning the German job description
  • By default, search results exclude Werkstudent and Praktikum/Internship roles (disable with --include-student-jobs)

Disclaimer

This is an unofficial tool based on reverse-engineered mobile app traffic. Endpoints/parameters can change at any time.

Requirements

  • Python 3.11+ (tested with the repo venv on Linux)

Install

Create a virtualenv (recommended):

python -m venv .venv
./.venv/bin/python -m pip install -U pip

Install dependencies:

./.venv/bin/python -m pip install -r requirements.txt

Configuration

The CLI reads config.json by default (ignored by git). Start from the template:

cp config.example.json config.json

Edit config.json:

  • search.what: search term
  • search.where: location (city/region)
  • search.radius: radius in km
  • search.worktype: work type codes (optional)
  • search.limit / search.offset

Usage

Help:

./.venv/bin/python -m stepstone_cli --help

Search (default sort is newest first):

./.venv/bin/python -m stepstone_cli search --limit 20
./.venv/bin/python -m stepstone_cli search --query "Junior Python" --where Berlin --radius 10

Include internships / working-student roles (disables the default filter):

./.venv/bin/python -m stepstone_cli search --include-student-jobs

Search output as a plain list:

./.venv/bin/python -m stepstone_cli search --limit 20 --list

Sort by relevance instead of date:

./.venv/bin/python -m stepstone_cli search --relevance

Filter: only jobs newer than a given date (UTC):

./.venv/bin/python -m stepstone_cli search --newer-than 2026-02-01

Filter: minimum salary (EUR/year). Uses salaryDetails from search results (MONTHLY is converted via *12):

./.venv/bin/python -m stepstone_cli search --min-salary 60000

Experience filter:

  • --first-job uses experience=90001 ("No Experience / First Job")
  • --experience-required uses experience=90002 ("Experience required")
./.venv/bin/python -m stepstone_cli search --first-job
./.venv/bin/python -m stepstone_cli search --experience-required

Junior mode (fetches each job ad and drops postings that look senior/lead based on German keywords in title/description):

./.venv/bin/python -m stepstone_cli search --limit 30 --junior
./.venv/bin/python -m stepstone_cli search --limit 30 --junior --workers 12

Show a job ad by ID (extracts JSON-LD JobPosting; salary is extracted from JSON-LD or Stepstone SSR props if present):

./.venv/bin/python -m stepstone_cli show 13462913
./.venv/bin/python -m stepstone_cli show 13462913 --json

Notes

  • The Stepstone mobile API key and request headers are hardcoded in stepstone_cli/api.py.
  • config.json is intentionally minimal; most Stepstone plumbing parameters are constants in code.

About

unofficial CLI for the german jobmarket Stepstone

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages