CV RAG Search

Recherche structurée avec critères obligatoires, fonctionnels et bonus
Recherche principale
Critères de recherche
Séparés par virgules. Candidats sans ces critères sont rejetés.
Compétences principales pour le scoring.
Points bonus si présents.
Pénalités si ces termes sont trouvés.
Filtres (metadata)
Codes ISO séparés par virgules (ex: fr, en)
Ville ou pays
Années
Paramètres
Extraits récupérés
Candidats retournés
{% if result %} {% if result.error %}

Erreur

{{ result.error }}
{% else %} {% if result.summary %}

Analyse

{{ result.summary }}

{% if result.spec_summary %}
{{ result.spec_summary }}
{% endif %}
{% endif %} {% if result.candidates %}

Candidats

{{ result.candidates|length }} résultat(s)
{% for c in result.candidates %}
{{ c.rank }}
{{ c.file_name or 'Inconnu' }}
ID: {{ c.candidate_id }}
{{ c.score_total|round(1) }}
Score
{% if c.llm_summary %}
{{ c.llm_summary }}
{% endif %} {% if c.strengths %}
Points forts
{% for s in c.strengths %} {{ s }} {% endfor %}
{% endif %} {% if c.risks %}
Risques / Attention
{% for r in c.risks %} {{ r }} {% endfor %}
{% endif %} {% if c.score_breakdown %}
Détail du scoring
{% if c.score_breakdown.penalties > 0 %} {% endif %}
Critère Score Termes matchés
Must-have {{ c.score_breakdown.must_have_score|round(1) }}% {{ c.score_breakdown.must_have_matched|join(', ') or '-' }}
Functional {{ c.score_breakdown.functional_score|round(1) }}% {{ c.score_breakdown.functional_matched|join(', ') or '-' }}
Nice-to-have {{ c.score_breakdown.nice_to_have_score|round(1) }}% {{ c.score_breakdown.nice_to_have_matched|join(', ') or '-' }}
Semantic {{ c.score_breakdown.semantic_score|round(1) }}% -
Pénalités -{{ c.score_breakdown.penalties|round(1) }} {{ c.score_breakdown.exclude_matched|join(', ') }}
{% endif %} {% if c.evidence %}
Preuves (extraits CV)
{% for e in c.evidence %}
{{ e.quote }}
{{ e.source }}
{% endfor %}
{% endif %}
{% endfor %}
{% else %}

Aucun candidat trouvé correspondant aux critères.

{% endif %} {% if result.debug %}

Informations de debug

Chunks récupérés: {{ result.debug.total_chunks_retrieved }}
Candidats uniques: {{ result.debug.unique_candidates_found }}
Après gating: {{ result.debug.candidates_after_gating }}
{% endif %} {% if result.rejected %}

Candidats rejetés ({{ result.rejected|length }})

{% for r in result.rejected[:10] %}
{{ r.file_name or r.candidate_id }} - {{ r.reason }} {% if r.missing_terms %} (manquants: {{ r.missing_terms|join(', ') }}){% endif %}
{% endfor %} {% if result.rejected|length > 10 %}
... et {{ result.rejected|length - 10 }} autres
{% endif %}
{% endif %} {% endif %} {% endif %}