Benoît Grand

Bonjour, je suisHello, I’m

Benoît Grand

Data Engineer · Front Office Electronic Trading · BNP Paribas CIB

Le jour, je construis des data pipelines et des outils LLM pour le front office de BNP Paribas CIB. Le soir, je conçois mes propres produits de bout en bout : un moteur de recherche d’emploi qui suit 3 052 entreprises, un bot qui y puise ses offres et postule à ma place, et un site sur la présidentielle 2027 avec son jeu.

By day I build data pipelines and LLM tools for the front office at BNP Paribas CIB. At night I build my own products end to end: a job search engine tracking 3,052 companies, a bot that picks offers from it and applies for me, and a site and game about France’s 2027 presidential election.

ExpérienceExperience
6 ans, data et IA en banque et assurance6 years, data and AI in banking and insurance
FormationEducation
Deux masters, ENSIIE et Paris 1 Panthéon-SorbonneTwo master’s degrees, ENSIIE and Paris 1 Panthéon-Sorbonne
LanguesLanguages
Français natif, anglais courant, espagnol intermédiaireFrench native, English fluent, Spanish intermediate

Prochain runNext run --:-- Trois crons par jourThree cron jobs a day

LinkedIn

Trois projets perso, tous en service, dessinés comme un pipelineThree side projects, all in service, drawn as a pipeline

Survolez un nœud pour suivre la donnée, cliquez pour le détailHover a node to follow the data, click for detailsTouchez un nœud pour le détailTap a node for details

En ligneLive

JobMapAI

Moteur de recherche d’emploiJob search engine

1 112 7001,112,700 offres en ligneoffers online

▲ 149 378 cette semaine149,378 this week

Local

auto_apply

Le bot qui postule tout seulThe bot that applies on its own

29 %29% des formulairesof forms

remplis sans aide, en testfilled in unaided, in testing

offres de JobMapAIoffers from JobMapAI

Démonstration du bot en mode dry-runBot demo in dry-run mode

