FastOrchestra
Un pipeline de candidatures sur des annonces classées
Selon un planning, un harvester parcourt plusieurs job boards et rapporte les nouvelles annonces. FastOrchestra les enregistre, les classe par rapport au profil et conserve tout ce qui suit dans son propre store : la liste retenue, l’étape où se trouve chaque candidature, les preuves datées qui la justifient, et les lettres. Chaque lettre est rédigée à partir du profil, de l’annonce et des lettres envoyées les plus proches, et chaque appel de modèle est tracé.
Une présentation de 38 secondes. La version longue dure quatre minutes et parcourt toute l’architecture.
Ce qu’il fait
Des annonces classées, avec points forts et écarts
Toutes les annonces sont classées lors d’un traitement planifié. L’interface présente chaque annonce classée avec ses indicateurs de points forts et d’écarts, met en avant les annonces sémantiquement les plus proches et signale les doublons potentiels.
Une liste retenue avec des étapes
Une annonce retenue devient une candidature sur un tableau, une colonne par étape. Chaque déplacement est daté, et les preuves qui le justifient restent attachées.
Des lettres rédigées à partir du contexte
Une lettre est assemblée à partir du profil, de l’annonce elle-même et des lettres de candidatures comparables déjà envoyées — retrouvées par le sens, et non par mot-clé. Les exemples sont vos propres lettres envoyées : le corpus grandit à chaque candidature. Les versions sont conservées, et la version courante est celle qui est partie.
Chaque appel de modèle tracé
Prompt, réponse, tokens, latence et coût arrivent dans Langfuse sous un même identifiant de trace. La fraîcheur des synchronisations, la couverture des embeddings et le coût des rédactions sont des métriques collectées par Prometheus.
Comment c’est construit
- Collecte quotidiennemultiple job boards, Chromium headless
- Classementun LLM note chaque annonce de 0 à 10
- Un seul storePostgres 16 avec pgvector
- Rédactionun seul appel sort de la machine
- Traceprompt, tokens, latence, coût
React 19 et TypeScript côté interface, FastAPI et SQLAlchemy 2 derrière, réparties en deux images. La première fait tourner l’API et deux files de workers qui vident une file d’attente conservée dans le même store : une file rapide pour les lettres, et une file de masse pour les collectes et le classement. La seconde est le harvester, un navigateur headless qui lit les job boards et n’écrit jamais dans la base. Les annonces et le profil sont vectorisés sur la machine, sur CPU : seul le prompt de rédaction en sort. L’API parle également le Model Context Protocol, ce qui permet à un assistant de lister les annonces classées, d’en retenir une et de soumettre la lettre qu’il a écrite.
Envie d’un pipeline de ce type ?
Des entrées classées, un store qui vous appartient, des appels de modèle auditables après coup, et un assistant capable de piloter l’ensemble. La même structure convient au tri de leads, à la revue de documents ou à l’aiguillage d’une boîte partagée. Dites-nous ce que le vôtre doit faire.
Nous contacter