Construire un agent de veille d'offres multi-sources avec l'IA, de zéro à la première mission freelance
Quinze ans de product management chez M6 et VIP, et une idée plein la tête — mais rien sur papier. En 8 séances, Marc construit un job scout IA multi-sources, décroche une mission Head of Product freelance, et automatise ses réunions dès le premier jour chez son client.
Coaching : Alexis Albouze (fondateur TIA)
Avant / après
Ce qui coinçait, et ce qui tourne depuis. Les deux colonnes décrivent la même production, à quelques semaines d'écart.
- Une idée de SaaS PM dans la tête, rien posé sur papier
- N8N ouvert pour une veille d'offres, bloqué sur les configurations
- Un bot WhatsApp pour plombiers déployé — mais sans structure ni architecture
- Dépendant des offres CDI dans un marché incertain
- JobScout en production : scraping multi-sources, scoring LLM, notifications Telegram quotidiennes
- Architecture déployée : front Vercel, back Hetzner, base Supabase, 3 sources intégrées
- Agent de réunions opérationnel dès le 1er jour chez Aria (Notion + Slack + Linear + Google Drive MCPs)
- Mission Head of Product freelance signée chez Aria pendant la formation
Comment ça s'est passé
Marc termine sa mission de CPO chez M6 / Bedrock en décembre 2025. Il a 15 ans de product management, 5 ans de développement en amont, et une idée de SaaS PM dans la tête — rien de posé sur papier. Il a déjà ouvert N8N pour automatiser une veille d'offres d'emploi et bloqué sur les configs. Il cherche une formation structurée pour construire des automatisations, des agents, potentiellement un SaaS complet.
8 séances de coaching individuel, calées sur son projet réel dès la première heure. La séance 1 est avec Gaëlle ; dès la séance 4, Marc passe avec Alexis (fondateur TIA) parce que son niveau technique — développeur de formation, déjà un bot WhatsApp plombiers déployé sur Hetzner — dépasse le programme standard. On travaille la stack complète : scraping multi-sources avec JobSpy et proxies résidentiels WebShare, architecture front/back découplée (Vercel + Hetzner), scoring d'offres par LLM (Claude Haiku), intégration France Travail API, notifications Telegram. Puis, en fin de formation, les agents MCP connectés à Notion, Slack, Linear et Google Drive pour piloter ses réunions chez son client.
À la séance 6, Marc annonce qu'il a signé une mission Head of Product freelance chez Aria, via la structure Jump. Le coaching bascule : on travaille ses cas réels chez ce client. À la séance 8, il présente un agent opérationnel — deux skills (skill-todo et skill-meetings) — qui extrait les actions des comptes-rendus, les priorise en trois buckets, et prépare les one-on-ones. Connecté à Notion, Slack, Linear et Google Drive, il s'en sert depuis son premier jour chez Aria.
Étape par étape
Le coaching part de ce que la personne produit déjà. Voici les jalons réels du parcours, blocages compris.
- Séances 1-2
Partir de ce qu'il a déjà construit
Marc arrive avec un bot WhatsApp de facturation pour plombiers déjà déployé sur Hetzner, et une tentative de veille d'offres bloquée sur N8N. On cartographie l'idée de SaaS PM (automatisation du cycle discovery → PRD → priorisation) et on outille les premières recherches : agents Claude pour préparer des entretiens de recrutement, exploration Make et N8N.
« Là, je me suis lancé, la semaine dernière, j'ai créé un outil pour les plombiers faire de la facturation des devis. […] j'ai déjà quelque chose qui tourne sur mon téléphone avec WhatsApp. »
- Séance 3
Le mur LinkedIn — et la méthode de scraping
Marc veut scraper les offres LinkedIn. Il se heurte au login wall, tente Appify, affronte la qualité variable des données brutes. Première leçon : la recherche d'une source stable exige de tester plusieurs méthodes. La liste de candidats (Gems Claude pour l'entretien) est prête, le scraping ne l'est pas encore.
« Je suis parti sur Appify. Qui avait déjà un job de scrapping d'offres. […] Il faut tester beaucoup de trucs pour arriver à avoir un truc propre, clean, avec des belles URL, avec un truc qui se met à jour tous les jours. »
- Séances 4-5
JobScout : de l'idée à la production
La séance 4 est la charnière. Alexis prend le relais de Gaëlle — le niveau de Marc l'exige. On plonge dans Claude Code, la rotation de proxies résidentiels WebShare, JobSpy pour LinkedIn, BeautifulSoup pour les sites HTML (Freework, HelloWork). Entre les deux séances, Marc déploie une application full stack : scraper multi-sources, back Hetzner, front Vercel, base Supabase. La séance 5 est une revue d'architecture du code réel : découplage front/scraper validé, dédup par URL, sécurité .env.
- Séance 6
Mission freelance signée — et le scoring LLM
Marc annonce qu'il a signé une mission Head of Product freelance chez Aria via Jump. La formation devient immédiatement opérationnelle sur son contexte réel. On travaille le scoring LLM des offres : JSON vs Markdown pour la sortie structurée, Claude Haiku pour l'économie de tokens, architecture cron Hetzner vs Edge Function Supabase pour les notifications Telegram.
« Je me suis pris la tête cette semaine, honnêtement, avec le scoring LLM. »
- Séances 7-8
Un agent de réunions pour son premier jour chez Aria
Marc aborde son premier jour chez Aria avec 5+ réunions quotidiennes. La séance 7 est conceptuelle : architecture multi-couche d'agents (KPI, worker, verifier, heal). La séance 8, il présente un agent opérationnel avec deux skills (skill-todo, skill-meetings) connectés à Notion, Slack, Linear et Google Drive — extrait les actions des CRs, priorise en trois buckets, prépare les one-on-ones. Il l'utilise depuis J+1.
Ce qui a été construit
Pas des exercices : des outils qui tournent après la formation.
- JobScout déployé en production : scraping LinkedIn (JobSpy + proxies WebShare), sites HTML (BeautifulSoup), France Travail API, scoring par Claude Haiku, notifications Telegram quotidiennes
- Architecture full stack : front Vercel, back Hetzner, base Supabase — construction et déploiement autonomes entre deux séances
- Agent de gestion de réunions opérationnel (skill-todo + skill-meetings, MCPs Notion / Slack / Linear / Google Drive) — utilisé dès J+1 chez Aria
- Mission Head of Product freelance signée chez Aria (structure Jump) pendant la formation
Ce qui a été dit
« J'ai rien, j'ai tout dans ma tête. »
« Si j'arrive à aller au bout de ce produit-là, c'est un produit à un milliard. En fait, ça fait 15 ans, 20 ans que je fais du produit. »
« Là, je me suis lancé, la semaine dernière, j'ai créé un outil pour les plombiers faire de la facturation des devis. […] j'ai déjà quelque chose qui tourne sur mon téléphone avec WhatsApp. »
« Je suis parti sur Appify. Qui avait déjà un job de scrapping d'offres. […] Il faut tester beaucoup de trucs pour arriver à avoir un truc propre, clean, avec des belles URL, avec un truc qui se met à jour tous les jours. »
« Je me suis pris la tête cette semaine, honnêtement, avec le scoring LLM. »
Ce qu'on nous demande sur ce sujet
Les questions réellement posées autour de ce cas, répondues à partir de ce qui s'est passé pendant la formation.
Comment construire un scraper d'offres d'emploi multi-sources avec l'IA ?
Marc a combiné trois sources dans JobScout : LinkedIn via la librairie JobSpy avec rotation de proxies résidentiels (WebShare) pour contourner les restrictions IP, BeautifulSoup pour scraper les sites HTML comme Freework et HelloWork, et l'API officielle France Travail. L'architecture est découplée : un front léger sur Vercel, un back long-running sur Hetzner (les fonctions Vercel sont limitées en durée d'exécution), une base Supabase pour la déduplication par URL. Le tout avec une déduplication par URL — pas par titre, qui change trop souvent — et les secrets dans le .env.
Comment scorer des offres d'emploi avec un LLM de manière économique ?
Marc a utilisé Claude Haiku (le modèle le moins cher de la famille Claude) pour le scoring, après être passé par OpenRouter. La sortie est structurée en JSON — plus fiable que le Markdown pour la déstructuration programmatique — avec un prompt caché en cache pour minimiser les tokens facturés à chaque appel. Le scoring LLM a exigé plusieurs jours d'ajustements : calibrage du prompt, test de différents formats de sortie, et traitement des cas limites (offres en langue étrangère, durée freelance vs CDI).
Comment automatiser la gestion de ses réunions avec Claude Code ?
Marc a construit deux skills Claude Code chez son client : skill-todo (qui extrait les actions des comptes-rendus de réunion et les priorise en trois buckets) et skill-meetings (qui prépare les agendas de one-on-one et de réunion d'équipe). Les skills sont connectés via MCP à Notion (base de connaissance), Slack, Linear (suivi des actions) et Google Drive. L'agent enregistre toutes ses réunions via un abonnement tl;dv, traite les transcripts, et met à jour Notion automatiquement.
Quelle architecture pour une application de scraping qui tourne en production ?
Le point clé appris lors du coaching : séparer le front du scraper. Vercel est idéal pour les interfaces web légères mais limite la durée d'exécution des fonctions — un scraper multi-sources peut tourner plusieurs minutes. La solution : front sur Vercel, back long-running (scraper + scoring LLM) sur un serveur Hetzner. La déduplication se fait en base (Supabase) par URL ou identifiant unique, jamais par titre. Les clés API restent dans le .env et le .gitignore — ne jamais les pousser en public.
Votre projet mérite le même traitement
Le programme est le même pour tout le monde. Le coaching, lui, part de vos outils, de vos fichiers et de ce que vous voulez construire.
Découvrir la Formation IA GénérativeD'autres entreprises l'ont fait
Conseil SEO / Digital