MeineStadt.de Job Scraper - German Regional Jobs avatar

MeineStadt.de Job Scraper - German Regional Jobs

Pricing

from $3.50 / 1,000 job search results

Go to Apify Store
MeineStadt.de Job Scraper - German Regional Jobs

MeineStadt.de Job Scraper - German Regional Jobs

Scrape job listings from MeineStadt.de, Germany's largest regional job portal with 900K+ listings across all industries and cities. Extract salary ranges, requirements, benefits, company info, logos, and full descriptions. Search by keywords and city with radius filter. Fast HTTP-only scraper.

Pricing

from $3.50 / 1,000 job search results

Rating

0.0

(0)

Developer

NanoScrape

NanoScrape

Maintained by Community

Actor stats

2

Bookmarked

54

Total users

18

Monthly active users

16 hours ago

Last modified

Share

MeineStadt.de Jobs Scraper

English | Deutsch


English

Scrape job listings from MeineStadt.de, a German regional job portal across all German cities and states.

Fast HTTP-only scraper -- no browser needed. Extracts salary, requirements, benefits, company info, and logos. Supports multiple search queries with per-query limits and cross-query deduplication.

Features

  • Multi-query search: run multiple keywords in one actor call, deduplicated across queries
  • Per-query and total result limits for precise cost control
  • Full job details: salary, requirements, benefits, company description
  • Company logos displayed as image previews in dataset
  • Direct URL mode for monitoring specific listings
  • Automatic pagination across all result pages
  • Deduplication by job ID and title+company
  • Pay-per-result pricing -- only pay for what you scrape
  • Low memory footprint: 128 MB

Input Parameters

ParameterTypeRequiredDefaultDescription
searchQueriesstring[]No--One or more search keywords. Each runs as a separate search. Results are deduplicated across queries.
searchQuerystringNo--Single search keyword (backward compatible). Use searchQueries for multiple keywords.
citystringNo--City to search in (e.g., "Berlin", "Munchen"). Leave empty for all of Germany
radiusintegerNo30Search radius in km around the city (0-200)
maxResultsPerQueryintegerNo100Maximum results per search keyword (deduplicated)
maxResultsintegerNo0Total cap across all queries. 0 = unlimited (each query limited by maxResultsPerQuery)
sortBystringNonewestSort order: newest (real server-side date sort; paid top-slot ads and undated partner-redirect listings are skipped; collected rows are re-sorted newest-first per keyword) or relevance (site default ranking).
includeDetailsbooleanNotrueFetch full job descriptions from detail pages (slower but includes salary, requirements, benefits)
titleFilterstringNoemptyComma-separated title terms (case-insensitive OR substring, umlauts folded, so Pädagog also matches Paedagog). Example: Erzieher, Pädagog. Rows whose title matches none are dropped before the detail fetch and before charging. Result caps count only kept rows. Empty = no filtering.
titleFilterMaxEmptyPagesintegerNo0Optional. Stop a query after this many result pages in a row without a title match. 0 = keep paging until the result limit or the end of results.
directUrlsstring[]No--Direct job URLs to scrape (bypasses search)

Note on result quality and titleFilter

meinestadt.de fills later result pages with less related jobs. For a keyword such as "Erzieher" the first page is on topic, but further pages mix in other professions and paid ads. Set titleFilter to keep only rows whose title matches your terms. The scraper keeps paging until your result cap is reached or the pages run out, and matches often cluster on later pages, so pages without a match do not end the query. Set titleFilterMaxEmptyPages if you want an early stop. The run status message reports how many rows were skipped by titleFilter.

Output Schema

Each job listing includes:

Core Fields:

  • id -- Unique job identifier
  • title -- Job title
  • company -- Company name
  • location -- Job location (city)
  • canton -- German state code (BW, BY, BE, etc.)
  • detail_status -- ok when the detail page was read, failed when details were requested but the page failed or was empty, null without details. Jobs whose detail page could not be loaded are billed as search results
  • company_logo_url -- Company logo (displayed as image preview)
  • search_query -- Which search keyword found this job

