Scanner: neue Anzeigen zuerst abfragen, Uhrzeiten korrekt anzeigen

Seit dem Wegfall der Altersgrenze lieferten BA und StepStone nur die
relevantesten Anzeigen aller Jahre - fünf Läufe lang 0 neue Treffer.
- BA: erst veroeffentlichtseit=7 (bis 200), dann ohne Grenze (bis 200)
- StepStone: sort=2 Seiten 1-2 plus Relevanz Seite 1
  (action=sort_publish hatte keine Wirkung)
- Dashboard liest DB-Zeitstempel als UTC (vorher 2 h zu früh)

Erster Lauf danach: 481 statt 298 Anzeigen, 40 neue Treffer.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
schakal00783
2026-09-29 17:28:04 +02:00
co-authored by Claude Opus 5.5
parent 0aa8f17b28
commit 651ad2b954
3 changed files with 69 additions and 10 deletions
+13 -2
View File
@@ -20,8 +20,8 @@ einfacher HTTP-Abruf (`server/src/scanner/sources.js`).
| Id | Börse | Land | Weg | Schlüssel |
| --- | --- | --- | --- | --- |
| `ba` | Agentur für Arbeit | DE | offizielle Jobsuche-API v6, JSON, 100 Anzeigen je Begriff | keiner (öffentlicher Header `X-API-Key: jobboerse-jobsuche`) |
| `stepstone` | StepStone.de | DE | HTML der Trefferliste, `data-at`-Attribute | keiner |
| `ba` | Agentur für Arbeit | DE | offizielle Jobsuche-API v6, JSON: je Begriff bis 200 der letzten 7 Tage (`veroeffentlichtseit=7`) plus 200 ohne Grenze | keiner (öffentlicher Header `X-API-Key: jobboerse-jobsuche`) |
| `stepstone` | StepStone.de | DE | HTML: `sort=2` (neueste zuerst) Seiten 1–2 plus Seite 1 nach Relevanz, `data-at`-Attribute | keiner |
| `karriere` | karriere.at | AT | HTML der Trefferliste, `.m-jobsListItem` | keiner |
| `adzuna` | Adzuna | DE · AT · CH | REST-API, neueste zuerst | kostenlos, App ID + Key |
| `freelancermap` | freelancermap | DE | HTML, Selektoren wie im perinco-Scanner | keiner |
@@ -42,6 +42,17 @@ der Trefferliste.
> antwortet auf Begriffe ohne eigene Suchseite mit 404 – das gilt als „keine
> Treffer", nicht als Fehler.
> **Neueste zuerst abfragen.** Ohne Altersgrenze liefern Arbeitsagentur und
> StepStone auf der ersten Seite die „relevantesten" Anzeigen quer durch alle
> Jahre. Am 29.09.2026 kamen so fünf Läufe lang immer dieselben ~298 Anzeigen
> und 0 neue Treffer. Deshalb fragt jede Quelle zuerst die frischen Anzeigen
> ab und erst danach den Altbestand. StepStones `action=sort_publish` wirkt
> nicht, `sort=2` schon.
>
> **Uhrzeiten sind UTC.** Server und MariaDB laufen in UTC; das Dashboard hängt
> an Zeitstempel aus der Datenbank ein `Z` an (`parseDbDate` in
> `scannerUi.tsx`), sonst erscheinen sie zwei Stunden zu früh.
> **HTML-Quellen brechen, wenn die Börse ihr Layout ändert.** Liefert StepStone,
> karriere.at oder freelancermap plötzlich 0 Treffer, zuerst die Selektoren in
> `sources.js` gegen die aktuelle Seite prüfen.