$ python quick_apply.py --dry-run --max 3 # fill in forms without submitting

    En ligneLive

    Présidentielle 2027

    Site et jeu de pronosticsElection site and prediction game

    540+ pages, français et anglaispages, in French and English

    J-172 avant le 1er tour172 days to the first round

    Les projets en détailProjects in detail

    Ce que fait chaque pipelineWhat each pipeline does

    Moteur de recherche d’emploiJob search engineEn ligneLive

    JobMapAI

    Les offres d’emploi de 3 052 grandes entreprises, lues chaque jour directement sur leurs sites carrière, classées et réunies dans un seul moteur de recherche.

    Job offers from 3,052 large companies, read every day straight from their own careers sites, classified and gathered in a single search engine.

    offres en ligneoffers online
    1 112 7001,112,700
    nouvelles cette semainenew this week
    ▲ 149 378149,378
    entreprises suiviescompanies tracked
    3 0523,052
    payscountries
    169
    villescities
    51 14951,149
    Page d’accueil de JobMapAI en français : 1 112 700 offres en ligne chez 3 052 entreprises JobMapAI home page: 1,112,700 offers online at 3,052 companies
    AccueilHome
    Statistiques de JobMapAI : chiffres clés et carte du monde des offres par pays JobMapAI statistics: key figures and a world map of offers by country
    StatistiquesStatistics

    Ce que ça faitWhat it does

    • Scraping quotidien des sites carrière du CAC 40, des grandes banques, du MSCI World, du Nasdaq et du Stoxx Europe 600.
    • Chaque offre est nettoyée puis classée : métier, technologies, contrat, niveau, pays et ville, télétravail, langue, salaire quand il est publié, sponsoring de visa.
    • Recherche à facettes, pages entreprise et statistiques : carte du monde, profil de recrutement de chaque entreprise, heatmap compétences × entreprises. En anglais et en français.
    • « Mon match » : on décrit ce qu’on cherche en une phrase, un LLM en tire un profil structuré, puis chaque offre reçoit un score (lieu 35, poste 30, compétences 15, niveau 12, contrat 8).
    • Daily scraping of the careers sites of the CAC 40, major banks, the MSCI World, the Nasdaq and the Stoxx Europe 600.
    • Every offer is cleaned and classified: job family, technologies, contract, level, country and city, remote policy, language, salary when published, visa sponsorship.
    • Faceted search, company pages and statistics: a world map, each company’s hiring profile, a skills × companies heatmap. In English and French.
    • “My match”: describe what you want in one sentence, an LLM turns it into a structured profile, then every offer gets a score (location 35, role 30, skills 15, level 12, contract 8).

    Agent de candidatureJob application agentLocalauto_apply

    Le bot qui postule tout seulThe bot that applies on its own

    Il prend dans JobMapAI les offres qui correspondent à mon profil, ouvre le formulaire, répond aux questions et envoie la candidature. Au moindre doute, il me rend la main.

    It picks the JobMapAI offers that match my profile, opens the application form, answers the questions and submits. At the slightest doubt, it hands control back to me.

    PsstSi vous êtes recruteur, pas d’inquiétude : je n’ai pas postulé à votre offre avec ce bot. Il est encore en phase de test, sur de faux profils créés pour l’occasion. Vous pouvez reprendre une activité normale.

    PsstIf you’re a recruiter, don’t worry: I didn’t apply to your job with this bot. It’s still in testing, on fake profiles created for the occasion. You may now resume normal activities.

    Bip bip : la main passe à l’humainBeep beep: over to a human

    des offres JobMapAI tentées : formulaire rempli de bout en bout, sans aide humaineof the JobMapAI offers tried: form filled in end to end, with no human help
    29 %29%
    1. 1 · source

      OffresOffers

      Base de JobMapAI sur la VM : postes data, ML et IA, pays visés, moins de 30 jours, offres déjà vues exclues, deux au plus par employeur.

      JobMapAI’s database on the VM: data, ML and AI roles, target countries, under 30 days old, offers already seen excluded, at most two per employer.

    2. 2 · filter

      TriTriage

      Qwen3 14B lit l’offre et écarte celles hors profil : langue exigée, stage, freelance, habilitation de sécurité.

      Qwen3 14B reads the offer and drops the ones that don’t fit: required language, internship, freelance, security clearance.

    3. 3 · browser

      FormulaireForm

      Playwright pilote Chrome. Workday : compte puis 5 à 6 étapes. Greenhouse, Lever et Ashby : un seul formulaire, sans compte.

      Playwright drives Chrome. Workday: an account, then 5 to 6 steps. Greenhouse, Lever and Ashby: a single form, no account.

    4. 4 · decide

      RéponsesAnswers

      Chaque question est lue (label, type, options). Règles sûres d’abord, puis réponses connues, et le LLM seulement en dernier recours.

      Each question is parsed (label, type, options). Safe rules first, then known answers, and the LLM only as a last resort.

    5. 5 · human

      Contrôle humainHuman check

      Question sans réponse sûre, CAPTCHA ou code reçu par e-mail : un bip, et la main passe à l’humain. En mode automatique, l’offre est mise de côté.

      A question with no safe answer, a CAPTCHA or an emailed code: a beep, and a human takes over. In automatic mode, the offer is set aside.

    6. 6 · sink

      Envoi et logsSubmit and log

      Envoi, puis log dans SQLite et un fichier des réponses données pour chaque candidature, relus avec --report.

      Submit, then a record in SQLite and a file of the answers given for each application, reviewed with --report.

    Garde-fousSafeguards

    • Le modèle a le droit de répondre UNSURE : il n’invente jamais un fait qu’il ne connaît pas, l’offre est alors sautée ou reprise par un humain.
    • Les CAPTCHA et les codes de vérification restent toujours à l’humain.
    • Plafond quotidien et pauses aléatoires entre deux offres, pour ne pas surcharger les sites.
    • Chaque réponse donnée par le LLM est loggée pour relecture.
    • The model is allowed to answer UNSURE: it never makes up a fact it doesn’t know, so the offer is skipped or picked up by a human.
    • CAPTCHAs and verification codes always stay with the human.
    • A daily cap and random pauses between offers, so sites never get hammered.
    • Every answer the LLM gives is logged for review.

    Site politique et jeu de pronosticsElection site and prediction gameEn ligneLive

    Présidentielle 2027 et Le P’tit Isoloirand Le P’tit Isoloir

    Un site sur l’élection présidentielle française de 2027 : candidats, sondages mis à jour chaque nuit, scénarios et programmes. Avec Le P’tit Isoloir, un jeu de pronostics qui se joue en ligue entre amis.

    A site about France’s 2027 presidential election: candidates, polls updated every night, scenarios and programmes. Plus Le P’tit Isoloir, a prediction game you play in leagues with friends.

    pages, FR et ENpages, FR and EN
    540+
    personnalités suiviescontenders profiled
    16
    sondages mis à jourpolls refreshed
    chaque nuitnightly
    manches, oct. → marsrounds, Oct → Mar
    6
    jours avant le 1er tourdays to the first round
    172
    Page d’accueil de Présidentielle 2027 : « Qui pour l’Élysée en 2027 ? » English home page of the site: “Who will win the Élysée in 2027?”
    AccueilHome
    Le P’tit Isoloir sur téléphone, le jeu de pronostics Le P’tit Isoloir on a phone, the prediction game
    Le jeu sur mobileThe game on mobile

    Ce que ça faitWhat it does

    • Fiches des 16 personnalités en lice ou pressenties, notées sur six critères, avec comparateur, programmes, quiz et calendrier.
    • Sondages récupérés chaque nuit sur Wikipédia : hypothèses de premier tour et duels de second tour, courbes lissées, simulateur de scénarios, bloc « Ce qui a changé » en page d’accueil.
    • Le P’tit Isoloir : douze questions proposent un classement, le joueur l’ajuste, choisit le vainqueur du second tour et son score, puis dépose son bulletin. Une manche se joue chaque mois jusqu’en mars 2027, puis les deux vrais tours comptent.
    • Ligues privées avec code d’invitation, classement général, PWA installable qui fonctionne hors ligne.
    • Profiles of the 16 declared or likely contenders, rated on six criteria, with a comparison tool, programmes, a quiz and a calendar.
    • Polls pulled from Wikipedia every night: first-round hypotheses and run-off duels, smoothed curves, a scenario simulator and a “What changed” block on the home page.
    • Le P’tit Isoloir: twelve questions suggest a ranking, the player adjusts it, picks the run-off winner and margin, then casts a ballot. A round is scored every month until March 2027, then the two real rounds count.
    • Private leagues with invite codes, a global leaderboard and an installable PWA that works offline.

    Du problème à la mise en productionFrom problem to production

    À proposAbout

    Je m’appelle Benoît Grand. Après une prépa MPSI-PSI au lycée Jean Perrin de Lyon, j’ai suivi un double diplôme : ingénieur ENSIIE en mathématiques appliquées et informatique, et Paris 1 Panthéon-Sorbonne en modélisation statistique économique et financière. J’ai commencé comme data scientist et actuaire chez Generali, puis j’ai passé trois ans et demi au risque de crédit de la Société Générale, jusqu’à en devenir tech lead. Depuis septembre 2025, je suis data engineer au front office de BNP Paribas CIB, sur le trading électronique.

    J’aime partir d’un problème concret et livrer l’outil en entier, de la collecte des données jusqu’à la mise en production. En 2024, j’ai aussi enseigné Python et SQL à la Sorbonne pendant deux semestres.

    I’m Benoît Grand. After MPSI-PSI preparatory classes at Lycée Jean Perrin in Lyon, I completed a double degree: engineering at ENSIIE in Applied Mathematics and Computer Science, and Economic and Financial Statistical Modeling at Paris 1 Panthéon-Sorbonne. I started as a data scientist and actuary at Generali, then spent three and a half years in credit risk at Société Générale, ending up as tech lead. Since September 2025 I’ve been a data engineer in front office electronic trading at BNP Paribas CIB.

    I like starting from a concrete problem and shipping the whole tool, from data collection to production. In 2024 I also taught Python and SQL at the Sorbonne for two semesters.

    • Data platforms

      Pipelines Spark et SQL, migrations de SAS vers Dataiku et Hadoop, data models pour le risque.

      Spark and SQL pipelines, migrations from SAS to Dataiku and Hadoop, data models for risk.

    • Marchés et risqueMarkets and risk

      Trade surveillance, modèles LGD et PD, actuariat.

      Electronic trading surveillance, LGD and PD models, actuarial work.

    • LLM en productionLLMs in production

      Outils MCP, alertes compliance investiguées par LLM, modèles open source en local.

      MCP tools, compliance alerts investigated by an LLM, open-source models running locally.

    6 ans, data et IA en banque et assurance6 years of data and AI in banking and insurance

    ParcoursExperience

    1. sept. 2025 → aujourd’huiSep 2025 → present

      BNP Paribas CIB

      Data Engineer, Front Office Electronic Trading

      • Scénarios de trade surveillance (Market Abuse, AML, Fraud) sur les flux de trading électronique Equities, Fixed Income, FX et Derivatives, intégrés aux plateformes de surveillance Nasdaq (US, EU, APAC).
      • Outils MCP et skills LLM pour automatiser les pipelines ETL, et système d’alertes compliance piloté par LLM qui investigue les cas signalés.
      • Pipelines du data warehouse front office (Python, SQL et PL/SQL, Oracle APEX, Spark), CI/CD et monitoring de production (Jenkins, Git, Linux), au contact des traders, des quants et de la compliance.
      • Trade surveillance scenarios (market abuse, AML, fraud) for electronic trading flows across equities, fixed income, FX and derivatives, integrated with Nasdaq surveillance platforms (US, EU, APAC).
      • MCP tools and LLM-powered skills that automate ETL pipelines, and an LLM-driven compliance alert system that investigates flagged cases.
      • Front office data warehouse pipelines (Python, SQL and PL/SQL, Oracle APEX, Spark), CI/CD and production monitoring (Jenkins, Git, Linux), working closely with traders, quants and compliance.
    2. sept. 2023 → août 2025Sep 2023 → Aug 2025

      Société Générale

      Senior Data Engineer & Tech Lead, Credit Risk

      • Tech lead de la migration des modèles LGD wholesale de SAS vers Dataiku DSS, pour les portefeuilles CIB Large Projects et Real Estate Finance.
      • Conception des data models conceptuels et physiques des frameworks LGD et PD.
      • Product Owner d’une Credit Risk Modeling Platform nouvelle génération, pour les quants et les risk managers. Standards Python, Spark et Dataiku, pipelines sur Databricks, mentorat des data engineers juniors.
      • Tech lead for migrating wholesale LGD models from SAS to Dataiku DSS, for the CIB Large Projects and Real Estate Finance portfolios.
      • Owned the conceptual and physical data models of the LGD and PD frameworks.
      • Product Owner of a next-generation credit risk modeling platform for quants and risk managers. Set Python, Spark and Dataiku standards, built pipelines on Databricks, mentored junior data engineers.
    3. 2024 · 2 semestres2024 · 2 semesters

      Sorbonne School of Economics

      Chargé de cours Python et SQL, master Data AnalyticsPython & SQL lecturer, Data Analytics master’s

      • Deux semestres de cours de Python et de SQL pour les étudiants du master : 34 heures par semestre, contenu et évaluation compris.
      • Taught Python and SQL to the master’s students for two semesters: 34 hours per semester, including curriculum and assessment.
    4. mars 2022 → sept. 2023Mar 2022 → Sep 2023

      Société Générale

      Data Scientist / Data Engineer, Credit Risk

      • Migration et optimisation des pipelines de modélisation LGD de SAS vers Dataiku DSS, en Python et PySpark.
      • Migrated and optimized LGD modeling pipelines from SAS to Dataiku DSS with Python and PySpark.
    5. sept. 2020 → mars 2022Sep 2020 → Mar 2022

      Generali

      Data Scientist / Actuaire, assuranceData Scientist / Actuary, Insurance

      • Pilotage de la migration de SAS vers Hadoop (HDFS, PySpark) et reporting Tableau en temps réel.
      • Modèles de machine learning et actuariels (logistic regression, random forest, boosting, survival analysis) pour prédire le comportement des clients, la valeur des contrats et les résiliations en santé.
      • Outils en Python, PySpark, R Shiny et PostgreSQL, déployés sur Docker, Kubernetes et AWS.
      • Led the migration from SAS to Hadoop (HDFS, PySpark) and real-time Tableau reporting.
      • Machine learning and actuarial models (logistic regression, random forest, boosting, survival analysis) predicting client behavior, contract value and health contract termination.
      • Tools built with Python, PySpark, R Shiny and PostgreSQL, deployed on Docker, Kubernetes and AWS.

    Double diplôme · 2021Double degree · 2021

    FormationEducation

    1. 2020 → 2021

      Université Paris 1 Panthéon-Sorbonne

      Master 2, modélisation statistique économique et financièreMaster’s degree (M2) in Economic and Financial Statistical Modeling

    2. 2018 → 2021

      ENSIIE · Paris-Saclay, Institut Mines-Télécom

      Diplôme d’ingénieur (grade de master), mathématiques appliquées et informatiqueEngineering degree (Master’s level) in Applied Mathematics & Computer Science

    3. 2018 → 2020

      Université Paris-Saclay

      Licence et Master 1 de mathématiques appliquées (double diplôme)Bachelor’s and Master 1 in Applied Mathematics (double degree)

    4. 2015 → 2018

      Lycée Jean Perrin · Lyon

      Classes préparatoires aux grandes écoles, MPSI puis PSIPreparatory classes for the French grandes écoles, MPSI then PSI

    Au travail et dans mes projetsAt work and in my projects

    Stack

    code
    Python, SQL, PL/SQL, Scala, R, SAS, C, C++, JavaScript
    data
    Spark, PySpark, Dataiku DSS, Databricks, Hadoop (HDFS), Airflow, pandas, NumPy, DuckDB
    databases
    Oracle APEX, PostgreSQL, MySQL, SQLite, Cloudflare D1
    devops & cloud
    Git, Jenkins, Docker, Kubernetes, AWS, Linux, Oracle Cloud, Cloudflare Workers, Caddy, cron
    ai
    LLM, MCP, Ollama, Qwen, embeddings, machine learning
    web & automation
    Playwright, Flask, Jinja2, BeautifulSoup, PWA
    bi
    Tableau, R Shiny, Excel
    certification
    Microsoft Azure Fundamentals (AZ-900)
    langueslanguages
    Français (natif), anglais (courant), espagnol (intermédiaire)French (native), English (fluent), Spanish (intermediate)

    contact

    On en parle ?Let’s talk.

    Pour un poste, un projet, ou simplement parler data et LLM, le plus simple est de m’écrire sur LinkedIn.

    About a role, a project, or simply data and LLMs, the easiest way is a message on LinkedIn.

    LinkedIn · Benoît Grand