Job Details:

  • employment_type -- full-time, part-time, contract, apprenticeship, internship
  • workload_min / workload_max -- Work percentage (0-100%)
  • remote_option -- remote, hybrid, or onsite
  • salary_text -- Salary as displayed (e.g., "33.982 EUR - 47.036 EUR/Jahr")
  • description_snippet -- Short description (500 chars)
  • description_full -- Complete job description
  • requirements -- Required skills (array)
  • company_benefits -- Benefits offered (array)
  • company_description -- About the company

Application:

  • apply_url -- Application URL
  • apply_email -- Application email
  • contact_salutation / contact_firstname / contact_lastname / contact_position -- Contact person from the application section (when named on the ad)
  • contact_email / contact_phone -- Contact email (mailto of the application section) and phone
  • contact_raw -- The contact lines as published
  • company_url -- Company website

You are responsible for using the data lawfully, including the GDPR/DSGVO, national data-protection laws and unfair-competition rules (e.g. UWG) for marketing and outreach.

Metadata:

  • posted_at -- Publication date (RFC 3339 UTC, day precision, midnight)
  • posted_at_text -- Original date text from the listing (dd.mm.yyyy)
  • expires_at -- Expiration date
  • source_url -- Original job posting URL
  • source_platform -- "meinestadt.de"
  • country -- "DE"
  • scraped_at -- Scraping timestamp

Usage Examples

{
"searchQueries": ["Pflege", "Krankenschwester", "Altenpfleger"],
"city": "Berlin",
"maxResultsPerQuery": 50,
"maxResults": 0
}
{
"searchQueries": ["Software Engineer"],
"city": "Berlin",
"maxResultsPerQuery": 100
}
{
"searchQueries": ["Vertrieb", "Sales"],
"city": "Munchen",
"radius": 50,
"maxResultsPerQuery": 200,
"includeDetails": true
}

Fast SERP-Only (No Details)

{
"searchQueries": ["Software Engineer", "Entwickler"],
"city": "Hamburg",
"maxResultsPerQuery": 200,
"includeDetails": false
}

Monitor Specific Listings

{
"directUrls": [
"https://jobs.meinestadt.de/berlin/premium?id=100010962331",
"https://jobs.meinestadt.de/muenchen/premium?id=100010956488"
]
}

API Integration

curl -X POST https://api.apify.com/v2/acts/santamaria~meinestadt-de-scraper/runs \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"searchQueries": ["Ingenieur", "Techniker"],
"city": "Frankfurt",
"radius": 30,
"maxResultsPerQuery": 100,
"maxResults": 0
}'

Performance

MetricValue
Speed~10 jobs/min with details, ~30 jobs/min SERP-only
Memory128 MB
Cost~0.02 CU per 50 jobs with details
ProxyDatacenter works well

Use with AI Agents (MCP)

Connect this actor to any MCP-compatible AI client — Claude Desktop, Claude.ai, Cursor, VS Code, LangChain, LlamaIndex, or custom agents.

Apify MCP server URL:

https://mcp.apify.com?tools=santamaria-automations/meinestadt-de-scraper

Example prompt once connected:

"Use meinestadt-de-scraper to scrape job listings from meinestadt de. Return results as a table."

Clients that support dynamic tool discovery (Claude.ai, VS Code) will receive the full input schema automatically via add-actor.

Deutsch

Scraper fur Stellenanzeigen von MeineStadt.de, Deutschlands grosstem regionalen Stellenportal mit 900.000+ aktiven Anzeigen in allen deutschen Stadten und Bundeslandern.

Schneller HTTP-only Scraper -- kein Browser notig. Unterstutzt mehrere Suchbegriffe mit Limits pro Abfrage und Deduplizierung uber alle Abfragen.

Funktionen

  • Multi-Query-Suche: mehrere Suchbegriffe in einem Aktorlauf, dedupliziert uber alle Abfragen
  • Limits pro Abfrage und gesamt fur prazise Kostenkontrolle
  • Vollstandige Details: Gehalt, Anforderungen, Benefits, Firmenbeschreibung
  • Firmenlogos als Bildvorschau im Datensatz
  • Direkter URL-Modus zur Uberwachung einzelner Anzeigen
  • Automatische Paginierung uber alle Ergebnisseiten
  • Deduplizierung nach Job-ID und Titel+Firma
  • Pay-per-Result Preisgestaltung
  • Geringer Speicherbedarf: 128 MB

