MeineStadt.de Jobs Scraper avatar

MeineStadt.de Jobs Scraper

Pricing

from $0.69 / 1,000 jobs

Go to Apify Store
MeineStadt.de Jobs Scraper

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

ParseBird

Maintained by Community

Actor 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

ParameterTypeRequiredDefaultDescription
searchQueriesarrayNoOne or more search keywords. Each runs as a separate search; results are deduplicated across keywords.
searchQuerystringNoA single search keyword (backward compatible). Ignored if searchQueries is set.
citystringNoCity to search in, e.g. Berlin or Munchen. Leave empty for all of Germany.
radiusintegerNo30Accepted 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.
maxResultsPerQueryintegerNo100Maximum results per keyword, deduplicated. MeineStadt.de returns 5 results per page, paginated automatically.
maxResultsintegerNo0Total cap across all keywords combined. 0 = unlimited (each keyword still capped by maxResultsPerQuery).
includeDetailsbooleanNotrueFetch full job descriptions, salary, requirements, and benefits from each detail page. Slower but much richer.
directUrlsarrayNoDirect MeineStadt.de job URLs to scrape, bypassing search — for monitoring specific listings.
proxyConfigurationobjectNoUNBLOCKERApify 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

FieldDescription
idUnique job identifier
titleJob title
companyCompany name
locationJob location (city)
cantonGerman state code (BW, BY, BE, …), resolved from the job's postal code or city
company_logo_urlCompany logo image URL
search_queryWhich search keyword found this job

Job details

FieldDescription
employment_typefull-time, part-time, contract, apprenticeship, or internship
workload_min / workload_maxWork percentage (0-100%); populated when the listing states a single, unambiguous workload
remote_optionremote, hybrid, or onsite (inferred from stated benefits and description text)
salary_textSalary as displayed, e.g. 47.715 € - 58.055 €/Jahr
description_snippetFirst 500 characters of the job description
description_fullComplete job description (only with includeDetails)
requirementsRequired skills (array)
company_benefitsBenefits offered (array)
company_descriptionAbout the company (only with includeDetails, when the listing includes one)

Application & metadata

FieldDescription
apply_urlThe MeineStadt.de job page where the "Jetzt bewerben" (apply) action lives
posted_at / expires_atPublication and expiration dates (ISO 8601)
source_urlOriginal job posting URL on MeineStadt.de
source_platformmeinestadt.de
countryDE
scraped_atScraping 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_text across companies and cities for the same role.
  • Listing tracking — use directUrls to watch specific job postings for changes or expiry.

How it works

  1. Search — each keyword in searchQueries (or searchQuery) is combined with city into a MeineStadt.de search URL.
  2. Paginate — the scraper walks result pages (5 jobs per page) until maxResultsPerQuery is reached or the site runs out of results for that keyword.
  3. Deduplicate — jobs already seen (by ID) are skipped, both within a keyword and across keywords.
  4. Enrich (optional) — with includeDetails on, each job's own page is fetched for the full description, requirements, benefits, and company info.
  5. Rows stream to the dataset, capped by maxResults if 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.

EventPrice per eventPrice 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

  1. Click Try for free and sign in to Apify.
  2. Enter one or more search keywords in searchQueries, and optionally a city.
  3. Set maxResultsPerQuery (start low, e.g. 20-50) and toggle Fetch full job details as needed.
  4. Click Start, then watch rows appear in the Output tab.
  5. Export from Storage, or pull results via the API.

Run it via API

Python:

from apify_client import ApifyClient
client = 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.

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.

Browse all ParseBird actors on Apify Store.