Hiring Companies Germany – Employers with Contact Data avatar

Hiring Companies Germany – Employers with Contact Data

Pricing

from $5.00 / 1,000 companies

Go to Apify Store
Hiring Companies Germany – Employers with Contact Data

Hiring Companies Germany – Employers with Contact Data

Job and place in, one row per company that is hiring for it out: open positions, job titles and locations from the Jobbörse of the Bundesagentur für Arbeit, plus the company's own website and the contact data of its legal notice (Impressum), confirmed by the company's name on that page.

Pricing

from $5.00 / 1,000 companies

Rating

0.0

(0)

Developer

Perceptron Data

Perceptron Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Features

Limited permissions

Share

Hiring Companies Germany

Give a job and a place, get one row per company that is hiring for it: open positions, job titles and locations from the Arbeitsagentur Jobbörse, plus the company's own website and the contact data of its legal notice (Impressum) – a website counts only when that page names the company.

Limits: only companies that advertise on the Jobbörse of the Bundesagentur für Arbeit, read through the JSON interface of the Jobbörse's own app, which is not offered to third parties and can change at any time. The ads name the employer, never its website: the website is searched and confirmed by its legal notice, and 29 % of the companies in our platform test got none (each such row says what was checked). For another 16 % only the website of the company's group was found – the parent or a sister company – and the row says so. Temp agencies and private recruiters are left out by default.

Company (open positions)WebsiteStatusFrom the legal noticeVAT ID (VIES)
Deutsche Bahn AG (13)deutschebahn.comconfirmedDeutsche Bahn AG, Berlinvalid
Miele VG Deutschland KG (3)miele.deconfirmedMiele Vertriebsgesellschaft Deutschland KG, Güterslohvalid
Enpal Fulfillment B.V. (5)enpal.degroupEnpal B.V., Berlin – the parent, said as suchvalid

Electricians around Berlin, platform run of 30 October 2026: 40 companies in 214 seconds. miele.de refused automated requests and was read through Apify's Web Fetch; the ads named neither Deutsche Bahn's nor Enpal's website.

What you are not charged for: temp and recruitment agencies that were left out, companies already in your list (listId), companies without contact data when onlyWithContact is on, and companies the run did not reach before your cost limit or its timeout (all counted in the run report OUTPUT). Rows of companies whose website could not be confirmed are charged – their status says so. Every run has a start fee of $0.01.

How to use – step by step

  1. Click Try for free on this page (a free Apify account is enough) – the form opens with "Elektriker" in Berlin.
  2. Enter a Job or keyword as you would type it into the Jobbörse (German terms find more: Pflegefachkraft, Steuerfachangestellte) and a Place – a town with umlauts (München), a postal code or a federal state (Bayern); leave the place empty for all of Germany.
  3. Set Maximum companies (default 10). The companies with the most open positions come first. Maximum job ads read (default 200) decides how many ads are read to find them – set it to at least ten times the companies you want.
  4. Click Start. The default run took 77 seconds on Apify (30 October 2026).
  5. Open the Output tab: the Hiring companies view shows open positions, job titles, places, website, its status, legal name, phone, e-mail and town; every other field is in the full rows. Export as CSV, Excel or JSON, or read the rows through the API.
  6. For a weekly list of companies that started hiring, set Ads published within the last N days to 7, give a List name and schedule the run weekly: each run then delivers only companies that were not in the list before.

What you get per company

FieldContent
company, openPositions, jobTitles, professions, locations, newestPosting, oldestPostingfrom the job ads of this search
website, websiteStatus, websiteSource, websiteEvidencethe website and why it is the company's (or its group's)
legalName, legalForm, street, postalCode, city, country, phone, email, faxfrom that website's legal notice
registerType, registerNumber, registerCourt, vatIdfrom the legal notice
vatStatus, vatValid, vatCheckedAtthe EU VAT ID checked in the EU's VIES register (Swiss UIDs cannot be checked there)
adEmails, adPhones, postedVia, jobUrlscontacts and links from the ads themselves
websiteCandidatesevery website that was checked, with its result
query, source, checkedAtyour search, the sources and the time of the check

websiteStatus – how sure is the website?

  • confirmed – the site's legal notice names the company itself (its legal name, or its name tied to a job location).
  • group – the legal notice names another company of the same group, e.g. the parent ("Apleona GmbH" for "Apleona Property Services GmbH"). The contact data are that company's – often the right switchboard, but not the employer's own address.
  • not_confirmed – websites were checked, none names the company; websiteCandidates lists them with the reason.
  • not_found – no candidate website: the ads carry no address, Wikidata has no entry and no domain built from the name exists.

