Wie unsere Jobdaten entstehen
Diese Seite beschreibt, wie eine Stellenanzeige bei uns zu Daten wird: woher sie kommt, wer welche Angabe behauptet, und wo wir schlicht nichts wissen. Sie ist bewusst prüfbar geschrieben. Jede Regel hier entspricht dem ausgelieferten Code, nicht einer Absicht.
Worum es hier geht
Beschrieben ist der aggregierte Stellenindex, der das Jobboard, die öffentlichen Schnittstellen und die Datensätze speist. Zwei Dinge stehen bewusst nicht hier: Rankings und Suchrelevanz, die eine Produktentscheidung sind, und die Coworking-Daten, die aus einer eigenen Quelle stammen.
Die öffentliche REST-API v2 ist unter /api/public/v2/jobs erreichbar und liefert Herkunft je Feld. Das MCP-Werkzeug get_job liefert denselben vollständigen Datensatz. Für strukturierte Suchabfragen verwendet search_jobs das v2-Modell; die vier einfachen Suchparameter allein behalten den v1-Vertrag.
Woher die Anzeigen kommen
Es gibt zwei Wege in den Index. Aggregierte Anzeigen holen wir aus öffentlichen Feeds: aus Bewerbermanagementsystemen von Arbeitgebern, aus Jobboards und aus Meta-Aggregatoren. Direkte Anzeigen stellen Arbeitgeber selbst bei uns ein. Der Unterschied ist keine Formalie, sondern entscheidet, was wir behaupten dürfen: bei einer eigenen Anzeige sprechen wir mit dem Arbeitgeber, bei einer aggregierten nur mit der Quelle. Wie viel Abstand zwischen Anzeige und Unternehmen liegt, sagt jede Anzeige über die Art ihrer Quelle mit.
| Art der Quelle | Was das bedeutet |
|---|---|
| ats | Bewerbermanagementsystem des Arbeitgebers. Der kürzeste Weg: die Anzeige steht dort, wo das Unternehmen sie selbst pflegt. |
| job_board | Jobboard. Die Anzeige wurde dort veröffentlicht, die Angaben stammen aus dem Board, nicht direkt aus dem Unternehmen. |
| aggregator | Meta-Aggregator. Die Anzeige hat vor uns bereits eine Sammelstelle durchlaufen, also mindestens eine Umschreibung mehr. |
| government | Behördliche Quelle. Derzeit ist keine aktiv, siehe den Abschnitt zur Bundesagentur. |
| unknown | Die Art der Quelle ist nicht eingeordnet. Wir raten sie nicht. |
Die Bundesagentur für Arbeit ist im August 2026 entfallen
Am 21. August 2026 haben wir die Bundesagentur für Arbeit als Quelle entfernt, aus rechtlichen Gründen und nicht wegen der Datenqualität. Der zuständige Fachbereich hat uns schriftlich bestätigt, dass die Jobsuche-Schnittstelle eine interne Schnittstelle ihrer eigenen App ist und das Auslesen von Anzeigen darüber nicht gestattet ist. Unabhängig davon räumen ihre Nutzungsbedingungen Nutzungsrechte an einer Anzeige nur der Bundesagentur selbst und den vom Arbeitgeber ausgewählten Kooperationspartnern ein. Wir waren nie ausgewählt, hielten also nie ein Recht, den Anzeigentext weiterzuveröffentlichen. Deshalb wurde die Quelle entfernt und nicht bloß aus dem Index genommen.
Das war ein Eingriff in die Menge, nicht in die Qualität. Wie groß der Bestand heute ist, steht weiter unten mit Stichtag. Eine Vorher-Nachher-Differenz nennen wir hier bewusst nicht, weil sie auf dieser Seite nicht nachprüfbar wäre. Geblieben sind vor allem Bewerbermanagementsysteme von Arbeitgebern und Jobboards, deren Bedingungen die Weitergabe tatsächlich decken. Ein späterer Kooperationsvertrag könnte die Quelle wieder öffnen, dann über eine dafür vorgesehene Schnittstelle.
Was wir nicht weitergeben dürfen
Einige Quellen erlauben die Anzeige auf unserer Seite mit Quellenangabe, verbieten aber die Weiterveröffentlichung darüber hinaus. Für sie geben wir weder den Anzeigentext noch die Bewerbungs-URL an Dritte weiter: beide Felder gehen leer hinaus. Eine Einschränkung gehört hierher, weil sie dem Rest dieser Seite widerspricht: ein aus Rechtsgründen zurückgehaltenes Feld sieht derzeit genauso aus wie ein Feld, das wir nie hatten. Wir geben keine Markierung aus, die beides unterscheidbar macht. Ein leerer Anzeigentext aus einer dieser Quellen darf also nicht als Arbeitgeber gelesen werden, der nichts geschrieben hat. Wer die Anzeige lesen will, findet sie auf ihrer Detailseite bei uns.
Wie die Arbeitsform bestimmt wird
Bei der Aufnahme entscheidet ein regelbasierter Klassifikator anhand strukturierter Signale. Er ist präzise, aber blind für Bedeutung: eine Stelle als "Remote Operations Producer" produziert entfernte Übertragungen und ist keine Remote-Stelle, und eine Vor-Ort-Stelle, deren Text das Wort remote nur erwähnt, sieht für Muster genauso aus. Deshalb liest darüber hinaus ein kleines Sprachmodell die vollständige Anzeige und gibt remote, hybrid oder vor Ort zurück.
Bei der Ausgabe haben widersprechende Angaben im aktuellen Anzeigentext Vorrang vor einem älteren Modellurteil. Verpflichtende Präsenz führt zur Einordnung als hybrid, auch bei seltenen Terminen oder einer Bedingung wie „hybrid in Pendeldistanz, remote außerhalb“. Rein freiwillige Bürobesuche sind keine Präsenzpflicht. Für das bestätigte Remote-Label braucht es zusätzlich ein Modellurteil mit ausreichender Sicherheit. Das ist eine automatische Einordnung, keine Zusage des Arbeitgebers und keine unabhängige manuelle Zertifizierung.
Die Arbeitsform und der erlaubte Arbeitsort werden getrennt behandelt. Eine ausdrücklich geforderte Residenz in Irland bleibt auf Irland beschränkt, auch wenn die Stelle zum EU-Bestand gehört. Eine breite Index-Einordnung allein belegt keine EU-weite oder weltweite Bewerbungsmöglichkeit. Unbekannte Angaben bleiben unbekannt. Diese Seite weist keine unabhängig validierte Fehlerquote des Klassifikators aus.
Wie ein Gehalt zustande kommt
Gehälter werden bei der Ausgabe in drei Stufen aufgelöst, in dieser Reihenfolge: die bei der Aufnahme gespeicherte Angabe, ein erneutes regelbasiertes Auslesen des aktuellen Textes, eine Extraktion durch ein Sprachmodell. Findet keine Stufe etwas, bleibt das Feld leer; einzige Ausnahme ist die unten beschriebene Minijob-Rechtsableitung, die keine Gehaltsangabe ist, sondern eine gesetzliche Obergrenze. Beim Auflösen setzen wir nie eine Grenze aus einer Stufe an eine Grenze aus einer anderen: jede Stufe wird als ganzes Paar genommen, denn Mischen könnte eine Spanne umkehren, etwa mindestens 5000 bei höchstens 4000. Ein Fall ist allerdings ehrlich zu benennen. Bei der Aufnahme wird jede Grenze einzeln gefüllt, eine Quelle kann also die Untergrenze liefern und unser eigenes Lesen des Textes die Obergrenze. Dieses gemischte Paar wird gespeichert und später als eine einzige Stufe behandelt, und wir schreiben die ganze Spanne unserer eigenen Extraktion zu. Das untertreibt die Quelle, statt ihr eine Zahl in den Mund zu legen, die sie nie genannt hat.
| Herkunft | Was sie besagt |
|---|---|
| source_structured | Die Quelle hat das Gehalt als strukturiertes Feld geliefert. Eine fremde Behauptung, die der Arbeitgeber bestreiten könnte, aber keine von uns. |
| nomado24_extracted | Wir haben die Zahl aus dem Anzeigentext gelesen, per Regel oder Modell. Unsere Lesart, als unsere ausgewiesen, auch wenn wir sicher sind. |
| legal_derivation | Aus einer benannten Rechtsnorm abgeleitet. Bisher genau ein Fall: bei einem deutschen Minijob ist die gesetzliche Verdienstgrenze von 603 Euro im Monat auch die Gehaltsobergrenze, selbst wenn die Anzeige keine Zahl nennt. |
| unknown | Keine Herkunft feststellbar. Das umfasst auch alte Datensätze aus der Zeit vor der Herkunftsspalte: dass wir nicht mehr wissen, welche Stufe die Zahl gesetzt hat, ist kein Grund, sie der Quelle zuzuschreiben. |
Die abgeleitete Minijob-Grenze wird mit Regel-Kennung (de.minijob.monthly_earnings_ceiling), Fassung (2026-01) und Geltungsbeginn ausgeliefert, damit sie nachgerechnet oder verworfen werden kann. Die Grenze wird fast jährlich angehoben, deshalb wäre die Zahl ohne Fassung wertlos. Sie ist ausdrücklich kein Angebot des Arbeitgebers: ein Minijob darf jeden Betrag bis zu dieser Grenze zahlen. Alle Beträge sind auf Monatswerte in Euro normalisiert; welchen Zeitraum die Anzeige selbst genannt hat, etwa einen Stundensatz, wird separat mitgeliefert.
Die wichtigste Aussage zum Gehalt ist eine Leerstelle: die große Mehrheit der Anzeigen nennt überhaupt kein Gehalt. Wir füllen diese Lücke nicht mit Schätzungen, Branchenmittelwerten oder Spannen vergleichbarer Stellen.
Gehaltsherkunft über die öffentliche API prüfen
Die öffentliche API v2 und das MCP-Werkzeug get_job liefern salaryOrigin und die Herkunft der einzelnen Felder. Ein Quellenfeld, eine Extraktion aus dem Text und eine gesetzliche Ableitung sind verschiedene Angaben. Die historische Stichprobenverteilung vom August wird hier nicht weiter veröffentlicht; sie lässt sich aus dem damaligen aggregierten Stand nicht unter der aktuellen Quellenrichtlinie neu berechnen.
Für „Anzeigen mit genanntem Gehalt“ zählen source_structured und nomado24_extracted. legal_derivation ist ausdrücklich ausgeschlossen. Prüfe neben der Herkunft auch Zeitraum, Währung, Datenstand und Größe der Teilmenge. Die REST-API verwendet /api/public/v2/jobs?limit=25; limit gehört zu v2, per_page zu v1 und MCP.
Wie die Beschäftigungsform bestimmt wird
Wir führen zwei Vokabulare gleichzeitig. Das eine ist das grobe von schema.org, auf das Suchmaschinen filtern: Vollzeit, Teilzeit, Auftrag, Praktikum, befristet. Das andere ist das feinere, das Minijob, Werkstudent, Ausbildung, Praktikum, freie Mitarbeit, Auftrag, befristet, Teilzeit und Vollzeit unterscheidet. Seit dem 26. August 2026 fließen zuerst die strukturierten Angaben der Quelle selbst ein (etwa bei Personio), vereinigt mit unserer eigenen Ableitung. Die Herkunft wird für die Liste als Ganzes ausgewiesen, bewusst bescheiden: Nur wenn jede Form von der Quelle stammt, gilt sie als Quellen-Aussage, sonst als unsere Einordnung.
Beide werden vereinigt, nicht ersetzt; die feineren Formen stehen zuerst (quellengenannte vor unseren abgeleiteten), dann schema.org. Der Grund ist der Teilzeit-Eimer von schema.org: er kann einen Minijob nicht von einer Werkstudentenstelle und nicht von gewöhnlicher Teilzeit unterscheiden. Würden wir ihn durch unsere Form ersetzen, verlöre jeder, der auf Teilzeit filtert, genau diese Anzeigen. Weil beide Werte anliegen, findet ein Filter auf Teilzeit sie weiterhin, und wer Minijob meint, kann Minijob sagen. Umgekehrt fasst schema.org Auftrag und freie Mitarbeit zu einem Wert zusammen; diese Unterscheidung erfinden wir dort nicht hinein, wo sie nie getroffen wurde.
Eine leere Liste heißt: nicht bestimmt. Sie heißt nicht, dass keine Beschäftigungsform zutrifft.
Aktualität und Prüfung
Fünf Zeitangaben, die gern verwechselt werden. Sie sagen bewusst Verschiedenes, und nur eine davon ist eine Angabe des Arbeitgebers.
| Feld | Was es bedeutet |
|---|---|
| publishedAt | Veröffentlichungsdatum, wie es die Quelle nennt. Nennt sie keines, fehlt das Feld. Wir setzen dann nicht das Datum ein, an dem wir die Anzeige gefunden haben. |
| firstSeenAt | Wann wir die Anzeige zum ersten Mal gesehen haben. Eine Beobachtung von uns, keine Angabe des Arbeitgebers. |
| lastVerifiedAt | Wann wir sie zuletzt geprüft haben, immer zusammen mit der Methode: entweder haben wir die Original-URL abgerufen und eine Antwort bekommen, oder die Anzeige stand noch im Feed. Beide sind echte Belege, und der schwächere wird nie als der stärkere ausgegeben. Ein Abruf, der ins Leere lief, also eine Zeitüberschreitung, ein Serverfehler, eine Sperre oder eine Bot-Schranke, zählt nicht als Abruf: Die Anzeige fällt dann auf die Feed-Präsenz zurück, mitsamt deren Zeitstempel. Wo hier der Abruf genannt wird, hat also tatsächlich jemand geantwortet. |
| updatedAt | Wann sich die ausgelieferte Darstellung zuletzt geändert hat, etwa Titel, Text, Firma oder Gehalt. Ein erneutes Sichten allein ist keine Änderung, sonst wäre alle vier Stunden der gesamte Bestand "geändert". |
| expiresAt | Ende eines rollierenden Gültigkeitsfensters von 30 Tagen ab der letzten Sichtung, oder ein früheres Enddatum, wenn die Quelle eines nennt. Meist also unsere Frist und keine Bewerbungsfrist des Arbeitgebers. |
Wie eine Anzeige nachgeprüft wird
Breite Aggregatoren geben eine Anzeige oft weiter, nachdem die Stelle beim Arbeitgeber längst besetzt ist. Sie bleibt dann im Feed sichtbar und würde nie veralten, während ihr Bewerbungslink schon tot ist. Deshalb rufen wir die Original-URLs aktiver Anzeigen aktiv ab, älteste Prüfung zuerst, in Portionen und mit einem Abstand von mindestens zwölf Stunden pro Anzeige. Nur 404 und 410 gelten als eindeutig weg und beenden die Anzeige. Zeitüberschreitungen, Serverfehler, Sperren und Bot-Schranken gelten als unklar, und unklar heißt behalten. Eine offene Stelle wegen einer kurzen Störung zu löschen wäre der teurere Fehler. Diese Entscheidung hat einen Preis, aber er landet nicht beim Zeitstempel oben: Ein unklarer Abruf hält die Anzeige am Leben, gilt aber nicht als Bestätigung. Wir halten zu jeder Prüfung fest, was sie ergeben hat, und nur ein Abruf mit Antwort wird oben als Abruf ausgewiesen. Alles andere fällt auf die Feed-Präsenz zurück. Eine Anzeige hinter einer Bot-Schranke sieht deshalb nicht frisch bestätigt aus. Anzeigen ohne abrufbare Original-URL nehmen an dieser Prüfung gar nicht erst teil, statt als geprüft zu gelten, ohne dass je eine Anfrage rausging.
Die Aufnahme läuft alle vier Stunden, und jede Fahrt aktualisiert Sichtungen, prüft Links und beendet Abgelaufenes. Vier Stunden sind allerdings der Takt des Jobs, keine Zusage über das Erscheinen. Jede Quelle hat zusätzlich ihren eigenen Mindestabstand zwischen zwei Abrufen und wird übersprungen, bis dieser verstrichen ist: 6 Stunden bei Remotive, 24 Stunden bei Adzuna. Eine Anzeige, die kurz nach dem letzten Abruf ihrer Quelle online geht, wartet also auf die nächste Fahrt, in der diese Quelle fällig ist, und das kann deutlich länger sein als ein Fenster.
Der Kern: Nichtwissen wird ausgewiesen
Die Regel, aus der alles Übrige folgt, lautet: Fehlend ist besser als geraten. Wo wir eine Angabe nicht haben, bleibt das Feld leer, und die Leere ist die Aussage. Wo wir eine Angabe haben, sagen wir dazu, wer sie behauptet. Das Datenmodell führt das pro Feld, nicht pro Anzeige: zu einem nicht selbsterklärenden Feld gehört ein Herkunftseintrag mit Art, Quelle, Beobachtungszeitpunkt, Methode und Fassung der Methode. Damit kann jeder selbst entscheiden, wie viel ihm ein Wert wert ist, anstatt einer Gesamtnote von uns zu vertrauen.
| Art der Herkunft | Bedeutung |
|---|---|
| employer_fact | Der Arbeitgeber hat es selbst angegeben. Vorgesehen für unsere eigenen Anzeigen. Die aggregierte Ausgabe verwendet diese Art derzeit nicht, weil dort niemand direkt mit uns gesprochen hat. |
| source_fact | Die Quelle hat es angegeben. Eine fremde Behauptung, der der Arbeitgeber widersprechen könnte. |
| nomado24_classification | Wir haben es abgeleitet, per Regel, Heuristik oder Modell. Unsere Lesart, als unsere gekennzeichnet. |
| legal_derivation | Es folgt aus einer benannten Rechtsnorm, die mit Kennung, Fassung und Geltungsbeginn mitgeliefert wird. |
Eine Zusicherung geben wir ausdrücklich nicht: dass zu jedem Wert eine Herkunft feststellbar ist. Bei einem kleinen Teil der Anzeigen, meist aus der Zeit vor der Herkunftsspalte, liegt ein Gehalt an und die Herkunft lautet unbekannt. Wir zeigen dann beides, den Wert und das Eingeständnis. Die Alternativen wären, die Zahl zu verschweigen oder ihr eine Stufe anzudichten, die sie vielleicht nie gesetzt hat, und beide sind schlechter.
Eine Herkunft wird niemals aufgewertet. Ein Wert, den wir aus einem Text gelesen haben, bleibt unsere Einordnung, auch wenn wir sehr sicher sind. Sicherheit ist keine Herkunft, und die Verwechslung der beiden ist genau der Trick, den diese Seite verhindern soll.
Konkret heißt das eine Reihe von Dingen, die wir bewusst nicht tun:
- Wir ordnen keine Berufskategorie zu, auch dort nicht, wo eine Quelle eine eigene nennt (Personio liefert eine): ohne quellenübergreifendes Vokabular wäre jede Zuordnung erfunden. Eine leere Kategorienliste ist ehrlicher.
- Wir leiten aus "Deutschland" keine Region wie DACH oder EWR ab. Dass eine Stelle in Deutschland sitzt, sagt nicht, dass der Arbeitgeber eine Bewerbung aus Österreich annimmt. Eine leere Regionsliste heißt nicht bestimmt, nie nicht zugelassen.
- Wir lesen keine Stadt und keine Region aus dem Ortshinweis heraus, und bei einem mehrländrigen Geltungsbereich nennen wir kein stellvertretendes Land.
- Wir behaupten nicht, ob ein Gehalt brutto oder netto gemeint ist. In Deutschland ist brutto üblich, aber keine unserer Quellen sagt es maschinenlesbar.
- Wir liefern zu einem gefundenen Gehalt keine Textstelle mit. Wir behalten sie nicht, und eine zu rekonstruieren wäre erfundener Beleg.
- Wir veröffentlichen keine Modell-Zusammenfassung, deren Text sich seither geändert hat. Sie wäre eine Aussage über eine Anzeige, die es so nicht mehr gibt.
- Wir behandeln ein Unternehmen als Namen, nicht als geprüfte Rechtsperson. Wer über zwei Systeme unter zwei Schreibweisen ausschreibt, erscheint zweimal, und wir behaupten nichts anderes.
Abdeckung, mit Stichtag
Die folgenden Werte stammen aus dem öffentlichen Statistik-Datensatz zum genannten Zeitpunkt. Gezählt werden aktive Indexeinträge aus zur Veröffentlichung zugelassenen Quellen. Dies ist eine Beschreibung dieses Quellenbestands, keine repräsentative Marktstichprobe und keine Genauigkeitsmessung des Klassifikators.
Stand:
| Kennzahl | Wert |
|---|---|
| Aktive Anzeigen im Index | 14.656 |
| mit gespeichertem Gehalt (öffentlicher Datensatz) | 9,7 % |
| vollständig remote (Spalte aus der Aufnahme) | 38,2 % |
| hybrid (Spalte aus der Aufnahme) | 61,8 % |
| mit Geltungsbereich Deutschland | 48,5 % |
| in den letzten sieben Tagen erstmals gesehen | 21,3 % |
Wie diese Zahlen zu lesen sind
- Dies ist eine datierte Momentaufnahme. Der verlinkte Datensatz liefert inzwischen möglicherweise neuere Werte und ersetzt diese historische Messung nicht.
- Remote und hybrid beziehen sich auf die bei der Erfassung gespeicherte Spalte. Die Einordnung auf der Jobseite kann nach Modellprüfung und aktuellen Textsignalen abweichen. Daraus folgt keine pauschale Richtung oder Größe der Abweichung.
- Gezählt werden Anzeigen, nicht Arbeitgeber. Erstmalige Erfassung innerhalb von sieben Tagen ist keine Aussage über das Alter einer Stelle oder die Zahl neuer Jobs im Gesamtmarkt.
- Gehaltsabdeckung zählt plausible gespeicherte Quell- oder Extraktionswerte im zulässigen Index. Eine erst bei der Ausgabe abgeleitete Minijob-Grenze erhöht diese Quote nicht. Die Perzentile beziehen sich nur auf Anzeigen mit Gehaltswerten.
Datensatz zum Nachrechnen: www.nomado24.com/remote-jobs-statistik.json
Zur Statistikseite mit tagesaktuellen Zahlen
Wenn etwas falsch ist
Wenn eine Anzeige eine Angabe trägt, die nicht stimmt, wollen wir das wissen, und zwar mit der Adresse der Detailseite. Bei einer aggregierten Anzeige können wir die Quelle nicht korrigieren, aber wir können die Anzeige beenden oder unsere Einordnung berichtigen. Fehler in der Einordnung sind uns lieber gemeldet als unentdeckt: eine Methodik ist nur so gut wie ihre Korrekturschleife.
Kontakt: anton.petuchow@nomado24.de
