
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape meinestadt.de job listings by keyword and city, or from job and search URLs. Get title, company, location and state, salary, working hours, dates, the full description, requirements, benefits, address and contact person.
Scrape job listings from meinestadt.de, the German regional job portal, by keyword and city. Get the title, company, city and federal state, salary with parsed min and max, working hours, posting and expiry date, plus the full description, requirements, benefits, address and contact person. No login, no browser, pay only for the jobs you get.
salary_min, salary_max, currency and period, and whether the salary is stated or estimated by the site.Pflege, Elektriker, Software Engineer).Berlin, München, Köln) or a federal state (Bayern), or leave it empty for all of Germany.You can also paste meinestadt.de job URLs (to monitor specific listings) or search URLs copied from your browser.
| Field | What it does |
|---|---|
searchQueries | Keywords, one search each; jobs found by several keywords are saved once |
city | German city, district or state; empty means all of Germany |
directUrls | meinestadt.de job pages or search pages |
maxResults | Jobs to save in total (0 = no limit) |
includeDetails | Open each job page for the full details (on by default) |
radius | Kilometres around the city (0 to 200, site default 30) |
category | One meinestadt.de job category, e.g. healthcare, it, trades |
postedWithinDays | Only jobs posted in the last N days |
maxResultsPerQuery | Optional cap per keyword |
sortBy | newest (default) or relevance |
partnerListings | auto (default: kept in list mode, skipped with full details), include or skip |
{
"searchQueries": ["Pflege", "Altenpfleger"],
"city": "Hamburg",
"radius": 30,
"maxResults": 100,
"includeDetails": true,
"postedWithinDays": 7
}
| Field | Description |
|---|---|
title, company | Job title and employer |
location, state, canton | City, federal state and its code (BY, NW, BE, ...) |
postal_code, street_address | Workplace address (job pages) |
salary_text, salary_min, salary_max, salary_currency, salary_period, salary_source | Salary as shown and parsed; estimated when the site estimates it |
employment_type, employment_types, workload_min, workload_max | Full-time, part-time, mini-job, ... |
job_type, qualification_level, experience, contract_duration, industry, company_size | Quick facts from the job page |
description_full, description_snippet | Full description (headings and bullet lists kept) and its first 500 characters |
requirements, company_benefits, tags | Skills, benefits, and all tags shown on the listing |
posted_at, expires_at | Posting and expiry date |
contact_raw, contact_salutation, contact_firstname, contact_lastname, contact_phone, apply_email | Contact person and details when the job lists them |
company_url, company_profile_url, company_logo_url, company_description | Company website, meinestadt.de employer page, logo, about text |
top_listing, listing_type | Promoted (premium) listing; premium, standard or partner |
source_url, apply_url | The job on meinestadt.de |
has_details | True when the job page was read |
Example row (from a test run; description trimmed, contact person replaced with a fictional one):
[
{
"id": "ms-100015892839",
"job_id": "100015892839",
"title": "Test Engineer (m/w/d) Platform & Integration",
"company": "berg-it Projektdienstleistungen GmbH",
"location": "Nürnberg",
"canton": "BY",
"state": "Bayern",
"postal_code": "90489",
"street_address": "Äußere Sulzbacher Straße",
"job_status": "online",
"top_listing": true,
"listing_type": "premium",
"employment_type": "full-time",
"employment_types": [
"full-time"
],
"workload_min": 100,
"workload_max": 100,
"remote_option": "hybrid",
"salary_text": "44.200 € - 58.400 €/Jahr",
"salary_min": 44200,
"salary_max": 58400,
"salary_currency": "EUR",
"salary_period": "year",
"salary_source": "estimated",
"description_snippet": "Du stellst die Betriebs-, Integrations- und Qualitätssicherungsfähigkeit zentraler Test- und On-Premise-Landschaften der TAX-Plattform sicher. Du übernimmst ...",
"description_full": "- Du stellst die Betriebs-, Integrations- und Qualitätssicherungsfähigkeit zentraler Test- und On-Premise-Landschaften der TAX-Plattform sicher.\n- Du übernimmst die technische Betreuung und kontinuierliche Weiterentwicklung der Testplattformen.\n- Du führst Build- und Einspeicherprozesse durch und stellst deren zuverlässigen Ablauf sicher.\n- Du administrierst CTS- und DAF-Testumgebungen und sorgst ...",
"requirements": [
"DaF",
"CTS",
"Berufsausbildung",
"Zuverlässigkeit",
"Verantwortungsvolle Arbeitsweise"
],
"company_benefits": [
"Homeoffice",
"Jahressonderzahlungen",
"Kantine",
"Betriebliche Altersvorsorge",
"Weiterbildungsmaßnahmen"
],
"tags": [
"DaF",
"CTS",
"Berufsausbildung",
"Zuverlässigkeit",
"Verantwortungsvolle Arbeitsweise",
"Selbstständige Arbeitsweise"
],
"job_type": "Festanstellung",
"qualification_level": "Akademiker",
"experience": "Mehrjährige Berufserfahrung",
"contract_duration": "Befristet",
"start_date": "02.11.2026",
"industry": "Vermittlung & Überlassung von Arbeitskräften",
"company_size": "zwischen 6 und 50 Mitarbeiter",
"posted_at": "2026-10-21T00:00:00Z",
"posted_at_text": "21.10.2026",
"expires_at": "2026-12-20T00:00:00Z",
"source_url": "https://jobs.meinestadt.de/nuernberg/premium?id=100015892839",
"source_platform": "meinestadt.de",
"contact_salutation": "Frau",
"contact_firstname": "Anna",
"contact_lastname": "Beispiel",
"contact_phone": null,
"contact_raw": "Frau Anna Beispiel",
"contact_address": "berg-it Projektdienstleistungen GmbH, 90489 Nürnberg, DE",
"apply_url": "https://jobs.meinestadt.de/nuernberg/premium?id=100015892839",
"apply_email": null,
"reference_number": null,
"company_url": "https://www.berg-it-gmbh.de/",
"company_profile_url": "https://jobs.meinestadt.de/deutschland/arbeitgeber/3485",
"company_description": "Wir bieten Dir spannende Projekte im Rahmen der Festanstellung oder Arbeitnehmerüberlassung (mit Übernahmeoption) bei renommierten Unternehmen - werde Teil ...",
"company_logo_url": "https://img.meinestadt.de/images/68d21b5415.jpg",
"country": "DE",
"has_details": true,
"search_query": null,
"search_location": "Bayern",
"scraped_at": "2026-10-21T20:08:32Z"
}
]
Pay per job saved, with no start fee:
Platform usage (compute and proxy traffic) is billed on top and is small. On our test runs at the default 512 MB it came to about $0.07 per 1,000 jobs with details and about $0.02 per 1,000 list-only jobs.
Example: 1,000 jobs with full details ≈ $6.07 in total; 1,000 jobs list-only ≈ $2.52.
Is it legal to scrape meinestadt.de? The actor reads only public job listings that anyone can see without an account. You are responsible for how you use the data, including personal data such as contact names, under the GDPR.
Do I need a login or a proxy? No login. The default datacenter proxy works; the run switches to German residential proxies by itself if the site starts refusing requests, and slows down when the site is busy.
How many jobs can I get? As many as meinestadt.de serves. The site pages through at most 1,000 jobs per search, so a Germany-wide keyword search is split over 40 big cities (100 km radius each) and three sort orders, and a search without keyword is split by job category. In our tests a Germany-wide search reached 6,258 distinct jobs list-only and 4,770 with full details; use several cities or keywords for more.
Why are some fields empty? Employers fill different parts of a listing. Salary, contact person, address and company website appear only when the listing has them. With details turned off, only the search-result fields are filled.
What are partner listings?
meinestadt.de also shows jobs from partner job boards that link away to the partner site. They have no meinestadt.de job page, so they only have the search-result fields. With partnerListings: auto they are kept in list mode and skipped when full details are on; choose include or skip to decide yourself. They are charged at the search-result price.
Can I schedule it or use the API? Yes. Schedule runs in the console, or start them through the API and read the dataset as JSON, CSV or Excel.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch keywords
Job titles, skills or companies, one per line, e.g. Pflege, Elektriker, Software Engineer. Each keyword is a separate search; jobs found by several keywords are saved once. Leave empty to list every job in the city or category.
citystringOptionalCity
German city, district or federal state, e.g. Berlin, München, Köln, Hamburg-Altona or Bayern. Leave empty to search all of Germany.
directUrlsarrayOptionalJob or search URLs
meinestadt.de job pages (https://jobs.meinestadt.de/berlin/standard?id=260196112 or .../premium?id=...) for monitoring specific listings, or search pages copied from your browser (https://jobs.meinestadt.de/hamburg/suche?words=Pflege).
maxResultsintegerOptionaldefault 20Max results
Maximum number of jobs to save across all keywords. 0 means no limit. meinestadt.de pages through at most 1,000 jobs per search, so larger searches are split by federal state and job category automatically.
includeDetailsbooleanOptionaldefault trueInclude full job details
Open each job page for the full description, requirements, benefits, exact address, contact person, company website and expiry date. Turn off for a faster, cheaper list with title, company, location, salary, working hours, date and tags from the search results.
radiusintegerOptionalRadius (km)
Search radius around the city in kilometres (0 to 200, the site's range). Empty uses the site default of 30 km. Ignored for all of Germany and for federal states.
categoryenumOptionalJob category
Only jobs in this meinestadt.de job category (Berufsfeld). Empty means every category.
postedWithinDaysintegerOptionalPosted within (days)
Only jobs posted in the last N days, e.g. 7. Empty or 0 means any date.
maxResultsPerQueryintegerOptionalMax results per keyword
Optional cap per keyword (and per city), so one broad keyword cannot use up the whole limit. Empty or 0 means no per-keyword cap.
sortByenumOptionaldefault "newest"Sort by
Newest first uses the site's date order; Most relevant keeps the site's default ranking.
partnerListingsenumOptionaldefault "auto"Partner listings
meinestadt.de also shows jobs from partner job boards that link away to the partner site. They have no meinestadt.de job page, so they carry only the search-result fields (title, company, location, date, working hours, salary, tags) and are charged at the search-result price. Auto keeps them when full details are off and skips them when full details are on.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work for meinestadt.de; the run switches to German residential proxies by itself if the site starts refusing requests.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | string | null | |
| job_id | string | null | |
| title | string | null | |
| company | string | null | |
| location | string | null | |
| canton | string | null | |
| state | string | null | |
| postal_code | string | null | |
| street_address | string | null | |
| job_status | string | null | |
| top_listing | boolean | null | |
| listing_type | string | null | |
| employment_type | string | null | |
| employment_types | array | null | |
| workload_min | number | null | |
| workload_max | number | null | |
| remote_option | string | null | |
| salary_text | string | null | |
| salary_min | number | null | |
| salary_max | number | null | |
| salary_currency | string | null | |
| salary_period | string | null | |
| salary_source | string | null | |
| description_snippet | string | null | |
| description_full | string | null | |
| requirements | array | null | |
| company_benefits | array | null | |
| tags | array | null | |
| job_type | string | null | |
| qualification_level | string | null | |
| experience | string | null | |
| contract_duration | string | null | |
| start_date | string | null | |
| industry | string | null | |
| company_size | string | null | |
| posted_at | string | null | |
| posted_at_text | string | null | |
| expires_at | string | null | |
| source_url | string | null | |
| source_platform | string | null | |
| contact_salutation | string | null | |
| contact_firstname | string | null | |
| contact_lastname | string | null | |
| contact_phone | string | null | |
| contact_raw | string | null | |
| contact_address | string | null | |
| apply_url | string | null | |
| apply_email | string | null | |
| reference_number | string | null | |
| company_url | string | null | |
| company_profile_url | string | null | |
| company_description | string | null | |
| company_logo_url | string | null | |
| country | string | null | |
| has_details | boolean | null | |
| search_query | string | null | |
| search_location | string | null | |
| scraped_at | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Job (search results only) | One saved job with the search-result fields only (details off, or a partner listing without a job page). | $0.0025 |
| Job with full details | One saved job with the details from its job page (description, requirements, benefits, address, contact). | $0.006 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('openrole/meinestadt-scraper').call({
"searchQueries": [
"Software Engineer"
],
"city": "Berlin",
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run openrole/meinestadt-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=openrole/meinestadt-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
No examples yet
The developer hasn't published example inputs for this actor.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.