How the website is found – and why it is checked

The Jobbörse names the employer as text only. A domain in an ad can belong to a job portal, a recruiter or the parent group; a domain built from the name can belong to a namesake in another town. So every candidate is read like an imprint check: the actor finds the site's legal notice and compares the company named there with the employer.

  1. Domains in the ads – e-mail addresses and links (job boards, applicant tracking systems and free mail left out).
  2. Wikidata – the official website of an entry with the company's name, then of the brand's entry (German, Austrian or Swiss companies only).
  3. Domains built from the name – only those that exist; first names, frequent surnames and words like "Montage" or "Klinikum" alone are never tried. Such a domain needs more than the name: the full legal name, a tie to a job location (postal code or town), or – for a group site – a group company whose name is part of the employer's.
  4. Sites this actor cannot read itself – they refuse automated requests, do not answer or draw their pages with JavaScript – are read once more through Apify's Web Fetch, after every other candidate was tried and only for sites the ads, Wikidata or the name point to (see costs below).

Measured, not assumed

Platform test on Apify, 30 October 2026 (build 0.2), the default settings otherwise:

SearchCompaniesOwn website confirmedGroup websiteWithoutRun time
Example run (empty input: Elektriker, Berlin)1053277 s
Elektriker, Berlin4025510214 s
Pflegefachkraft, München3015510148 s
Steuerfachangestellte, Hamburg3016410171 s
Mechatroniker, all of Germany201046128 s
Together13071 (55 %)21 (16 %)38 (29 %)

All runs succeeded; the rows came in the order of open positions. Apify's Web Fetch was called 65 times for these 130 rows (about $0.08 on our account) and brought back the website of 6 rows from sites that refused us or did not answer.

Every confirmed and group row of these runs was checked by hand (company ↔ legal notice ↔ domain); the wrong results found that way – a namesake's site taken as a group website, an insurer's name and address read from a tax adviser's legal notice – were fixed in this build. What still goes wrong, and is reported as such: sites that refuse every automated request even through Web Fetch, employers that are persons (a tax adviser, a practice), and groups whose legal notice names a company the ad does not mention.

Input example

{
"keyword": "Pflegefachkraft",
"location": "München",
"radiusKm": 25,
"maxCompanies": 30,
"maxJobs": 300,
"onlyWithContact": true
}

A weekly list of new companies hiring electricians in Bavaria:

{
"keyword": "Elektriker",
"location": "Bayern",
"publishedSince": 7,
"maxCompanies": 100,
"maxJobs": 1000,
"listId": "elektriker-bayern"
}

Output example

{
"company": "ELTEC Service GmbH",
"openPositions": 1,
"jobTitles": ["Elektriker / Elektroniker für Energie- und Gebäudetechnik (m/w/d)"],
"locations": ["10587 Berlin"],
"newestPosting": "2026-10-22",
"website": "https://www.eltec-berlin.de/",
"websiteStatus": "confirmed",
"websiteSource": "job_ad_email",
"websiteEvidence": "the site's legal notice names the company (same legal name)",
"legalName": "ELTEC Service GmbH",
"street": "Einsteinufer 63 - 65",
"postalCode": "10587",
"city": "Berlin",
"phone": "030 - 34 78 55",
"email": "info@eltec-berlin.de",
"registerNumber": "HRB 32288",
"registerCourt": "Berlin-Charlottenburg",
"vatId": "DE136750056",
"vatStatus": "valid",
"adEmails": ["hr@eltec-berlin.de"],
"jobUrls": ["https://www.arbeitsagentur.de/jobsuche/jobdetail/10001-1003897805-S"],
"websiteCandidates": [{"domain": "eltec-berlin.de", "source": "job_ad_email", "result": "confirmed"}],
"query": {"keyword": "Elektriker", "location": "Berlin", "radiusKm": 25, "excludeAgencies": true}
}

Shortened; from the platform run of 30 October 2026.

What does a run cost?

$0.01 per run start, then per stored company – cheaper on bigger Apify plans:

Your Apify planPer company
Free$0.01
Starter$0.0075
Scale$0.006
Business & Enterprise$0.005
Companies (Free plan)Cost
10$0.11
100$1.01
1,000$10.01
  • Every stored row is charged, including companies whose website could not be confirmed – websiteStatus says which. Switch on onlyWithContact to get (and pay for) only companies with contact data.

  • Temp agencies left out, companies already in your list and companies not reached are not charged; the run report OUTPUT counts them.

  • Web Fetch is billed by Apify, not by this actor. It runs on your Apify account: $0.0015 per delivered page on the free plan plus $0.00005 per call start (Apify Store, 13 October 2026), at most 6 pages per site and 2 sites per company. In our platform test of 30 October 2026 it came to about $0.0006 per company on average. webFetch: false switches it off; such sites then keep their reason in websiteCandidates.

  • If you set a maximum cost per run, the actor stops starting new companies when the limit is reached and says so in its status message.

