Stellenanzeigen.de Scraper - German Job Portal avatar

Stellenanzeigen.de Scraper - German Job Portal

Pricing

from $2.50 / 1,000 job search results

Go to Apify Store
Stellenanzeigen.de Scraper - German Job Portal

Stellenanzeigen.de Scraper - German Job Portal

Scrapes job listings from Stellenanzeigen.de, one of Germany's Top 3 job portals. Extracts comprehensive job data including title, company, location, salary, requirements, and contact information with support for direct URL checking and search-based scraping.

Pricing

from $2.50 / 1,000 job search results

Rating

0.0

(0)

Developer

Alessandro Santamaria

Alessandro Santamaria

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Stellenanzeigen.de Job Scraper

Scrapes job listings from Stellenanzeigen.de - one of Germany's Top 3 job portals with over 10,000 active job postings across all industries.

HTTP-only, ultra-lightweight - No browser needed. Runs on just 128 MB of memory for extremely low compute costs.

Three Scraping Modes

ModeInputOutputUse Case
SEARCH MODESearch query + filtersBasic job data from SERPFast discovery of new jobs
SEARCH + DETAILS MODEincludeJobDetails: trueFull job data with descriptionsComplete data collection in one run
DIRECT URLS MODEdirectUrls: [...]Full job data + job_statusStill-alive checks, re-scraping specific jobs

Features

  • Germany-wide coverage - Search jobs in any city, region, or Bundesland
  • Advanced filters - Filter by Bundesland, employment type, industry, radius, and posting date
  • No login required - Uses public HTTP endpoints
  • Job status checks - Verify if jobs are still online, expired, or removed
  • Rich data extraction - Title, company, location, salary, description, contact email/phone, company logo, and more
  • Ultra-low resource usage - HTTP-only, no Chrome browser needed (128 MB)
  • German state detection - Automatically detects Bundesland codes from city names
  • JSON-LD parsing - Extracts structured JobPosting data from detail pages
  • Company logos - Extracts company logo URLs from search results and detail pages
  • Contact extraction - Finds application email and phone from job descriptions
  • Standardized output - Consistent JobListing schema across all job scrapers
  • Pay-per-result pricing - Only pay for results you get
  • Rate-limited - Respectful delays between requests
  • Proxy support - Built-in proxy rotation for reliability

Pricing

This actor uses pay-per-result pricing. You only pay for the data you receive.

EventPriceDescription
SERP result$0.008Each job from search results (search-only mode)
Detail result$0.020Each job with full details (detail mode or direct URLs)

Examples:

  • 100 search results = $0.80
  • 50 jobs with full details = $1.00
  • 200 search results + 50 detailed = $2.60

No monthly fees. No minimum spend. Compute costs are minimal (~$0.001/run).

Input

FieldTypeDescriptionDefault
directUrlsarrayDirect job URLs to scrape (skips search mode)[]
searchQuerystringJob title, skills, or keywords (Beruf)""
locationstringCity or region (Arbeitsort)""
bundeslandstringGerman state code: BW, BY, BE, BB, HB, HH, HE, MV, NI, NW, RP, SL, SN, ST, SH, TH""
radiusintegerSearch radius in km around location (0-100)0
employmentTypestringFilter: vollzeit, teilzeit, ausbildung, praktikum, befristet""
industrystringIndustry/sector filter (Branche)""
datePostedstringFilter by posting age: 1 (24h), 7 (week), 30 (month)""
maxResultsintegerMaximum number of job listings to scrape (1-10000)10
includeJobDetailsbooleanFetch full job descriptions from detail pages (slower but richer data)true
proxyConfigurationobjectApify proxy settingsDatacenter

Mode 1: SEARCH MODE (Fast)

Search for jobs using keywords and filters:

  • Use case: Discover new jobs, market analysis, broad searches
  • Speed: Very fast - pure HTTP requests
  • Output: Basic job data from search cards + company logo
  • Cost: $0.008 per result
{
"searchQuery": "Software Engineer",
"location": "Berlin",
"maxResults": 100,
"includeJobDetails": false
}

Mode 2: SEARCH + DETAILS MODE (Complete Data)

Search with includeJobDetails: true to fetch full descriptions:

  • Use case: Complete data collection in one run
  • Speed: Moderate - fetches detail page for each job via HTTP
  • Output: Full descriptions, salary, contact info, company data
  • Cost: $0.020 per result
{
"searchQuery": "Marketing Manager",
"location": "München",
"bundesland": "BY",
"maxResults": 50,
"includeJobDetails": true
}

Mode 3: DIRECT URLS MODE (Still Alive Checks)

