länk / Projects / P1
Discovery & Blueprint
Project P1 · Public Job Board

Reale Vacancies.
Öffentlich auffindbar.

Eine serverseitig auslieferbare Public-Schicht für circa 5.000 Jobs – mit belastbarer Vacancy-Identität, anonymisierungsfähigen Jobdetailseiten und einem maschinenlesbaren Publishing Gate.

Angular SSRGoogle for JobsStructured DataIndexing LifecycleMatching Conversion
Projektauftrag

Outcome statt SEO-Experiment

P1 baut eine dauerhafte Akquisitions- und Publishing-Infrastruktur. Der Erfolg wird nicht an Textvarianten gemessen, sondern an korrekt publizierten Vacancies und qualifizierten Bewerbungen.

Volumen
≈ 5.000parallel aktive Jobs als geplante Obergrenze
Quelle
1 APIDjango bleibt fachliche Source of Truth
Public
SSRvollständige Inhalte im initialen HTML
Publishing
Hard + Shadowharte Gates plus kalibrierter Quality Score
Worauf es ankommt

Drei Entscheidungen bestimmen den Erfolg

01

Jobs unterscheidbar machen

Für möglichst viele Public Jobs ausreichend eindeutige, jobspezifische Merkmale liefern – statt allgemeiner Arbeitgeber- oder Standardtexte.

02

Aufwand gegen Value abwägen

Zusätzliche Daten nur erfassen oder modellieren, wenn Verfügbarkeit, Erfassungsaufwand und erwarteter Mehrwert in einem sinnvollen Verhältnis stehen.

03

Mindestqualität absichern

Das Quality Gate verhindert austauschbare oder zu dünne Jobs. Seine Schwellen werden anhand der realen Datenabdeckung kalibriert.

Zentrale Leitfrage: Welche jobspezifischen Merkmale können wir mit vertretbarem Aufwand für möglichst viele Jobs bereitstellen – und welches Mindestmaß davon braucht ein guter Public Job?
Markt-Learnings

MEDWING-Struktur × Pflegia-Datentiefe

Die öffentlich sichtbaren Seiten belegen zwei komplementäre Muster. Sie belegen nicht, welche URLs tatsächlich in Google for Jobs ausgespielt werden – dieser technische Nachweis bleibt ein eigenes Audit.

Von MEDWING lernen

Architektur
  • Öffentliche Jobsuche und Matching bestehen nebeneinander.
  • Berufe, Städte, Einrichtungen und Jobs sind miteinander verlinkt.
  • Filter spiegeln fachliche Attribute wie Einrichtung, Schicht, Gehalt und Erfahrung.
  • Anonyme Vermittlerangebote existieren öffentlich – ihre Google-for-Jobs-Eligibility ist aber unbewiesen.

Von Pflegia lernen

Datentiefe
  • Konkrete Adresse, Vertrag, Urlaub, Tarif und Überstundenregelung.
  • Einrichtungsmerkmale wie Bettenzahl und Teamgröße.
  • Ambulante Merkmale wie Patienten pro Tour und Einsatzgebiet.
  • Jobdetail und ähnliche lokale Jobs bilden eine nutzbare Weiterklick-Struktur.

Nicht blind kopieren

Caveat
  • Öffentlich erreichbar bedeutet nicht automatisch indexiert oder in Google for Jobs sichtbar.
  • Generische Vermittlerseiten sind kein Beleg für eigenständige Vacancies.
  • Pflegia bezeichnet Gehaltswerte teilweise als Schätzung; solche Werte dürfen nicht automatisch als Arbeitgeber-baseSalary markiert werden.
  • JSON-LD, Canonicals und Expiry müssen separat geprüft werden.
Design-Prinzip für länk: Die Informationsarchitektur folgt MEDWING, die Vacancy-Seite folgt der Datentiefe von Pflegia – aber Publikation und Markup werden durch länk-eigene Eligibility-Regeln, Feldprovenienz und gemessene Datenqualität kontrolliert.
Zielarchitektur

Ein Datensatz, zwei Produktschichten

Die öffentliche Akquisitionsschicht bleibt vollständig lesbar und intern verlinkt. Profil, Matching und Kommunikation liegen in der geschlossenen App.

