From abfe01190b266731a5f189ecbaff0f52ba1e5a58 Mon Sep 17 00:00:00 2001 From: jeremy bayse Date: Sun, 19 Apr 2026 21:44:49 +0200 Subject: [PATCH] feat: add AI service configuration and candidate dossier PDF template --- config/ai.php | 4 +- .../views/pdfs/candidate-dossier.blade.php | 39 ++++++++++++++++++- 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/config/ai.php b/config/ai.php index e04d035..5053638 100644 --- a/config/ai.php +++ b/config/ai.php @@ -20,7 +20,9 @@ return [ - summary: résumé de 3-4 phrases sur le profil - strengths: liste des points forts par rapport au poste - gaps: liste des compétences manquantes ou points de vigilance - - verdict: une conclusion (Favorable, Très Favorable, Réservé, Défavorable)", + - verdict: une conclusion (Favorable, Très Favorable, Réservé, Défavorable) + - scores_detailles: un objet avec des clés (ex: technique, experience, soft_skills) contenant 'score' (0-100) et 'justification' + - elements_bloquants: liste des points critiques qui pourraient invalider la candidature (ou liste vide si aucun)", ], 'providers' => [ diff --git a/resources/views/pdfs/candidate-dossier.blade.php b/resources/views/pdfs/candidate-dossier.blade.php index ec97294..7c2b32c 100644 --- a/resources/views/pdfs/candidate-dossier.blade.php +++ b/resources/views/pdfs/candidate-dossier.blade.php @@ -181,7 +181,7 @@

Points Forts

-
    +
      @foreach($candidate->ai_analysis['strengths'] ?? [] as $s)
    • {{ $s }}
    • @endforeach @@ -189,13 +189,48 @@

Points de Vigilance

-
    +
      @foreach($candidate->ai_analysis['gaps'] ?? [] as $g)
    • {{ $g }}
    • @endforeach
+ + @if(!empty($candidate->ai_analysis['scores_detailles'])) +

Détail des scores par dimension

+ + + + + + + + + + @foreach($candidate->ai_analysis['scores_detailles'] as $key => $details) + + + + + + @endforeach + +
DimensionScoreJustification
{{ str_replace('_', ' ', $key) }} + {{ $details['score'] }}% + {{ $details['justification'] ?? '' }}
+ @endif + + @if(!empty($candidate->ai_analysis['elements_bloquants']) && count($candidate->ai_analysis['elements_bloquants']) > 0 && $candidate->ai_analysis['elements_bloquants'][0] !== '') +
+

Signaux Critiques / Filtres Bloquants

+ +
+ @endif @endif