Data & fair use

The job ads come from the JSON interface of the Jobbörse (Jobsuche API) of the Bundesagentur für Arbeit; company data come from the companies' own public legal notices, Wikidata and the EU's VIES service. This actor is not affiliated with or endorsed by the Bundesagentur für Arbeit. It reads at a polite request rate and never rotates IP addresses.

Names of managing directors, personal e-mail addresses (firstname.lastname@) and mobile numbers from the ads are left out unless includePersonNames is on. They are personal data under GDPR – you need a lawful basis to process them. For sole traders, the company name itself can be a person's name.

FAQ

Why does a company have no website? The ads name the employer, never its website. When no candidate's legal notice names the company, the row says not_confirmed and lists in websiteCandidates what was checked and why it did not fit – a guessed domain of a namesake is not passed off as the company's.

What does group mean for my outreach? The legal notice belongs to another company of the same group – usually the parent. Its phone number and address reach the group, not necessarily the hiring branch. websiteEvidence names that company.

How do I get only companies with contact data? Switch on onlyWithContact. Companies without a confirmed or group website then produce no row and cost nothing.

How do I get only new companies every week? Give a listId and schedule the run. Each run remembers the companies it delivered under that name and leaves them out next time.

Are temp agencies included? Not by default: ads of temporary work agencies (Zeitarbeit) and private recruiters are left out, so the rows are companies that hire for themselves. Switch excludeAgencies off to include them.

What happens with an input the actor cannot use? The run ends successfully with no rows, and its status message says what to change – a place the Jobbörse does not know, neither a keyword nor a place, a number field with text in it. Only the run start is charged. If the Jobbörse itself refuses or fails, the run fails, so a schedule notices.

Can I use it from an AI agent? Yes. The input has two text fields (keyword, location) and plain numbers; every row carries the search and the evidence for its website.

Changelog

  • 30 October 2026 – 0.2: group websites found through the brand's Wikidata entry and through group companies whose name is part of the employer's; Web Fetch only after every other candidate and only for the company's own domains; rows in the order of open positions; renamed companies confirmed through their Wikidata entry.
  • 27 October 2026 – 0.1: first private version.

Auf Deutsch: Firmen, die gerade einstellen – mit Kontaktdaten

Beruf und Ort rein, je einstellender Firma eine Zeile raus: offene Stellen, Stellentitel und Orte aus der Jobbörse der Bundesagentur für Arbeit, dazu die eigene Website der Firma und die Kontaktdaten aus ihrem Impressum – eine Website zählt nur, wenn ihr Impressum die Firma nennt.

Die Stellenanzeigen nennen den Arbeitgeber, nie seine Website. Der Actor sucht sie in den Anzeigen (E-Mail-Adressen, Links), in Wikidata und unter aus dem Namen gebildeten Domains und prüft jede Kandidatin über ihr Impressum. Nennt das Impressum eine andere Firma derselben Gruppe, heißt die Zeile group, nie confirmed. Zeitarbeit und private Vermittler fallen standardmäßig heraus; mit einem Listennamen (listId) liefert jeder Lauf nur Firmen, die vorher noch nicht dabei waren.

Ehrliche Grenzen: Im Plattformtest vom 30. Oktober 2026 bekamen 29 % der Firmen keine bestätigte Website; die Zeile nennt dann, was geprüft wurde. Seiten, die automatische Abrufe ablehnen, liest der Actor einmal über Apifys Web Fetch, das Apify auf Ihrem Konto abrechnet.

More from Perceptron Data

ActorWhat it does
Arbeitsagentur JobsKeyword and place in, one row per job out: employer, salary range, home office, location
Imprint & VAT CheckDomains in, company rows out: legal name, address, register number and EU VAT ID checked against VIES (Swiss UIDs excluded)
Free Imprint & Contact CheckThe same company row, free, for up to 10 websites per run
kununu Employer DataEmployer score vs. industry, salary ranges, benefits and reviews for DACH companies
Advertiser Check (Google & Bing)Company list in, one row per company out: Google ads, Bing ads, ad counts, accounts
Messe München ExhibitorsExhibitor lists of bauma, IFAT, BAU and more
Koelnmesse ExhibitorsExhibitor lists of Anuga, ISM, imm cologne and more
TED TendersEU public tenders and contract awards from TED

Support

Bug reports are welcome in the Issues tab.