01Django JobVacancy, Arbeitgeber, Standort und Lifecycle
02Eligibility ServiceBlocker, Warnungen und Publikationsfreigabe
03Angular SSRHTML, Canonical und JSON-LD aus einem View Model
04Google & NutzerCrawlbare Detailseiten und relevante Hubs
05Apply / MatchKonkrete Stelle bleibt über die Journey erhalten
/jobsJobsucheEinstieg, Suchfelder und kontrollierte Filter. Kein JobPosting-Markup.
/jobs/{beruf}/{stadt}Beruf-Ort-HubNur indexierbar bei echten aktiven Jobs und ausreichendem eigenem Nutzen.
/arbeitgeber/{slug-id}EinrichtungsprofilNur für freigegebene benannte Arbeitgeber; Jobs und echte Standortdaten.
/jobs/{slug}-{vacancy-id}JobdetailGenau eine Vacancy, vollständiges sichtbares HTML und JobPosting.
/app/jobs/{id}/applyApply-HandoffVacancy-ID bleibt durch Registrierung und Matching erhalten.
Eligibility + Shadow Mode

Publishing Gate + Quality Score

Harte Gates entscheiden über die technische und fachliche Publikationsfähigkeit. Das vorläufige Qualitätsminimum verlangt einen jobspezifischen Anker plus mindestens zwei entscheidungsrelevante Bereiche. Einrichtungsdaten erhöhen den Score, reichen allein aber nicht aus.

Pflicht

Vacancy-spezifischer Anker

Mindestens ein Merkmal unterscheidet den Job: etwa Station, Fachbereich, Patientengruppe, Nacht-/Springerfunktion oder konkretes Schichtmodell.

Mindestens 2 von 4

Entscheidungsrelevante Substanz

Arbeitszeit, Konditionen, Vergütung sowie jobspezifische Aufgaben und Anforderungen.

Bonus

Einrichtungskontext

Bettenzahl, Teamgröße und allgemeine Benefits verbessern die Seite, ersetzen aber kein jobspezifisches Merkmal.

Aus MEDWING und Pflegia abgeleitet: MEDWING zeigt häufig Rolle, Fachbereich, Schicht und Qualifikation; Pflegia ergänzt besonders konkrete Stunden, Vertrag, Urlaub, Überstunden und Tarif. Einrichtungsgröße und Arbeitgeber-Benefits sind wertvoller Kontext – aber oft bei mehreren Jobs identisch.
Field Inventory & Coverage Audit

Erst messen, was wirklich verfügbar ist

Nicht der kleinste gemeinsame Nenner aller Jobs und nicht eine Wunschliste neuer Felder bestimmen die Qualität. Das Audit verfolgt jedes relevante Merkmal vom Rohdatensatz über Speicherung und Freigabe bis zur öffentlichen Ausgabe.

01

Source Payload

Welche maximalen Informationen liefern API, Feed, Scraper oder operative Erfassung tatsächlich?

02

Stored

Was wird strukturiert gespeichert – und was geht heute beim Mapping oder Import verloren?

03

Permitted

Welche Daten dürfen je Arbeitgeber, Quelle und Anonymitätsstufe öffentlich erscheinen?

04

Rendered

Was landet konsistent in sichtbarem HTML und, soweit zulässig, im JobPosting-Markup?

FeldgruppeHeute auffindbare KandidatenCoverage-FrageAudit-Status
Universelle BasisID/Quelle, Rolle, Beschreibung, Standort, Arbeitsmodell, StatusWas liegt bei nahezu allen aktiven Jobs valide und öffentlich nutzbar vor?Coverage messen
Job-Kontextcare_type, Spezialisierung, Station, Wohnbereich, Tour, PatientengruppeWelche kontextgebenden Werte stecken strukturiert oder nur im Rohtext?Source prüfen
Operativer Alltagshift, working_hours, shift_plan, Wochenenden, Patienten pro TourWelche konkreten Arbeitsrealitäten unterscheiden Jobs desselben Titels?Coverage messen
Konditionenbenefits, tarif, days_of_vacation, overtime_regulationSind Werte jobspezifisch, aktuell und strukturiert – oder nur Arbeitgeber-Defaults?Herkunft prüfen
Vergütungmin_salary, max_salary, salary_optionsArbeitgeberwert oder Schätzung? Währung, Einheit, Zeitraum und Aktualität vorhanden?Provenienz prüfen
AnforderungenAusbildung, Weiterbildung, Erfahrung, besondere AnforderungenWelche Kriterien sind strukturiert filterbar und welche nur Freitext?Mapping prüfen
EinrichtungskontextBettenzahl, Teamgröße, Wohnbereiche, allgemeine BenefitsWelche Werte verbessern die Orientierung, sind aber bei mehreren Jobs derselben Einrichtung identisch?nur Quality-Bonus
Lifecyclestatus, created_at, updated_at, Source-DatenLassen sich Original-Posting, Ablauf, Schließung und Reaktivierung verlässlich ableiten?Lücken messen
Publikationsrechtshow_company_name, Quelle, ArbeitgebervereinbarungWelche Feldgruppen sind benannt, vertraulich-präzise oder vertraulich-reduziert erlaubt?Matrix erstellen
Audit-Segmente: Coverage nie nur global ausweisen, sondern mindestens nach Quelle, Jobtyp, Arbeitgeber, benannt/vertraulich, Aktualität und Provenienz. Zusätzlich trennen: jobspezifischer Wert vs. wiederverwendeter Arbeitgeber-Default.
Minimum Quality Model

