Commit Graph
5 Commits
Author SHA1 Message Date
thomasandClaude 955e975ace Show job offer kontakt_email prominently on the card
Move the mailto: link up next to firma/stelle/ort as a labeled
"Kontakt:" line so the contact email is directly visible on each job
offer, instead of a small link below the description.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 22:29:55 +02:00
thomasandClaude cb1115ef95 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>
2026-07-03 22:16:55 +02:00
thomasandClaude faa3a45815 Clarify the two job-offer dates in the page docs
The curl example only showed anzeige_datum, which read as if there's a
single date. Add an explicit list distinguishing Anzeige (anzeige_datum,
sender-provided) from Einspielung (created_at, server-set automatically),
and a comment in the curl body that created_at is not to be sent.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 21:58:24 +02:00
thomasandClaude 5d6fed7041 Show job offer posting date (anzeige_datum) alongside ingestion date
- Add anzeige_datum DATE column to jobangebote (with ALTER TABLE migration
  for pre-existing tables) — the original posting date supplied by the
  third party
- Accept anzeige_datum in POST /api/v1/joboffers (create + upsert) and
  document it in the OpenAPI spec
- Render both on /jobangebote: "Anzeige: <anzeige_datum>" and
  "Einspielung: <created_at>"

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 21:46:12 +02:00
thomasandClaude 88875dbc33 Add third-party REST API (/api/v1) + Swagger UI and Jobangebote page
- REST API under /api/v1 with X-API-Key auth (API_TOKEN), documented with
  OpenAPI 3.0; Swagger UI at /swagger, spec at /swagger.json
- Endpoints: applications CRUD + timeline, attachments/emails download,
  generation trigger/status, settings, statistics, export, templates, joboffers
- Jobangebote page (/jobangebote) listing offers ingested via the REST API,
  with "Als Bewerbung übernehmen" and delete actions; header nav + badge
- jobangebote table with (quelle, external_id) upsert for third-party ingestion

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 21:30:33 +02:00