Faire correspondre des talents à un rôle ressemble à un problème pour l'IA : beaucoup de critères flous, du jugement, du contexte. C'est ce qui nous avait poussés, au début, à confier le classement à un modèle de langage. L'expérience nous a appris l'inverse.

Le problème de la première version

L'ancien pipeline pré-filtrait grossièrement (genre, âge, couleur de cheveux), envoyait les vingt premiers candidats à un LLM pour qu'il en classe cinq, et le faisait une fois par rôle, séquentiellement. Trois rôles = trois appels successifs. Pire : le frontend ré-appliquait ensuite d'autres filtres (taille, origine, langues…), si bien que le modèle classait parfois des candidats qui seraient écartés juste après. On payait du temps et des jetons pour rien.

Trois couches, une seule à base d'IA

La nouvelle architecture sépare proprement les responsabilités :

  • Filtres durs — exclusion déterministe, sans IA : genre, conflit d'allergie, indisponibilité ferme. Un candidat exclu ne coûte rien.
  • Moteur de score — un score de 0 à 100, entièrement déterministe : recouvrement de la fourchette d'âge jouable (jusqu'à +40, avec décroissance linéaire dans la tolérance), correspondances cheveux/yeux/taille/origine/langue, compétences et traits, photo présente. Des pénalités modulent le score sans exclure.
  • Départage IA — uniquement quand le score ne sépare pas deux talents, et sur un petit modèle. L'IA devient un juge de touche, pas l'arbitre.
« La bonne question n'était pas "comment faire mieux classer le LLM", mais "comment ne presque jamais avoir besoin du LLM". »

Pourquoi le déterministe gagne

Un moteur de score a trois vertus que le tout-IA n'a pas. Il est rapide : pas d'appel réseau pour la grande majorité des cas. Il est prévisible : le même rôle et le même roster donnent toujours le même classement. Et il est explicable : on peut montrer à l'agent pourquoi un talent remonte — l'âge colle, la langue colle, l'origine colle — au lieu d'un verdict opaque.

L'IA garde sa place là où elle excelle : lire un appel de casting en langage naturel, suggérer une formulation, départager deux profils vraiment équivalents. Le reste est de l'ingénierie classique, et c'est très bien ainsi.

La leçon

Sur un produit réel, « mettre de l'IA partout » n'est pas une stratégie. La discipline consiste à isoler le petit cœur où l'IA crée une vraie valeur, et à traiter le reste avec du code déterministe, testable et rapide. C'est ce qui rend le matching de Castflow à la fois utile et fiable.