Vacancy-Anker + 2 von 4 Bereichen

Die universelle Basis bleibt Pflicht. Darüber hinaus braucht jeder Job ein unterscheidendes, zum Jobtyp passendes Merkmal sowie Substanz in mindestens zwei Bereichen: Arbeitszeit, Konditionen, Vergütung oder jobspezifische Aufgaben und Anforderungen.

Klinik

Station & Versorgung

Fachbereich oder Station, Schichtmodell und relevante Patientengruppe.

Pflegeheim

Wohnbereich & Versorgung

Wohnbereich, Versorgungsform oder Dienstmodell als Anker; Bettenzahl zählt nur als Kontext.

Ambulant

Tour & Einsatz

Patienten pro Tour oder Gebiet, Tourzeiten und Fahrzeugregelung.

1:1 Intensiv

Fall & Dienstlänge

Abstrakter Versorgungskontext, Dienstlänge und zulässige Standortpräzision.

Pädagogik

Zielgruppe & Schlüssel

Zielgruppe, Gruppenstärke oder Betreuungsschlüssel und Arbeitszeit.

Leitung

Verantwortung & Mandat

Personal-, Fach- oder Budgetverantwortung als Anker; Teamgröße ergänzt nur den Kontext.

Lifecycle

Ein Status-Rad für alle Kanäle

Datenbankstatus, öffentliche Seite, Sitemap, Structured Data und Indexing API müssen aus demselben Event abgeleitet werden.

Draft

Noch nicht öffentlich

Kein Sitemap-Eintrag, kein JobPosting-Markup, interne Vorschau geschützt.

Active

200 + indexierbar

Selbstreferenzierendes Canonical, Sitemap, vollständiges Markup und URL_UPDATED.

Closed

Sofort aus dem Jobindex

Markup und Sitemap entfernen; anschließend 410 oder archivierte Seite mit noindex und URL_DELETED.

Delivery Plan

Vier Phasen bis zum Rollout

Phase 1

Inventory & Evidence

  • Source-to-Public-Feldinventar
  • Coverage je Segment
  • Vacancy-Definition
  • Freigabematrix
Phase 2

Hard-Gate Foundation

  • Notwendige Feldlücken schließen
  • Eligibility Service
  • Public View Model
  • Lifecycle Events
Phase 3

Shadow Pilot

  • 100–300 Vacancies
  • Quality Score ohne Blocking
  • manuelle Qualitätsstichprobe
  • Schwellen je Jobtyp kalibrieren
Phase 4

Enforce & Scale

  • Qualitätsminimum aktivieren
  • Voll-Rollout nach Segment
  • Monitoring & Alerts
  • Regeln laufend nachschärfen
Execution Backlog

Konkrete ToDos aus der Analyse

Die Reihenfolge verhindert, dass wir zuerst Templates oder tausende URLs bauen und erst danach feststellen, dass Identität, Freigabe oder Datenqualität fehlen.

P0 · vor Entwicklung

Beweise und Regeln schaffen

