Skip to content

v0.2.0

Choose a tag to compare

@metimol metimol released this 04 Oct 07:51
· 5 commits to master since this release

✨ New Features

  • Dedicated Job Details Page:

  • Added a new /job/{job_id} routing and a responsive UI (job.html) to view full matched job details.

  • Features a visual "Match Score" ring, detailed job descriptions, and direct action buttons (Save, Dismiss, View on Arbeitsagentur).

  • Clickable Feed Integration:

  • Job cards in the feed now link directly to the new details page via clickable titles and a dedicated "View" button.

  • Lazy-Loading Descriptions:

  • The backend now automatically fetches and caches missing job descriptions from the Bundesagentur für Arbeit (BA) API when a user views a job's details.

  • Expanded Localization:

  • Added UI translations for the new job details interface across all supported languages (English, German, Russian, Ukrainian).

🛡️ Security & Data Integrity

  • Robust Text Sanitizer (text_sanitizer.py):

  • Implemented a new defense-in-depth HTML parser to strip malicious markup (e.g., <script>, <style>, <iframe>) from untrusted third-party BA API responses.

  • Automatically removes invisible formatting, zero-width, and private-use characters to prevent hidden prompt-injection payloads from reaching the LLM matcher.

  • Normalizes whitespace and safely truncates abnormally long text strings to protect database columns and LLM context limits.

  • Strict Schema Validation:

  • Hardened BAJobListing and BADetailedJob schemas to enforce strict data sanitization on initialization.

  • Added strict validation for external URLs (allowing only well-formed http/https) and reference numbers.

  • API Client Protections:

  • The ArbeitsagenturClient now proactively refuses to execute requests if the requested job reference number contains invalid or unsafe characters.

🧪 Testing & Chores

  • Added comprehensive test suites (test_text_sanitizer.py and test_job_info.py) to verify defense against adversarial payloads, entity-encoded XSS attacks, and malformed HTML.
  • Expanded API client tests to ensure missing fields and HTTP 404 errors from the BA API are handled gracefully without crashing the view.

Full Changelog: v0.1.3...v0.2.0