Eingabeparameter

ParameterTypErforderlichStandardBeschreibung
searchQueriesstring[]Nein--Ein oder mehrere Suchbegriffe. Ergebnisse werden uber alle Abfragen dedupliziert.
searchQuerystringNein--Einzelner Suchbegriff (abwartskompatibel). Nutzen Sie searchQueries fur mehrere.
citystringNein--Stadt (z.B. "Berlin", "Munchen"). Leer = ganz Deutschland
radiusintegerNein30Suchradius in km (0-200)
maxResultsPerQueryintegerNein100Maximale Ergebnisse pro Suchbegriff
maxResultsintegerNein0Gesamtlimit uber alle Abfragen. 0 = unbegrenzt
sortBystringNeinnewestSortierung: newest (echte serverseitige Datumssortierung; bezahlte Top-Anzeigen ohne Datumsreihenfolge werden uebersprungen) oder relevance (Standard-Relevanz der Seite).
includeDetailsbooleanNeintrueVollstandige Stellenbeschreibungen laden
titleFilterstringNeinleerKommagetrennte Titelbegriffe (Gross-/Kleinschreibung egal, ODER, Teilstring, Umlaute werden gefaltet). Beispiel: Erzieher, Pädagog. Treffer ohne passenden Titel werden vor dem Detailabruf und vor der Abrechnung verworfen. Ergebnislimits zaehlen nur behaltene Zeilen. Leer = kein Filter.
directUrlsstring[]Nein--Direkte Job-URLs (uberspringt Suche)

Ausgabeschema

Jede Stellenanzeige enthalt:

Kernfelder:

  • id -- Eindeutige Stellen-ID
  • title -- Stellenbezeichnung
  • company -- Firmenname
  • location -- Arbeitsort (Stadt)
  • canton -- Bundesland-Kurzel (BW, BY, BE, etc.)
  • company_logo_url -- Firmenlogo (als Bildvorschau)
  • search_query -- Welcher Suchbegriff diesen Job gefunden hat

Stellendetails:

  • employment_type -- Vollzeit, Teilzeit, Befristet, Ausbildung, Praktikum
  • salary_text -- Gehaltsangabe wie angezeigt
  • description_full -- Vollstandige Stellenbeschreibung
  • requirements -- Geforderte Fahigkeiten (Array)
  • company_benefits -- Angebotene Leistungen (Array)

Bewerbung:

  • apply_url -- Bewerbungs-URL
  • apply_email -- Bewerbungs-E-Mail
  • contact_salutation / contact_firstname / contact_lastname / contact_position -- Ansprechperson aus dem Bewerbungsbereich (sofern in der Anzeige genannt)
  • contact_email / contact_phone -- Kontakt-E-Mail (mailto im Bewerbungsbereich) und Telefon
  • contact_raw -- Die Kontaktzeilen wie veroeffentlicht
  • company_url -- Firmen-Website

Metadaten:

  • posted_at -- Veroffentlichungsdatum (RFC 3339 UTC, tagesgenau)
  • posted_at_text -- Originaler Datumstext der Anzeige (dd.mm.yyyy)
  • source_url -- Original-Stellenanzeigen-URL
  • source_platform -- "meinestadt.de"
  • country -- "DE"

Verwendungsbeispiele

Multi-Query-Suche

{
"searchQueries": ["Pflege", "Krankenschwester", "Altenpfleger"],
"city": "Berlin",
"maxResultsPerQuery": 50
}

Einfache Suche

{
"searchQueries": ["Pflege"],
"city": "Berlin",
"maxResultsPerQuery": 100
}

Regionale Suche mit grossem Radius

{
"searchQueries": ["Vertrieb"],
"city": "Munchen",
"radius": 50,
"maxResultsPerQuery": 500
}

Leistung

MetrikWert
Geschwindigkeit~10 Stellen/Min mit Details, ~30 Stellen/Min nur SERP
Speicher128 MB
Kosten~0,02 CU pro 50 Stellen mit Details
ProxyDatacenter funktioniert gut

Working across the German job market? These complement Meine Stadt:

Germany

Switzerland

Austria

Global

Enrich your job data


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