#ToDoOwnerOutput / Definition of Done
0120-URL-Wettbewerbsaudit
Je 10 MEDWING- und Pflegia-Jobdetails: sichtbare Daten, JSON-LD, Canonical, Status, interne Links, Arbeitgeberdarstellung.
SEO + EngineeringAudit-Tabelle mit Screenshot/HTML-Beleg je URL; öffentlich prüfbar strikt von GSC-internen Aussagen getrennt.
02Vacancy- und Duplicate-Contract
Arbeitgeber-Requisition, Standort, Rolle, Einheit, Arbeitsmodell und Reaktivierung definieren.
Product + OperationsEntscheidungsbaum mit Beispielen und testbaren Regeln; keine neue URL allein wegen Text, Slug oder neuer länk-ID.
03Disclosure-Matrix
Benannt, vertraulich-präzise und vertraulich-reduziert je Kunde festlegen.
Sales + LegalFreigabe pro Feldgruppe: Name, Logo, Adresse, Einrichtungsdaten, Gehalt, Kontaktperson, Fotos.
04Source-to-Public Field Inventory
Rohdaten, Mapping, Speicherung, Freigabe und Ausgabe für alle relevanten Felder abgleichen.
Data + BackendCoverage je Quelle und Jobtyp; Verluststellen sind sichtbar. Werte sind als jobspezifisch/default sowie mit Aktualität und Provenienz klassifiziert.
P1 · Foundation

Nur belegte Lücken schließen und Publishing bauen

#ToDoOwnerOutput / Definition of Done
05Field-Gap-Entscheidung
Erst nach dem Audit entscheiden, welche wertvollen Quelldaten nur gemappt und welche wirklich neu modelliert werden müssen.
Product + Data + BackendPriorisierte Gap-Liste mit Coverage, Nutzen und Aufwand; keine Schema-Erweiterung ohne belegte Quelle. Gehaltsschätzung und Arbeitgeberwert bleiben technisch getrennt.
06Eligibility Endpoint + Shadow Score
/publication-eligibility/ trennt Hard Gates, Vacancy-Anker, Entscheidungsbereiche und Kontextbonus.
BackendDeterministische JSON-Antwort und Unit-Tests; Hard Gates steuern Publishing, quality_gate_enforced=false im Pilot.
07Public Vacancy View Model
Eine Quelle für sichtbares HTML und JSON-LD.
Backend + FrontendKeine Abweichung zwischen Markup und Seite; benannt und confidential als getrennte Fälle getestet.
08Lifecycle-Orchestrierung
Sitemap, Indexing API, Canonical, Expiry und HTTP-Status aus Jobevents ableiten.
PlatformActive/Changed/Closed/Reactivated als Integrationstests; keine abgelaufenen Jobs im aktiven Feed.
P2 · Pilot

Discovery Graph kontrolliert live bringen

#ToDoOwnerOutput / Definition of Done
09SSR-Jobdetail + Apply-Handoff
Vollständige öffentliche Vacancy und Übergabe der Vacancy-ID in die App.
Frontend + Product200-HTML ohne JS vollständig; Bewerbung bleibt bis zum Abschluss dem konkreten Job zugeordnet.
10Hubs und Einrichtungsprofile
Nur freigegebene, nützliche Seiten mit echten aktiven Jobs.
SEO + FrontendIndexability-Schwellen, interne Links und Empty-State-Regeln dokumentiert; Facetten standardmäßig nicht indexierbar.
11Shadow-Scoring & manuelle Stichprobe
Vacancy-Anker, Entscheidungsbereiche und Kontextbonus für alle Pilotjobs berechnen und repräsentative Seiten redaktionell bewerten.
Analytics + SEO + OperationsScore-Verteilung je Jobtyp und Quelle, Fehlklassifikationen dokumentiert; noch kein Job wird wegen des Scores blockiert.
12Schwellen kalibrieren & Pilot-Gate
Erst nach QA von 100–300 Jobs ein Qualitätsminimum je Jobtyp beschließen und auf 5.000 skalieren.
Project LeadGo/No-Go berücksichtigt Coverage, manuelle Qualität, Indexierung, Fehlerquote und Bewerbungen; Aktivierung des Quality Gates ist eine explizite Entscheidung.
Decision Log

Vor Umsetzung verbindlich klären

Was gilt als Bewerbung?

Konkrete Bewerbung auf die Vacancy oder lediglich Eintritt in einen allgemeinen Matching-Pool?

Product + Legal

Welche Standortpräzision ist erlaubt?

Offen, PLZ/Stadt oder nur Region – inklusive Schutz vor indirekter Deanonymisierung.

Sales + Legal

Welches Datum ist das Original-Posting?

Arbeitgeberdatum, Feed-Datum oder erstmalige Veröffentlichung bei länk.

Data + Product

Wann entsteht eine neue Vacancy?

Reaktivierung, neue Schicht, weitere Planstelle oder neue Arbeitgeber-Requisition.

Operations