<%- include('partials/head') %> <%- include('partials/header') %>
Zurück zur Übersicht <% var favAnsicht = (typeof ansicht !== 'undefined' && ansicht === 'favoriten'); %> <%- include('partials/jobangebote-tabs', { aktiv: favAnsicht ? 'favoriten' : 'offen', offenCount: offenCount, favoritenCount: favoritenCount, uebernommenCount: uebernommenCount, }) %> <%- include('partials/favorit-script') %>

<%= favAnsicht ? 'Gemerkte Jobangebote' : 'Jobangebote' %>

<% if (favAnsicht) { %> Angebote, die du dir mit dem Stern gemerkt hast — unabhängig davon, ob sie noch offen oder bereits übernommen sind. Ein erneuter Klick auf den Stern entfernt das Angebot wieder aus dieser Liste. Die Merkliste gilt nur für Jobangebote und ist von den gemerkten Bewerbungen getrennt. <% } else { %> Hier landen Stellen, die von Drittanbietersoftware über die POST /api/v1/joboffers REST-Schnittstelle eingespielt werden. Ein Angebot lässt sich per Klick als Bewerbung-Entwurf übernehmen. Hier siehst du nur offene Angebote, die du dir nicht gemerkt hast — bereits übernommene findest du im Tab „Übernommen“, gemerkte im Tab „Gemerkt“. <% } %>

Blacklist <%= jobangebote.length %> Angebot(e)
<% if (jobangebote && jobangebote.length) { %> <% } else if (favAnsicht) { %>

Noch keine Jobangebote gemerkt.

Klicke bei einem Angebot auf Merken — es erscheint dann hier und wird aus der offenen Liste ausgeblendet.

<% } else { %>

Noch keine Jobangebote vorhanden.

Drittanbietersoftware kann Angebote über POST /api/v1/joboffers einspielen.

<% } %>
Wie werden Jobangebote eingespielt?

Jedes Angebot hat zwei Datumswerte:

  • Anzeige (anzeige_datum) — wann die Stellenanzeige ursprünglich erschienen ist; wird vom Einsender im Request mitgegeben.
  • Einspielung (created_at) — wann das Angebot hier im Tracker über die REST-API angekommen ist; wird automatisch vom Server gesetzt, nicht im Request gesendet.

Angebot über die REST-API anlegen (API-Key im Header X-API-Key):

curl -X POST https://<host>/api/v1/joboffers \
  -H "X-API-Key: $API_TOKEN" -H "Content-Type: application/json" \
  -d '{
    "external_id": "job-12345",
    "quelle": "mein-crm",
    "firma": "Acme GmbH",
    "stelle": "Softwareentwickler (m/w/d)",
    "ort": "Berlin",
    "gehalt": "55.000 €",
    "beschreibung": "…",
    "quelle_url": "https://acme.example/job/12345",
    "art": "Online-Portal",
    "anzeige_datum": "2026-07-01",
    "kontakt_email": "bewerbung@acme.example"
    // "created_at" (Einspielung) NICHT mitsenden — wird vom Server automatisch gesetzt.
  }'

Wiederholtes Senden mit derselben quelle + external_id aktualisiert das Angebot (Upsert). Die Doku/Swagger-UI liegt unter /swagger.

<%- include('partials/footer') %>