When directUrls is provided, the scraper operates in direct mode:

  • Skips search phase - Goes directly to provided job URLs
  • Job status detection - Returns online, offline, expired, or unknown
  • Full data extraction - Same as detail page scraping
  • Use case: Periodic "still alive" checks, re-scraping specific jobs
  • Cost: $0.020 per result
{
"directUrls": [
"https://www.stellenanzeigen.de/job/software-engineer-berlin-12345678/",
"https://www.stellenanzeigen.de/job/marketing-manager-muenchen-23456789/"
]
}

Filter Options

Employment Type (Beschaeftigungsart)

ValueDescription
vollzeitFull-time (Vollzeit)
teilzeitPart-time (Teilzeit)
ausbildungApprenticeship (Ausbildung)
praktikumInternship (Praktikum)
befristetFixed-term contract (Befristet)

Date Posted

ValueDescription
1Posted in last 24 hours
7Posted in last 7 days
30Posted in last 30 days

German States (Bundeslaender)

CodeState
BWBaden-Wuerttemberg
BYBayern
BEBerlin
BBBrandenburg
HBBremen
HHHamburg
HEHessen
MVMecklenburg-Vorpommern
NINiedersachsen
NWNordrhein-Westfalen
RPRheinland-Pfalz
SLSaarland
SNSachsen
STSachsen-Anhalt
SHSchleswig-Holstein
THThueringen

Example Input

Basic Search (IT Jobs in Berlin)

{
"searchQuery": "Software Engineer",
"location": "Berlin",
"maxResults": 100
}

Recent Full-Time Jobs in Bayern

{
"searchQuery": "Entwickler",
"bundesland": "BY",
"employmentType": "vollzeit",
"datePosted": "7",
"maxResults": 50
}

Jobs Near Munich (50km Radius)

{
"searchQuery": "Data Scientist",
"location": "München",
"radius": 50,
"maxResults": 100,
"includeJobDetails": true
}

Apprenticeships in NRW

{
"searchQuery": "Fachinformatiker",
"bundesland": "NW",
"employmentType": "ausbildung",
"maxResults": 200
}

Direct URLs - Still Alive Check

{
"directUrls": [
"https://www.stellenanzeigen.de/job/software-engineer-berlin-12345678/",
"https://www.stellenanzeigen.de/job/marketing-manager-muenchen-23456789/"
]
}

Output

Each job listing follows the standardized JobListing schema:

Search Mode Output

{
"id": "16175643",
"title": "Senior Software Engineer (m/w/d)",
"company": "Tech GmbH",
"location": "Berlin",
"canton": "BE",
"country": "DE",
"job_status": "online",
"top_listing": false,
"employment_type": "full-time",
"company_logo_url": "https://logos.jobstatic.de/g4j/logo/12345.png",
"company_benefits": ["Homeoffice", "Flexible Arbeitszeiten", "Firmenwagen"],
"posted_at": null,
"source_url": "https://www.stellenanzeigen.de/job/senior-software-engineer-berlin-16175643/",
"source_platform": "stellenanzeigen.de",
"scraped_at": "2026-03-09T08:30:00.000Z"
}

Detail Mode Output (additional fields)

{
"id": "16175643",
"title": "Senior Software Engineer (m/w/d)",
"company": "Tech GmbH",
"location": "Berlin, Bundesland Berlin",
"canton": "BE",
"country": "DE",
"work_address": "Friedrichstr. 123 10117 Berlin",
"job_status": "online",
"employment_type": "full-time",
"salary_text": "60.000 - 80.000 EUR/YEAR",
"salary_min": 60000,
"salary_max": 80000,
"salary_currency": "EUR",
"description_snippet": "Wir suchen einen erfahrenen Software Engineer...",
"description_full": "Full job description with all details...",
"remote_option": "hybrid",
"posted_at": "2026-03-05T00:00:00.000Z",
"expires_at": "2026-05-05T00:00:00.000Z",
"contact_email": "bewerbung@company.de",
"contact_phone": "+49301234567",
"apply_url": "https://www.stellenanzeigen.de/job/...",
"company_url": "https://www.stellenanzeigen.de/unternehmen/tech-gmbh/",
"company_logo_url": "https://logos.jobstatic.de/g4j/logo/12345.png",
"company_benefits": ["Homeoffice", "Flexible Arbeitszeiten"],
"source_url": "https://www.stellenanzeigen.de/job/senior-software-engineer-berlin-16175643/",
"source_platform": "stellenanzeigen.de",
"scraped_at": "2026-03-09T08:30:00.000Z"
}

Output Fields

Core Fields (always available)

FieldDescription
idStellenanzeigen.de job ID
titleJob title
companyCompany name
locationCity/location as displayed
countryCountry code (always DE)
cantonGerman state code (BW, BY, BE, etc.)
job_statusJob availability: online, offline, expired, unknown
top_listingWhether job is a promoted/premium listing
employment_typefull-time, part-time, contract, apprenticeship, internship
company_logo_urlCompany logo image URL
company_benefitsArray of benefits/perks from search card
source_urlLink to job posting on stellenanzeigen.de
source_platformAlways stellenanzeigen.de
scraped_atTimestamp when job was scraped

