Der JSON-LD-Adapter ist die universelle Lösung für Websites, die nicht auf Drupal, TYPO3 oder WordPress laufen — solange die Stellenseiten schema.org JobPosting-Markup enthalten (was die meisten SEO-optimierten Karriere-Seiten tun).

Voraussetzungen

  • Die Website hostet eine sitemap.xml (Standard bei jedem CMS) — der Adapter folgt verschachtelten Sitemaps.
  • Stellenseiten enthalten ein <script type="application/ld+json">-Block mit "@type": "JobPosting".
  • Der Domain-Eintrag wird im BAconn-Connector als Allowlist gesetzt — wir scrapen nur, was Sie bestätigen.

Einrichtung

  1. Im Wizard oder unter /cms-pipe/manage "Neue Quelle" → JSON-LD wählen.
  2. Basis-URL eintragen, z. B. https://www.beispiel-firma.de (mit oder ohne Schrägstrich am Ende).
  3. Optional: Sitemap-Pfad überschreiben, falls die Sitemap nicht unter /sitemap.xml liegt.
  4. Sync-Intervall — Standard 60 Min, höflicher Crawl ist auf 1 Anfrage / Sekunde gedrosselt.

Headless-Fallback (optional)

Wenn die Website JSON-LD per JavaScript einfügt (Single-Page-Applications, React/Vue), erkennt der Adapter dies und kann optional einen Playwright-Headless-Browser für die Extraktion verwenden. Aktivierung über adapter_state.headless = true in der Quell-Konfiguration. Voraussetzung: Chromium ist im Container installiert (siehe Dockerfile).

Häufige Probleme

  • Sitemap.xml liefert 404 — die Quelle nutzt eine alternative Indexierung. Pfad manuell setzen oder den TYPO3- bzw. Drupal-Adapter erwägen.
  • 0 Stellen gefunden — die Stellenseiten enthalten kein JSON-LD. Im Browser DevTools: document.querySelectorAll('script[type="application/ld+json"]') prüfen.
  • robots.txt blockiert — der Adapter respektiert robots.txt. Bei Eigentümer-Domains "Allow: /" für unseren User-Agent BAconn-CMS-Pipe setzen.

Wo landen die Stellen

Alle CMS-Pipe-Quellen schreiben nach wp_jobs (gleiche Tabelle wie WP Job Manager). Sie tauchen automatisch in /jobshub, im Indeed-Push und im BA-Sync auf.