MeineStadt.de Jobs Scraper
Pricing
from $0.69 / 1,000 jobs
MeineStadt.de Jobs Scraper
Scrape job listings from MeineStadt.de by keyword and city. Get titles, companies, salaries, employment type, and full descriptions with requirements and benefits. Export as JSON, CSV, or Excel.
Pricing
from $0.69 / 1,000 jobs
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
MeineStadt.de Jobs Scraper
Scrape job listings from MeineStadt.de — one of Germany's largest local job boards — into clean, structured JSON. The MeineStadt.de Jobs Scraper searches by keyword and city and pulls the job title, company, salary, employment type, and (optionally) the full description with requirements and benefits, without needing the MeineStadt.de API.
| Search any keyword across a specific German city or the whole country, then optionally fetch each job's detail page for salary range, requirements, benefits, and company info — with results deduplicated across keywords automatically. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Actor: parsebird/meinestadt-de-jobs-scraper (Apify). Scrapes job listings from jobs.meinestadt.de (Germany) by keyword and city. Call with ApifyClient.Input JSON fields: searchQueries: string[] — one or more search keywords, e.g. ["Pflege","Krankenschwester"]; searchQuery: string — single keyword, backward-compatible alternative; city: string — German city, e.g. "Berlin" (empty = all of Germany); maxResultsPerQuery: int (default 100) — max results per keyword, deduplicated; maxResults: int (default 0 = unlimited) — total cap across all keywords; includeDetails: bool (default true) — fetch full description, salary, requirements, and benefits from each job's detail page; directUrls: string[] — direct MeineStadt.de job URLs to monitor, bypassing search; proxyConfiguration: object — UNBLOCKER proxy group is required and set by default.Output: one dataset item per job — id, title, company, location, canton, company_logo_url, search_query, employment_type,workload_min, workload_max, remote_option, salary_text, description_snippet, description_full, requirements,company_benefits, company_description, apply_url, posted_at, expires_at, source_url, source_platform, country, scraped_at.Example: { "searchQueries": ["Pflege", "Krankenschwester"], "city": "Berlin", "maxResultsPerQuery": 50 }API: https://api.apify.com/v2/acts/parsebird~meinestadt-de-jobs-scraper · Token: https://console.apify.com/account/integrations
What does MeineStadt.de Jobs Scraper do?
MeineStadt.de runs a local job board for roughly 11,000 German towns and cities, blending sponsored listings with jobs sourced directly from employers. There is no public MeineStadt.de search API — this scraper reads the site's own job-search results instead. For every keyword and city combination it extracts:
- 🏷️ Job identity — title, company, city, German state (canton), and company logo.
- 💰 Pay and terms — salary range as shown on the site, employment type (full-time, part-time, contract, apprenticeship, internship), and remote/hybrid/onsite signal.
- 📋 Full details (optional) — complete job description, required skills, company benefits, and a short company profile, fetched from each job's own detail page.
- 📅 Dates — when the job was posted and when the listing expires.
Common uses: German job-market monitoring, recruiting and sourcing research, salary benchmarking by city and role, and tracking specific listings over time.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| searchQueries | array | No | — | One or more search keywords. Each runs as a separate search; results are deduplicated across keywords. |
| searchQuery | string | No | — | A single search keyword (backward compatible). Ignored if searchQueries is set. |
| city | string | No | — | City to search in, e.g. Berlin or Munchen. Leave empty for all of Germany. |
| radius | integer | No | 30 | Accepted for compatibility (0-200 km). MeineStadt.de's city pages already include nearby-area listings by default and expose no separate radius filter, so this currently has no additional effect — see the FAQ. |
| maxResultsPerQuery | integer | No | 100 | Maximum results per keyword, deduplicated. MeineStadt.de returns 5 results per page, paginated automatically. |
| maxResults | integer | No | 0 | Total cap across all keywords combined. 0 = unlimited (each keyword still capped by maxResultsPerQuery). |
| includeDetails | boolean | No | true | Fetch full job descriptions, salary, requirements, and benefits from each detail page. Slower but much richer. |
| directUrls | array | No | — | Direct MeineStadt.de job URLs to scrape, bypassing search — for monitoring specific listings. |
| proxyConfiguration | object | No | UNBLOCKER | Apify Proxy settings. MeineStadt.de blocks both datacenter and residential proxies; UNBLOCKER is required and set by default. |
Example inputs
Multi-query search:
{"searchQueries": ["Pflege", "Krankenschwester", "Altenpfleger"],"city": "Berlin","maxResultsPerQuery": 50,"maxResults": 0}
Basic search:
{"searchQueries": ["Software Engineer"],"city": "Berlin","maxResultsPerQuery": 100}
Fast SERP-only scan (no detail pages):
{"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"]}
What data can you extract from MeineStadt.de?
Core fields
| Field | Description |
|---|---|
| id | Unique job identifier |
| title | Job title |
| company | Company name |
| location | Job location (city) |
| canton | German state code (BW, BY, BE, …), resolved from the job's postal code or city |
| company_logo_url | Company logo image URL |
| search_query | Which search keyword found this job |
Job details
| Field | Description |
|---|---|
| employment_type | full-time, part-time, contract, apprenticeship, or internship |
| workload_min / workload_max | Work percentage (0-100%); populated when the listing states a single, unambiguous workload |
| remote_option | remote, hybrid, or onsite (inferred from stated benefits and description text) |
| salary_text | Salary as displayed, e.g. 47.715 € - 58.055 €/Jahr |
| description_snippet | First 500 characters of the job description |
| description_full | Complete job description (only with includeDetails) |
| requirements | Required skills (array) |
| company_benefits | Benefits offered (array) |
| company_description | About the company (only with includeDetails, when the listing includes one) |
Application & metadata
| Field | Description |
|---|---|
| apply_url | The MeineStadt.de job page where the "Jetzt bewerben" (apply) action lives |
| posted_at / expires_at | Publication and expiration dates (ISO 8601) |
| source_url | Original job posting URL on MeineStadt.de |
| source_platform | meinestadt.de |
| country | DE |
| scraped_at | Scraping timestamp |
Output example
{"id": "100013577384","title": "Consultant (m/w/d) Inhouse Consulting mit Schwerpunkt Rüstungsmanagement","company": "BwConsulting GmbH","location": "Berlin","canton": "BE","employment_type": "full-time","remote_option": "hybrid","salary_text": "50.500 € - 67.400 €/Jahr","requirements": ["MS Office", "IT", "Informatik", "Englisch", "Anforderungsmanagement"],"company_benefits": ["Entwicklungsmöglichkeiten", "Homeoffice", "Weiterbildungsmaßnahmen"],"posted_at": "2026-08-31","expires_at": "2026-09-11","source_url": "https://jobs.meinestadt.de/berlin/premium?id=100013577384","source_platform": "meinestadt.de","country": "DE","scraped_at": "2026-09-05T10:00:00.000Z"}
Download the dataset as JSON, CSV, Excel, HTML, or XML from the Storage tab or the Apify API.
Use cases
- Job-market monitoring — track new listings for a role and city combination over time.
- Recruiting research — see which companies are hiring, where, and at what salary.
- Salary benchmarking — compare
salary_textacross companies and cities for the same role. - Listing tracking — use
directUrlsto watch specific job postings for changes or expiry.
How it works
- Search — each keyword in
searchQueries(orsearchQuery) is combined withcityinto a MeineStadt.de search URL. - Paginate — the scraper walks result pages (5 jobs per page) until
maxResultsPerQueryis reached or the site runs out of results for that keyword. - Deduplicate — jobs already seen (by ID) are skipped, both within a keyword and across keywords.
- Enrich (optional) — with
includeDetailson, each job's own page is fetched for the full description, requirements, benefits, and company info. - Rows stream to the dataset, capped by
maxResultsif set.
How much does it cost to scrape MeineStadt.de?
This actor is pay per result, with two events depending on how much data is fetched per job.
| Event | Price per event | Price per 1,000 |
|---|---|---|
| Job (SERP data) | $0.00099 | $0.99 |
| Job detail (full description, salary, requirements, benefits) | $0.00499 | $4.99 |
Every saved job charges the Job event once. If includeDetails is on (the default) and the detail page was fetched successfully, the Job detail event is also charged for that job. Turn includeDetails off for a fast, cheap title/company/salary-only scan. Apify's monthly free platform usage covers small runs.
How to scrape MeineStadt.de
- Click Try for free and sign in to Apify.
- Enter one or more search keywords in
searchQueries, and optionally a city. - Set maxResultsPerQuery (start low, e.g. 20-50) and toggle Fetch full job details as needed.
- Click Start, then watch rows appear in the Output tab.
- Export from Storage, or pull results via the API.
Run it via API
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("parsebird/meinestadt-de-jobs-scraper").call(run_input={"searchQueries": ["Pflege"],"city": "Berlin","maxResultsPerQuery": 50,})for job in client.dataset(run["defaultDatasetId"]).iterate_items():print(job["title"], "-", job["company"], "-", job.get("salary_text"))
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('parsebird/meinestadt-de-jobs-scraper').call({searchQueries: ['Software Engineer'],city: 'Hamburg',maxResultsPerQuery: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Schedule recurring runs, add webhooks, or push results to Google Sheets, Slack, Zapier, and Make with Apify integrations.
FAQ
Do I need a MeineStadt.de account or API key? No. The scraper reads public MeineStadt.de search and job pages only. MeineStadt.de has no public search API — this actor is the alternative.
Why does radius have no effect?
MeineStadt.de's own city job pages already blend listings from the city and its surrounding area by default, and the site doesn't expose a separate radius query parameter to widen or narrow that. The input is kept for compatibility with other job-scraper schemas.
Why is canton sometimes missing?
canton is resolved from the job's postal code first, then from the city name, using standard German postal-code and city-to-state mappings. If neither is available or recognized, it's left empty rather than guessed.
Why is my city returning jobs from all over Germany?
MeineStadt.de silently falls back to nationwide results for a city slug it doesn't recognize, instead of returning an error. Spell out umlauts (Muenchen or München, not Munchen) — the actor's run log will warn you if this fallback is detected.
What does apply_url point to?
The "Jetzt bewerben" (apply) button on MeineStadt.de is a JavaScript action rather than a plain link, so the underlying employer application URL isn't present in the page's HTML. apply_url points to the MeineStadt.de job page itself, where that button lives.
What proxy do I need? Apify's UNBLOCKER proxy group, which is set as the default. MeineStadt.de is protected by Akamai and blocks both datacenter and residential Apify proxies outright.
Can I get results as CSV or Excel? Yes. Use the Export button on the dataset, or request a specific format via the Apify API.
Something's not working. Open an issue on the Issues tab with your input and the run link — we respond quickly.
Is it legal to scrape MeineStadt.de?
MeineStadt.de job listings are public information that any visitor can see without logging in. Scraping publicly available pages is legal in most jurisdictions, and this actor does not access private data or bypass any login. You are responsible for how you use the data — follow MeineStadt.de's Terms of Use and applicable data-protection law, and consult a lawyer if you are unsure. See Apify's guide on the legality of web scraping.
Related actors
- Arbeitsagentur Scraper — job listings from Germany's federal employment agency.
- Xing Jobs Scraper (Deutsch) — jobs from Xing, Germany's professional network.
- Jobware.de Job Scraper — listings from the German job board Jobware.de.
- Indeed Jobs Scraper — jobs from Indeed across 60+ countries, including Germany.
Browse all ParseBird actors on Apify Store.