Add kontakt_email to job offers

- New kontakt_email TEXT column on jobangebote (+ ALTER TABLE migration)
- Accept kontakt_email in POST /api/v1/joboffers (create + upsert) and
  document it in the OpenAPI spec
- Render a mailto: link on the /jobangebote page and include it in the
  curl example

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-07-03 22:16:55 +02:00
co-authored by Claude
parent faa3a45815
commit cb1115ef95
4 changed files with 19 additions and 5 deletions
+9 -1
View File
@@ -71,6 +71,13 @@
<span class="truncate"><%= j.quelle_url %></span>
</a>
<% } %>
<% if (j.kontakt_email) { %>
<a href="mailto:<%= j.kontakt_email %>"
class="inline-flex items-center gap-1 text-xs text-blue-600 dark:text-blue-400 hover:underline mt-1">
<svg class="w-3.5 h-3.5 shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg>
<%= j.kontakt_email %>
</a>
<% } %>
<p class="text-xs text-gray-400 dark:text-gray-500 mt-2 flex flex-wrap gap-x-3 gap-y-1">
<% if (j.anzeige_datum) { %>
<span title="Datum der eigentlichen Stellenanzeige">
@@ -156,7 +163,8 @@
"beschreibung": "…",
"quelle_url": "https://acme.example/job/12345",
"art": "Online-Portal",
"anzeige_datum": "2026-07-01"
"anzeige_datum": "2026-07-01",
"kontakt_email": "bewerbung@acme.example"
// "created_at" (Einspielung) NICHT mitsenden — wird vom Server automatisch gesetzt.
}'</code></pre>
<p class="text-xs">Wiederholtes Senden mit derselben <code>quelle</code> + <code>external_id</code> aktualisiert das Angebot (Upsert). Die Doku/Swagger-UI liegt unter <a href="/swagger" class="text-blue-600 dark:text-blue-400 hover:underline">/swagger</a>.</p>