Detail Fields (with includeJobDetails: true or Direct URLs mode)

FieldDescription
work_addressFull work address (street, postal code, city)
description_snippetFirst 500 characters of description
description_fullComplete job description (cleaned text)
salary_textSalary as displayed (e.g., "60.000 - 80.000 EUR/YEAR")
salary_minMinimum salary (numeric)
salary_maxMaximum salary (numeric)
salary_currencyCurrency code (usually EUR)
remote_optionremote, hybrid, onsite (detected from description)
posted_atPublication date (ISO 8601)
expires_atExpiration date (ISO 8601)
contact_emailApplication email from description
contact_phoneContact phone from description
apply_urlApplication URL
company_urlCompany profile URL on stellenanzeigen.de

Usage

Via Apify Console

  1. Go to the actor page
  2. Configure input parameters
  3. Click "Start"
  4. Download results from the Dataset tab (JSON, CSV, Excel)

Via API

curl -X POST "https://api.apify.com/v2/acts/santamaria~stellenanzeigen-de-scraper/runs" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQuery": "Software Engineer",
"location": "Berlin",
"maxResults": 100
}'

Via Apify SDK (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('santamaria-automations/stellenanzeigen-de-scraper').call({
searchQuery: 'Data Scientist',
location: 'München',
bundesland: 'BY',
maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} jobs`);

Still Alive Checks via API

// Check if previously scraped jobs are still online
const run = await client.actor('santamaria-automations/stellenanzeigen-de-scraper').call({
directUrls: [
'https://www.stellenanzeigen.de/job/software-engineer-berlin-12345678/',
'https://www.stellenanzeigen.de/job/marketing-manager-muenchen-23456789/',
]
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(job => {
console.log(`Job ${job.id}: ${job.job_status}`);
// Output: "Job 12345678: online" or "Job 23456789: expired"
});

Performance

MetricSearch ModeDetail Mode
Speed~50-100 jobs/min~30-40 jobs/min
Memory128 MB128 MB
Compute cost~$0.001/run~$0.002/run
  • Rate limiting: 2 seconds between search pages, 1 second between detail pages
  • Retry logic: Automatic retries with exponential backoff
  • Zero browser overhead: Pure HTTP requests with TLS fingerprinting

Proxy Recommendations

Stellenanzeigen.de has Cloudflare protection. For best results:

  • Use Datacenter proxies for most runs (default configuration)
  • Residential proxies only needed if datacenter gets blocked on very large runs
  • Keep maxResults reasonable for consistent results
{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["BUYPROXIES94952"]
}
}

Common Use Cases

  1. German job market analysis - Track hiring trends across Bundeslaender and industries
  2. Competitive intelligence - Monitor which companies are hiring for specific roles
  3. Job aggregation - Build job search platforms with German job data
  4. Still-alive monitoring - Check if previously scraped jobs are still active
  5. Salary research - Analyze compensation ranges from job postings
  6. Regional analysis - Compare job markets across German states
  7. Apprenticeship tracking - Monitor Ausbildung openings by region

How It Works

Technical Architecture

This actor is 100% HTTP-only - no browser automation needed. It uses:

  1. got-scraping - HTTP client with TLS fingerprinting for browser-like requests
  2. Cheerio - Fast HTML parser for extracting structured data from search pages
  3. JSON-LD - Parses @type: "JobPosting" structured data from detail pages

Search Mode (Modes 1 & 2)

  1. Queries stellenanzeigen.de search with your filters
  2. Parses job cards from HTML response (using data-jobid attribute)
  3. Optionally fetches each job's detail page for JSON-LD data
  4. Validates each job against the schema before saving
  5. Paginates automatically until maxResults is reached

Direct URLs Mode (Mode 3)

  1. Fetches job data from each provided URL
  2. Parses JSON-LD JobPosting data
  3. Detects job status (online, expired, offline)
  4. Returns full job data with status field

Limitations

  • Stellenanzeigen.de shows promoted/premium listings first in search results, regardless of location filter
  • Some fields (salary, contact info) may not be available for all job postings
  • Contact information is extracted from description text only (not all jobs include it)
  • Cloudflare protection may block requests without proxy - use datacenter proxy for reliability
  • German state codes are automatically detected from city names but depend on the city database coverage

This actor scrapes publicly available job listings from stellenanzeigen.de's public job search. It does not access any data behind authentication.

Users are responsible for ensuring their use complies with stellenanzeigen.de's Terms of Service and applicable laws in their jurisdiction.

Feedback & Support

Have a feature request, found a bug, or need help? Open an issue - we actively monitor and respond.


Part of the Santamaria Job Scrapers Suite - Professional-grade job data for the DACH region and beyond.

Need help with integration, aggregation, or custom scraping solutions? Contact us at contact@alessandrosantamaria.com