Jean-Maurice Raboude

Cairn, un outil auto-hébergé de suivi de candidatures

Un petit CRM pour la recherche d'emploi, en .NET 10 et React. Il garde une copie de chaque offre, suit chaque candidature sur une seule frise et laisse des agents IA enregistrer l'avancement via MCP.

Cairn dashboard with application totals, a status funnel, due reminders and recent applications
  • .NET 10
  • ASP.NET Core
  • EF Core
  • PostgreSQL
  • React
  • TypeScript
  • TanStack
  • Tailwind CSS
  • MCP
  • Docker

Les offres d'emploi disparaissent en quelques semaines. Quand un recruteur rappelle un mois plus tard, l'annonce renvoie une 404 et on ne se souvient plus du poste. J'ai construit Cairn pour régler ce problème dans ma propre recherche. Il est en ligne sur cairn.jmrabou.de, et tout le monde peut s'inscrire.

L'offre, conservée

Cairn enregistre la description complète du poste quand on ajoute une candidature. Tout ce qui se passe ensuite va sur la frise de cette candidature : e-mails, appels, entretiens et changements de statut. On peut aussi téléverser le CV et la lettre de motivation envoyés, et les rattacher à la candidature.

Saved job description on an application

Une vue d'ensemble de la recherche

Comme les changements de statut sont enregistrés sous forme d'événements, le tableau de bord ne se limite pas à un total. Il affiche un entonnoir par statut, le délai médian avant une première réponse, la part de candidatures restées sans nouvelles et les rappels à venir. Le tableau Kanban présente le même pipeline par statut, et déplacer une carte vers une autre colonne enregistre le changement de statut.

Application pipeline board

Les entretiens dans votre agenda

Chaque entretien a ses notes de préparation avant et son débrief après. Une URL de flux privée affiche les entretiens et les rappels à venir dans Google Agenda, Apple Calendrier ou Outlook.

Calendar feed settings with a private subscription URL

Les agents IA, une deuxième interface

Claude Code ou n'importe quel autre client MCP peut se connecter à Cairn, chercher dans les candidatures et enregistrer l'avancement : une nouvelle candidature, un changement de statut, un entretien. L'utilisateur autorise chaque agent dans le navigateur et peut le déconnecter depuis les paramètres. Tout ce qu'un agent écrit porte son nom. J'explique comment c'est construit dans Ajouter MCP à une API ASP.NET Core.

Timeline entry logged by Claude Code