feat: add AI service configuration and candidate dossier PDF template

This commit is contained in:
jeremy bayse
2026-04-19 21:44:49 +02:00
parent d924765b94
commit abfe01190b
2 changed files with 40 additions and 3 deletions

View File

@@ -20,7 +20,9 @@ return [
- summary: résumé de 3-4 phrases sur le profil - summary: résumé de 3-4 phrases sur le profil
- strengths: liste des points forts par rapport au poste - strengths: liste des points forts par rapport au poste
- gaps: liste des compétences manquantes ou points de vigilance - 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' => [ 'providers' => [

View File

@@ -181,7 +181,7 @@
<div style="display: table; width: 100%; margin-top: 20px;"> <div style="display: table; width: 100%; margin-top: 20px;">
<div style="display: table-cell; width: 48%; padding-right: 2%;"> <div style="display: table-cell; width: 48%; padding-right: 2%;">
<h4 style="color: #057a55; font-size: 12px;">Points Forts</h4> <h4 style="color: #057a55; font-size: 12px;">Points Forts</h4>
<ul style="font-size: 11px; padding-left: 20px;"> <ul style="font-size: 11px; padding-left: 20px; color: #03543f;">
@foreach($candidate->ai_analysis['strengths'] ?? [] as $s) @foreach($candidate->ai_analysis['strengths'] ?? [] as $s)
<li>{{ $s }}</li> <li>{{ $s }}</li>
@endforeach @endforeach
@@ -189,13 +189,48 @@
</div> </div>
<div style="display: table-cell; width: 48%;"> <div style="display: table-cell; width: 48%;">
<h4 style="color: #9b1c1c; font-size: 12px;">Points de Vigilance</h4> <h4 style="color: #9b1c1c; font-size: 12px;">Points de Vigilance</h4>
<ul style="font-size: 11px; padding-left: 20px;"> <ul style="font-size: 11px; padding-left: 20px; color: #9b1c1c;">
@foreach($candidate->ai_analysis['gaps'] ?? [] as $g) @foreach($candidate->ai_analysis['gaps'] ?? [] as $g)
<li>{{ $g }}</li> <li>{{ $g }}</li>
@endforeach @endforeach
</ul> </ul>
</div> </div>
</div> </div>
@if(!empty($candidate->ai_analysis['scores_detailles']))
<h4 style="margin-top: 20px; font-size: 12px; color: #004f82;">Détail des scores par dimension</h4>
<table style="margin-top: 10px;">
<thead style="background-color: #edf2f7;">
<tr>
<th style="color: #4a5568; background: #edf2f7; width: 30%;">Dimension</th>
<th style="color: #4a5568; background: #edf2f7; width: 15%; text-align: center;">Score</th>
<th style="color: #4a5568; background: #edf2f7; width: 55%;">Justification</th>
</tr>
</thead>
<tbody>
@foreach($candidate->ai_analysis['scores_detailles'] as $key => $details)
<tr>
<td style="font-weight: bold; text-transform: capitalize;">{{ str_replace('_', ' ', $key) }}</td>
<td style="text-align: center;">
<span style="font-weight: bold; color: #004f82;">{{ $details['score'] }}%</span>
</td>
<td style="font-size: 10px; color: #4a5568;">{{ $details['justification'] ?? '' }}</td>
</tr>
@endforeach
</tbody>
</table>
@endif
@if(!empty($candidate->ai_analysis['elements_bloquants']) && count($candidate->ai_analysis['elements_bloquants']) > 0 && $candidate->ai_analysis['elements_bloquants'][0] !== '')
<div style="margin-top: 20px; padding: 15px; background-color: #fff5f5; border: 1px dashed #feb2b2; border-radius: 10px;">
<h4 style="color: #c53030; font-size: 12px; margin-top: 0;">Signaux Critiques / Filtres Bloquants</h4>
<ul style="font-size: 11px; padding-left: 20px; color: #c53030; font-weight: bold;">
@foreach($candidate->ai_analysis['elements_bloquants'] as $item)
<li>{{ $item }}</li>
@endforeach
</ul>
</div>
@endif
@endif @endif
<div class="page-break"></div> <div class="page-break"></div>