/* Hi-fi homepage — shared building blocks
 * Live counters, scrolling feed, dashboard mockups, marquee, comparator,
 * kanban, FAQ, footer. All animated, no real product screens.
 */

const { useState, useEffect, useRef, useMemo } = React;

// --------------------------------------------------------------- Beehiiv API
const BEEHIIV_PUB_ID = 'pub_e07e4481-060d-4aa9-8abe-d2d7618f7186';

// Calls /api/subscribe (Vercel serverless) — server-side Beehiiv API call, no CORS issue
window.beehiivSubscribe = async (email, utms = {}) => {
  const res = await fetch('/api/subscribe', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      email,
      utm_source:   utms.utm_source   || 'upscale-homepage',
      utm_medium:   utms.utm_medium   || 'organic',
      utm_campaign: utms.utm_campaign || 'newsletter',
    }),
  });
  if (!res.ok) throw new Error('subscribe failed');
  return res.json();
};

// --------------------------------------------------------------- i18n
const COPY = {
  fr: {
    nav: ['Méthode', 'Use Cases', 'Ressources'],
    cta: { signin: 'Se connecter', book: 'Réserver une démo', call: 'Réserver un call', short: 'Démarrer' },
    hero: {
      pill: '+80 clients accompagnés',
      h1a: 'Votre sales machine',
      h1b: '',
      h1mark: 'pipeline',
      h1c: '.',
      sub: 'Nous créons des systèmes d\'acquisition multicanal qui vous génèrent des rendez-vous qualifiés.',
      ctaA: 'Réserver une démo',
      ctaB: '▶ Use cases',
      proof: 'Utilisé par 50+ équipes B2B',
      // Hero variant 2 — terminal
      h2a: 'On gère votre prospection.',
      h2b: 'Vous',
      h2mark: 'closez',
      h2c: '',
      // Hero variant 3 — split
      h3a: 'Reconnectez',
      h3mark: 'lead-gen',
      h3b: ', signaux et CRM.',
      h3c: 'Une seule machine.',
    },
    fun: {
      h1a: 'Spammez moins.',
      h1b: 'Closez',
      h1mark: 'plus',
      h1c: '.',
      sub: 'Marre des séquences "Hey {firstName}" qui finissent en spam ? On a construit le système qui détecte qui est prêt à signer — et on tape pile au bon moment. Promis, c\'est moins violent que ça en a l\'air.',
    },
    metrics: [
      { v: '×7,4', l: 'ROI moyen' },
      { v: '+80', l: 'clients accompagnés' },
      { v: '+1,2M€', l: 'de pipeline créé' },
    ],
    problem: {
      eyebrow: 'Le constat',
      h2: 'Votre acquisition n\'est pas systémique.',
      sub: 'Près de 80 % des entreprises B2B ont une prospection non systémique. Chaque action est isolée, sans process solide — résultat : une sous-performance chronique.',
    },
    solution: {
      eyebrow: 'La solution',
      h2: 'Mettre en place un système complet.',
      mark: '',
    },
    signals: {
      eyebrow: 'Bibliothèque',
      h2a: '60+ signaux d\'achat,',
      h2mark: 'streamés live',
      h2b: '.',
      sub: 'On active les signaux les plus pertinents pour vous en temps réel.',
    },
    tools: {
      eyebrow: 'Stack',
      h2a: 'La meilleure',
      h2mark: 'stack',
      h2b: ' du marché.',
    },
    setup: {
      eyebrow: 'Déploiement',
      h2a: 'Opérationnel en 2 semaines. ',
      h2mark: 'ROI rapide',
      h2b: ' !',
      h2: 'Opérationnel en 2 semaines. ROI rapide !',
      sub: '',
    },
    compare: {
      eyebrow: 'Pourquoi nous',
      h2: 'Pas une agence. Pas un SaaS.',
      mark: 'Une product agency.',
    },
    cases: {
      eyebrow: 'Clients',
      h2a: 'Du pipeline.',
      h2mark: 'Pas du buzz',
      h2b: '.',
    },
    team: {
      eyebrow: 'L\'équipe',
      h2: 'Un collectif expert en GTM',
      sub: 'Nous activons les meilleurs experts en fonction de vos besoins et de la stratégie à exécuter.',
    },
    faq: {
      eyebrow: 'FAQ',
      h2: 'On répond à tout.',
      items: [
        ['Sous combien de temps notre 1ère campagne est live ?', 'En l\'espace de deux semaines, vos premières campagnes seront lancées et prêtes à générer des rendez-vous.'],
        ['Est-ce que les outils sont à notre charge ?', 'Nous avons une stack technique prête à prospecter pour vous avec les meilleurs outils du marché. Les seuls outils à vos frais seront votre infrastructure mail et vos outils d\'outreach.'],
        ['Comment pouvons-nous suivre ce que vous faites ?', 'Nous avons développé une application interne qui vous permet de suivre en direct : le pipeline généré, les campagnes en cours et à venir, ainsi que toutes les réponses obtenues. Tout est transparent, vous avez accès à tout.'],
        ['Est-ce qu\'il y a un engagement minimum ?', 'Chaque client avec lequel nous travaillons s\'engage sur une période minimale de 3 mois, renouvelable.'],
        ['Que se passe-t-il à la fin des 3 mois ?', 'Vous restez ou vous partez. Pas de lock-in. Si vous restez, on repasse en mensuel sans engagement, si vous partez, on vous transfère la doc et la stack.'],
      ],
    },
    cta_final: {
      h2a: 'Prêt à booster votre',
      h2mark: 'pipeline',
      h2b: ' ?',
      sub: '30 minutes pour auditer votre système d\'acquisition et vous orienter vers les solutions les plus pertinentes.',
      kpis: [['clients accompagnés', '+80'], ['pipeline généré', '+1,2M€'], ['ROI moyen', '×7,4']],
    },
    footer: {
      tagline: 'Agence spécialisée en stratégie d\'acquisition B2B basée sur des systèmes go-to-market et revops.',
      cols: [
        ['Plateforme', [
          ['Connexion', 'https://upscale-platform.vercel.app/'],
          ['Prendre RDV', 'https://cal.com/antoineguine/appeldedecouverte'],
        ]],
        ['Ressources', [
          ['Newsletter', '#/newsletter'],
          ['Vidéos', 'https://www.youtube.com/@antoine_Guine/videos'],
          ['Articles', '#/ressources'],
          ['Use cases', '#/use-cases'],
        ]],
        ['L\'Agence', [
          ['Mentions légales', '#/mentions-legales'],
          ['Politique de confidentialité', '#/politique-confidentialite'],
        ]],
      ],
    },
  },
  en: {
    nav: ['Method', 'Use Cases', 'Resources'],
    cta: { signin: 'Sign in', book: 'Book a demo', call: 'Book a call', short: 'Get started' },
    hero: {
      pill: 'Sales Machine v3 · shipping this quarter',
      h1a: 'Buying signals,',
      h1b: 'turned into',
      h1mark: 'pipeline',
      h1c: '.',
      sub: 'Upscale is a GTM product agency. We build, run and ship your sales machine — 60+ live buying signals, dedicated mail infra, CRM enriched in real time. You close. We operate.',
      ctaA: 'Book a demo',
      ctaB: '▶ Use cases',
      proof: 'Operating GTM for 50+ B2B teams',
      h2a: 'We run your prospecting.',
      h2b: 'You',
      h2mark: 'close',
      h2c: '',
      h3a: 'Reconnect',
      h3mark: 'lead-gen',
      h3b: ', signals and CRM.',
      h3c: 'One machine.',
    },
    fun: {
      h1a: 'Spam less.',
      h1b: 'Close',
      h1mark: 'more',
      h1c: '.',
      sub: 'Tired of "Hey {firstName}" sequences ending in spam folders? We built the system that detects who\'s ready to buy — and lands the right ping at the right moment. Less brutal than it sounds.',
    },
    metrics: [
      { v: '×7.4', l: 'average ROI' },
      { v: '50+', l: 'GTM teams operated' },
      { v: '80+', l: 'clients onboarded' },
    ],
    problem: {
      eyebrow: 'The reality',
      h2: 'Your acquisition channels don\'t talk to each other.',
      sub: 'Lead-gen on one side, CRM on the other, signals nowhere. We rewire everything into one machine.',
    },
    solution: { eyebrow: 'The fix', h2: '3 modules, 1 system.', mark: '0 friction' },
    signals: {
      eyebrow: 'Library',
      h2a: '60+ buying signals,',
      h2mark: 'streamed live',
      h2b: '.',
      sub: 'We don\'t blast everyone. We trigger sequences the moment a buyer becomes a buyer — funding closed, VP hired, stack swapped.',
    },
    tools: { eyebrow: 'Stack', h2a: '40+ GTM tools,', h2mark: 'orchestrated', h2b: ' for you.' },
    setup: { eyebrow: 'Rollout', h2a: '2 weeks. Your first ', h2mark: 'meetings', h2b: '.', h2: '2 weeks. Your first meetings.', sub: '' },
    compare: { eyebrow: 'Why us', h2: 'Not an agency. Not a SaaS.', mark: 'A product agency.' },
    cases: { eyebrow: 'Customers', h2a: 'Pipeline shipped.', h2mark: 'Not slides', h2b: '.' },
    team: { eyebrow: 'The team', h2: '8 operators. 0 freelancers.', sub: 'The team that pitches operates. You meet Antoine, you work with Antoine.' },
    faq: {
      eyebrow: 'FAQ', h2: 'We answer everything.',
      items: [
        ['How fast does our first campaign go live?', '4 weeks max from kickoff to first sequence in production. Discovery W1, setup W2, first campaign live W3, ongoing optimization from W4.'],
        ['How do you protect our main domain?', 'We buy and warm secondary domains, segment volume, monitor SPF/DKIM/DMARC continuously. Your primary stays untouched.'],
        ['What visibility do we get?', 'Real-time shared Slack, dashboard with all sequences, copy signed off before every launch. No black box.'],
        ['Which tools are included?', 'Apollo, Clay, Pharow, Lemlist, HeyReach, HubSpot/Salesforce, Cargo, Pronto and 30+ more. No license to buy on your side.'],
        ['What happens after 3 months?', 'You stay or you leave. No lock-in. Stay → monthly, no commitment. Leave → we hand over docs and stack.'],
        ['Do you guarantee a number of meetings?', 'We guarantee system and process quality, not a raw number — we\'re not a leads shop. But on average clients double their pipeline in 90 days.'],
      ],
    },
    cta_final: {
      h2a: 'Ready to ship',
      h2mark: 'pipeline',
      h2b: '?',
      sub: '30 minutes with Antoine. We audit your GTM and tell you what would actually work. If we can\'t add value, we say so.',
      kpis: [['clients onboarded', '+80'], ['pipeline generated', '+1.2M€'], ['average ROI', '×7.4']],
    },
    footer: {
      tagline: 'The GTM operating system for B2B teams. Paris · Remote.',
      cols: [
        ['Platform', [
          ['Sign in', 'https://upscale-platform.vercel.app/'],
          ['Book a meeting', 'https://cal.com/antoineguine/appeldedecouverte'],
        ]],
        ['Resources', [
          ['Newsletter', '#/newsletter'],
          ['Videos', 'https://www.youtube.com/@antoine_Guine/videos'],
          ['Articles', '#/ressources'],
          ['Use cases', '#/use-cases'],
        ]],
        ['Agency', [
          ['Legal notice', '#/mentions-legales'],
          ['Privacy policy', '#/politique-confidentialite'],
        ]],
      ],
    },
  },
};

// --------------------------------------------------------------- helpers
function useInView(margin = '0px') {
  const ref = useRef(null);
  const [inView, setInView] = useState(false);
  useEffect(() => {
    if (!ref.current) return;
    const obs = new IntersectionObserver(([e]) => { if (e.isIntersecting) setInView(true); }, { rootMargin: margin });
    obs.observe(ref.current);
    return () => obs.disconnect();
  }, []);
  return [ref, inView];
}

function AnimatedNumber({ to, prefix = '', suffix = '', decimals = 0, duration = 1400 }) {
  const [ref, inView] = useInView('-40px');
  const [val, setVal] = useState(0);
  useEffect(() => {
    if (!inView) return;
    const start = performance.now();
    let raf;
    const tick = (now) => {
      const t = Math.min(1, (now - start) / duration);
      const eased = 1 - Math.pow(1 - t, 3);
      setVal(to * eased);
      if (t < 1) raf = requestAnimationFrame(tick);
    };
    raf = requestAnimationFrame(tick);
    return () => cancelAnimationFrame(raf);
  }, [inView, to, duration]);
  const formatted = decimals ? val.toFixed(decimals) : Math.round(val).toLocaleString('fr-FR');
  return <span ref={ref}>{prefix}{formatted}{suffix}</span>;
}

window.COPY = COPY;
window.useInView = useInView;
window.AnimatedNumber = AnimatedNumber;

// --------------------------------------------------------------- SITE_TEXTS
// All hardcoded text in components lives here so the editor can reach it.
// Components read window.SITE_TEXTS[lang].xxx — mutations + 'copy-updated' event trigger re-renders.
const SKIP_EDITOR_KEYS = new Set(['kind', 'slug', 'd', 'category', 'published', 'accent']);
window.SKIP_EDITOR_KEYS = SKIP_EDITOR_KEYS;

window.SITE_TEXTS = {
  fr: {
    cases_cards: [
      { co: 'Gimmic Design', d: 'gimmic-design.com', m: '+270', l: 'RDV', q: "Au cours des 12 derniers mois, on a testé plus de 20 campagnes avec Upscale qui nous ont permis de générer +300K de pipeline.", n: 'Bastien Carretier', r: 'CEO' },
      { co: 'Imagine Médias', d: 'imagine-medias.fr', m: '+20K', l: 'signé le premier mois', q: "On a obtenu des taux d'intérêt record suite au lancement des campagnes (+10% de réponse positive) sur des milliers de leads pour un total de 20K signé dès le premier mois.", n: 'Valentin Legrand', r: 'CEO' },
      { co: 'Cleaq', d: 'cleaq.com', m: '×2', l: 'RDV qualifiés', q: "On est passé d'un système d'acquisition bancal où chaque commercial créait ses listes de prospection à la main à un système qui nous permet de détecter les leads les plus chauds de notre marché avant nos concurrents.", n: 'Lorenzo M.', r: 'Head of Growth' }
    ],
    cta_buttons: { primary: 'Réserver 30 min', secondary: 'Sur LinkedIn' },
    usecases_hero: {
      eyebrow: 'Cas clients',
      h1a: 'Du pipeline.',
      h1b: 'Pas du buzz',
      sub: "Découvrez comment nous accompagnons nos clients à booster leur pipeline grâce à nos méthodes.",
      kpis: [['×7,4', 'ROI moyen'], ['+1,2M€', 'pipeline généré'], ['+80', 'Entreprises accompagnées']]
    },
    usecases_cards: [
      { slug: 'cleaq', published: true, co: 'Cleaq', d: 'cleaq.com', sector: 'SaaS · IT Asset Management', m1: '×3', l1: 'RDV générés', m2: '+10K', l2: 'leads générés', title: "3 mois pour changer l'acquisition de Cleaq.", quote: "Une sales machine complète : intent data, scoring intelligent, copywriting personnalisé, sync HubSpot.", name: 'Lorenzo Marangolo', role: 'Sales Ops', accent: '#E1FF6C' },
      { slug: 'delos', published: true, co: 'Delos', d: 'delos.so', sector: 'SaaS · Real estate', m1: '+280%', l1: 'leads identifiés', m2: '+10K', l2: 'records CRM nettoyés', title: "La création d'une sales machine de A à Z.", quote: "De la data CRM au scoring d'intent : une sales machine complète, construite from scratch.", name: 'Louis Paul-Petit', role: 'Growth & RevOps Manager', accent: '#C9F26B' },
      { slug: 'imagine-medias', published: false, co: 'Imagine Médias', d: 'imagine-medias.fr', sector: 'Media · Production audiovisuelle', m1: '×3', l1: 'RDV signés / mois', m2: '+180%', l2: 'leads engagés', title: "D'un process manuel à une machine d'acquisition automatisée.", quote: "Upscale nous a fait passer du chaos manuel à une machine bien rodée.", name: 'Valentin Legrans', role: 'Head of Sales', accent: '#ECFF8E' }
    ],
    resources_hero: {
      eyebrow: 'Ressources',
      h1a: 'Le terrain.',
      h1b: 'Pas la théorie',
      sub: "Les dernières stratégies, outils et méthodes Outbound, RevOps et GTM pour exploser vos performances."
    },
    resources_cards: [
      { slug: 'content-led-growth-2026', published: false, category: 'gtm-strategy', title: "Le guide du Content-Led-Growth en 2026", excerpt: "Comment transformer votre contenu en machine d'acquisition : stratégie, formats, distribution et mesure du ROI.", date: '24 février 2026', readingTime: '10 min de lecture', author: 'Antoine Guiné', accent: '#E1FF6C' },
      { slug: 'gtm-on-demand-2026', published: true, category: 'gtm-strategy', title: "Comment mettre en place du GTM on-demand en 2026 ?", excerpt: "Le modèle GTM on-demand : une alternative aux équipes Sales et Marketing full-time pour les scaleups B2B.", date: '19 février 2026', readingTime: '8 min de lecture', author: 'Antoine Guiné', accent: '#C9F26B' },
      { slug: 'outbound-gtm-playbook-2026', published: true, category: 'outbound', title: "Outbound GTM playbook for 2026", excerpt: "Le playbook outbound complet pour 2026 : signaux, séquences, infrastructure et mesure de la performance.", date: '6 février 2026', readingTime: '15 min de lecture', author: 'Antoine Guiné', accent: '#ECFF8E' },
      { slug: 'plg-vs-sales-led', published: true, category: 'gtm-strategy', title: "Product-Led-Growth ou Sales-led : Quel modèle choisir ?", excerpt: "PLG vs Sales-led : une analyse objective des deux modèles et des critères pour choisir le bon pour votre stade.", date: '6 février 2026', readingTime: '14 min de lecture', author: 'Antoine Guiné', accent: '#E1FF6C' },
      { slug: 'gtm-scoring-playbook-2026', published: true, category: 'revops', title: "The 2026 GTM Scoring Playbook", excerpt: "Le framework de scoring GTM qu'on utilise chez nos clients pour prioriser les comptes et déclencher les bonnes actions.", date: '4 juillet 2025', readingTime: '12 min de lecture', author: 'Antoine Guiné', accent: '#C9F26B' },
      { slug: 'playbook-go-to-market-2025', published: false, category: 'gtm-strategy', title: "Le playbook ultime du Go-to-market en 2025", excerpt: "De la définition de l'ICP à la construction des workflows d'acquisition : le playbook GTM complet pour les B2B.", date: '4 juillet 2025', readingTime: '18 min de lecture', author: 'Antoine Guiné', accent: '#ECFF8E' },
      { slug: 'construire-son-tam-2025', published: true, category: 'outbound', title: "Construire son TAM en 2025 : Guide et méthodes", excerpt: "Comment définir, segmenter et prioriser votre marché adressable total pour concentrer vos efforts là où ça compte.", date: '4 juillet 2025', readingTime: '9 min de lecture', author: 'Antoine Guiné', accent: '#E1FF6C' },
      { slug: '3-stades-go-to-market', published: true, category: 'gtm-strategy', title: "Les 3 stades go-to-market pour atteindre le premier million d'ARR", excerpt: "Chaque stade de croissance B2B requiert un modèle GTM différent. Voici comment pivoter au bon moment.", date: '4 juillet 2025', readingTime: '6 min de lecture', author: 'Antoine Guiné', accent: '#C9F26B' },
    ],
    resources_articles: {
      'content-led-growth-2026': {
        eyebrow: 'Article · GTM Strategy',
        title: "Le guide du Content-Led-Growth en 2026",
        lede: "Un shift massif est en train de se passer sur LinkedIn : les gens n'ont plus envie d'être chassés. Ils veulent choisir avec qui ils travaillent — et ils choisissent ceux qu'ils voient, qu'ils lisent, qu'ils écoutent depuis des semaines.",
        author: 'Antoine Guiné', authorRole: 'Fondateur @Upscale, GTM Engineer',
        date: '24 février 2026', readingTime: '10 min de lecture',
        sections: [
          { kind: 'paragraphs', h2: 'Pourquoi le Content-Led-Growth ?', body: [
            "Le Content-Led-Growth, c'est transformer votre contenu en machine d'acquisition. Pas juste \"poster pour poster\", mais construire un système où chaque post, chaque carrousel, chaque commentaire remplit votre pipeline.",
            "Guillaume Moubèche en est l'exemple le plus parlant — c'est comme ça qu'il a propulsé Lemlist à un tout autre niveau. Et ce n'est pas le seul.",
            "Le playbook est simple en théorie : tu construis une audience → tu la chauffes → tu publies du contenu qui crée de la confiance → les prospects lèvent la main → tu les convertis.",
            "En pratique, c'est bien plus technique à mettre en place et 99% des boîtes qui s'y frottent se cassent la gueule. Chez Upscale, on a eu l'occasion de tester cette approche pendant des mois sur une multitude de clients — on partage ici les techniques qui fonctionnent vraiment, en direct.",
            "On a passé pas mal de temps à mettre par écrit le playbook ultime pour mettre en place une vraie stratégie de CLG, et je pense que l'on a trouvé l'approche la plus efficace en 2026 :",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1CcPq4TLpxkP8S1Lh5vl8mCl7yQ9AgXfj=s0', alt: 'CLG playbook 2026' },
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1FoPQoj8IzYNFuX2bEG5A4lv5P2FUPZsu=s0', alt: 'Approche CLG 2026' }
          ]},
          { kind: 'paragraphs', h2: 'Audience Building et Audience Warming', body: [
            "Même pour du contenu, il est ultra-pertinent de créer une liste de vos top targets. Pas pour les contacter directement, mais pour créer des séquences de first touch :",
            { kind: 'bullets', items: ["Visite de profil", "Like du dernier post", "Ajout LinkedIn"] },
            "Cela vous permet de commencer à créer une connexion avec eux mais SURTOUT, si vous êtes dans leur réseau, vos posts ont nettement plus de chances de les toucher. Vous pouvez utiliser tout un tas d'outils pour déterminer les entreprises types que vous visez, mais in fine, vous devrez obligatoirement obtenir le profil LinkedIn des personnes."
          ]},
          { kind: 'paragraphs', h2: 'Content Création', body: [
            "C'est là qu'on rentre dans le vif du sujet : la création de vos contenus, sur laquelle repose 80% de votre stratégie CLG. Si vos posts ne fonctionnent pas = pas de visibilité = pas de RDV qualifiés = votre stratégie tombe donc à l'eau.",
            "L'efficacité de votre stratégie CLG se mesure sur deux éléments :",
            { kind: 'bullets', items: [
              "Le nombre de meetings qui tombent suite à un post = conversion directe.",
              "Le nombre d'interactions générées par votre contenu (likes, commentaires, vues de profil) = conversion indirecte."
            ]},
            "Les personnes qui vous disent que les likes ne comptent pas dans une stratégie CLG vous racontent des conneries. Oui, ça ne vous amène pas de conversions directes, mais c'est ce qui vous donne de la matière pour prospecter sur vos contenus."
          ]},
          { kind: 'paragraphs', h2: 'Comment créer du contenu performant ?', body: [
            "Je vous recommande un bon mix TOFU, MOFU, BOFU. L'objectif est de créer un entonnoir de conversion à travers le contenu.",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1xvfz5YVRbavZYFo-YQoB54tbrDdiXfac=s0', alt: 'Funnel TOFU MOFU BOFU' },
            "Premièrement, le contenu TOFU :",
            { kind: 'bullets', items: ["Opinions business", "Histoires personnelles", "Réactions sur l'actualité"] },
            "Ce genre de posts a généralement plus de reach. LinkedIn les pousse auprès de personnes qui ne vous connaissent pas nécessairement.",
            "Ensuite, le contenu MOFU — c'est là que vous devez passer le plus clair de votre temps :",
            { kind: 'bullets', items: ["Contenu éducationnel", "Ressources gratuites", "Tutoriels, etc."] },
            "Ce type de posts fera souvent moins d'interactions, mais ils sont extrêmement importants : ce sont eux qui montrent votre expertise. Une interaction sur un post MOFU vaut bien plus cher que sur un post TOFU — elle démontre un réel intérêt pour ce que vous faites.",
            "Dernier step, le BOFU — on rentre clairement dans la vente de vos services :",
            { kind: 'bullets', items: ["Use cases très spécifiques.", "Présentation d'une nouvelle feature.", "Promotions."] },
            "Ce genre de posts génère en moyenne moins d'interactions que les posts TOFU, en revanche chaque interaction ou meeting réservé à l'issue de ce post peut valoir de l'or."
          ]},
          { kind: 'paragraphs', h2: "L'idéation", body: [
            "Le plus dur dans la construction de contenu, c'est d'avoir les idées. Pour cela, on utilise différents outils qui nous aident à tracker les posts qui fonctionnent le mieux.",
            { kind: 'callout', text: "Outils recommandés : Taplio (taplio.com) et MyFeedIn (myfeedin.co) — créez des feeds personnalisés pour suivre le contenu de créateurs performants et capter leurs posts les plus performants." },
            "Personnellement, j'ai une liste en France, mais la plus grosse est à l'international pour capter rapidement les trends qui finiront par arriver en France."
          ]},
          { kind: 'paragraphs', h2: "Assistance par IA", body: [
            "Je m'en sers pour deux choses principales :",
            { kind: 'bullets', items: [
              "Transformer mes idées en contenus percutants : généralement je rédige le post en entier puis le donne à l'IA pour corriger les fautes et améliorer certains points.",
              "Créer des visuels attractifs : Claude est ultra-performant pour générer des visuels parlants via un projet dédié avec la DA Upscale chargée."
            ]}
          ]},
          { kind: 'paragraphs', h2: "Le multi-plateforme", body: [
            "À l'image du multichannel pour la prospection, le contenu fonctionne mieux quand vous attirez du monde sur des canaux différents qui proposent des contenus différents.",
            "Chez Upscale, on gère notre contenu sur 3 plateformes :",
            { kind: 'bullets', items: [
              "LinkedIn — pour du contenu plus mainstream et introduire des concepts spécifiques (TOFU).",
              "YouTube — pour prendre le temps d'expliquer clairement des concepts et stratégies (MOFU).",
              "Newsletter hebdomadaire — pour créer des guides et micro-cours (BOFU)."
            ]},
            "Chaque réseau accueille une typologie de contenu bien spécifique pour attirer des cibles différentes. LinkedIn est notre TOFU, YouTube le MOFU et la newsletter le BOFU — c'est un entonnoir de canaux."
          ]},
          { kind: 'paragraphs', h2: "L'Ads boosting", body: [
            "C'est cette partie qui est la plus intéressante car elle peut ×2, ×3 ou même ×10 les résultats de votre contenu en matière de pipeline potentiel généré.",
            "Si un post cartonne de manière 100% naturelle, il n'y a pas de raison pour qu'il ne continue pas à super bien performer s'il est boosté par un peu de budget ads. Un post à 10K reach naturel peut facilement atteindre les 30K boosté, pour un coût de quelques centaines d'euros.",
            "En fonction de l'objectif de votre campagne Ads :",
            { kind: 'bullets', items: [
              "Les posts TOFU sont très bons pour étendre votre notoriété.",
              "Les posts MOFU (ressources gratuites, guides) sont excellents pour augmenter votre base de contacts et générer des RDV.",
              "Les posts BOFU sont plus compliqués à faire prendre, mais permettent de prédire le pipeline généré."
            ]},
            "Notre matrice mensuelle : on prend les top posts, on les compare aux mois précédents, on analyse les performances ads des posts déjà boostés, et on active des posts TOFU, MOFU ou BOFU selon la stratégie souhaitée. C'est probablement la manière la plus efficace en 2026 de valoriser le contenu que vous créez au quotidien."
          ]},
          { kind: 'paragraphs', h2: "Capter les leads", body: [
            "Le contenu que vous produisez peut engendrer deux types de conversions :",
            { kind: 'bullets', items: [
              "Conversion directe = quelqu'un prend RDV sur votre site ou LinkedIn juste après un contenu. Entre 5% et 10% des cas.",
              "Conversion indirecte = quelqu'un est soumis à votre contenu, mais ne passera pas à l'action sans un petit coup de pouce de votre part."
            ]},
            "C'est sur la conversion indirecte que le gros du travail est à faire — elle représente entre 90% et 95% du business potentiel. Si on s'arrêtait à la conversion directe, on laisserait passer la quasi-totalité des opportunités."
          ]},
          { kind: 'paragraphs', h2: "Comment prioriser les leads à attaquer ?", body: [
            "Tous les leads ne se valent pas. Deux critères clés : le lead lui-même (correspond-il à votre ICP/Persona ?) et l'action du lead (un like sur un post mainstream n'a pas le même poids qu'une demande de ressource).",
            "On met en place un système de scoring basé sur ces éléments :",
            { kind: 'table', columns: ['Action', 'Points'], rows: [
              ["Interaction sur post TOFU", "2"],
              ["Interaction sur post MOFU", "5"],
              ["Interaction sur post BOFU", "8"],
              ["Like", "3"],
              ["Commentaire", "5"],
              ["Visite de profil", "10"]
            ]},
            "Une simple interaction TOFU peut induire seulement un ajout de profil + auto-likes. À l'inverse, un commentaire + téléchargement d'un post BOFU peut induire une prise de contact avec recherche d'intent supplémentaire. Tout ça demande beaucoup d'efforts à construire — ajoutez des briques petit à petit sans sur-complexifier."
          ]},
          { kind: 'paragraphs', h2: "Comment détecter et capter les bons leads ?", body: [
            "Voilà le système le plus performant à mettre en place :",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1fwom-6Mu9dVHpNinh0IofGomNQD8bUO_=s0', alt: 'Système détection et captation des leads' },
            { kind: 'bullets', items: [
              "Capter les nouveaux posts chaque jour et stocker les URLs.",
              "Capter les interactions sur ces posts de manière quotidienne.",
              "Analyser les profils détectés et les scorer.",
              "Déclencher des actions spécifiques en fonction du score."
            ]},
            { kind: 'callout', text: "Stack recommandée : Clay, N8N, ProntoHQ, React'In, Apify, LLM." }
          ]},
          { kind: 'paragraphs', h2: "Contacter les leads", body: [
            "La principale erreur que l'on voit chez Upscale, ce sont les entreprises qui veulent contacter n'importe qui pour la moindre petite interaction — exemple : caler un call de découverte avec une personne qui a aimé leur dernier post sur les galères avec les impôts.",
            "De notre côté, on met en place un routage vers des actions de prospection en lien avec le type de post sur lequel a eu lieu l'interaction, le type d'interaction et la fréquence d'interaction.",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/14J0OFkNc0M0GaAT0nvbjecMNfLFn9Nqr=s0', alt: 'Routage prospection CLG' },
            "Dans la plupart des cas, la conversation commence sur la base du contenu du post où l'interaction a eu lieu. C'est une porte d'entrée évidente, mais cohérente. Dans des cas plus spécifiques, on couple le contenu du post avec une analyse approfondie du business via IA pour envoyer des messages de mise en contexte."
          ]},
          { kind: 'quote', text: "Avec l'ensemble de ces méthodes et best practices, vous avez de quoi mettre votre propre stratégie CLG en place et booster votre pipeline pour 2026.", attribution: 'Antoine Guiné' }
        ]
      },
      'gtm-on-demand-2026': {
        eyebrow: 'Article · GTM Strategy',
        title: "Comment mettre en place du GTM on-demand en 2026 ?",
        lede: "Beaucoup d'entreprises investissent du temps et de l'argent à construire un système GTM optimal, et pourtant, il est sous-utilisé. La raison ? Le système est trop complexe à faire tourner pour que vos équipes aient envie de l'intégrer dans leurs processus.",
        author: 'Antoine Guiné', authorRole: 'Fondateur @Upscale, GTM Engineer',
        date: '19 février 2026', readingTime: '8 min de lecture',
        sections: [
          { kind: 'paragraphs', h2: "Le problème : votre sales machine est trop rigide", body: [
            "Exemple concret : vous avez un workflow de détection des nouvelles offres d'emploi. Il monitore les postes \"Head of Sales\" et \"VP Revenue\" chez les SaaS 10-50M€. Un mardi matin, un AE vous ping : \"On devrait aussi cibler les Chief Revenue Officers, tu peux ajouter ce job title ?\"",
            "Ce qui semble être un simple ajout déclenche en réalité une cascade de modifications : modifier des filtres de sourcing, ajuster le scoring, adapter les emailings, mettre à jour les propriétés CRM, et vérifier que ça ne casse pas le workflow d'enrichissement.",
            { kind: 'bullets', items: [
              "Si votre AE a un accès direct à Clay ou Cargo, il modifie le filtre, oublie le reste, et votre machine déraille.",
              "S'il n'a pas d'accès, il ouvre un ticket à la RevOps, attend 48h, et l'opportunité est ratée."
            ]},
            "C'est là que le GTM on-demand rentre en jeu : plutôt que de choisir entre \"tout bloquer\" ou \"tout ouvrir\", vous déployez un système conversationnel qui agit comme une couche d'orchestration intelligente."
          ]},
          { kind: 'paragraphs', h2: "Comment fonctionne le GTM on-demand ?", body: [
            "Le principe est simple :",
            { kind: 'bullets', items: [
              "L'agent comprend l'intention (\"Ajoute CRO dans la détection d'offres\").",
              "Identifie tous les workflows concernés (détection, scoring, séquence, reporting).",
              "Applique les règles métier prédéfinies (ton différent pour C-level, scoring ajusté).",
              "Exécute les modifications dans le bon ordre sans casser la chaîne.",
              "Notifie : \"CRO ajouté, 23 nouveaux prospects détectés, séquence adaptée\"."
            ]},
            "Résultat : vos sales n'ont plus à gérer la dimension technique du GTM sans pour autant surcharger le département OPs de tickets. Vous passez d'une sales machine rigide à une sales machine intelligente et pilotable à distance.",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1LrzmsCEG2q_nb6K9WZlFdz6CSLudziIE=s0', alt: 'GTM on-demand — sales machine intelligente' }
          ]},
          { kind: 'paragraphs', h2: "Du côté OPS : la construction de la bibliothèque", body: [
            "Tout commence par l'identification des cas d'usage récurrents : trouver des entreprises selon des critères précis, identifier les personas associés, enrichir leurs données, créer automatiquement une liste dynamique dans HubSpot.",
            "Une fois ces besoins mappés, vous construisez des systèmes modulaires. L'idée n'est pas de créer un workflow monolithique pour chaque besoin, mais de constituer une bibliothèque de sous-systèmes réutilisables.",
            "Imaginons que dans plusieurs de vos workflows, vous devez identifier le nom de domaine d'une entreprise à partir de son nom. Plutôt que de recréer cette logique à chaque fois, vous construisez un sous-système isolé \"Identifier le domaine\" — intégrable partout. C'est une forme de plug & play sur demande.",
            "L'avantage est double :",
            { kind: 'bullets', items: [
              "Vous gagnez en efficacité lors de la création de nouveaux systèmes.",
              "Une modification du sous-système se propage automatiquement à tous les workflows qui l'utilisent."
            ]},
            "Une fois cette bibliothèque constituée, vous créez un agent conversationnel qui a pour seule mission d'exécuter ces systèmes selon des règles d'usage prédéfinies. Il ne crée rien, il orchestre ce qui existe déjà."
          ]},
          { kind: 'paragraphs', h2: "Du côté SALES : l'utilisation sans friction", body: [
            "Le mardi matin, votre AE a besoin d'identifier toutes les scaleups françaises du secteur fintech qui ont levé plus de 10M€ dans les 6 derniers mois, avec les contacts des Head of Growth.",
            "Au lieu d'ouvrir Clay, de configurer les filtres, de lancer l'enrichissement et de créer la liste dans HubSpot, il envoie simplement un message Slack à l'agent : \"Trouve-moi les scaleups fintech françaises, levée >10M€ sur 6 mois, avec les Head of Growth, et crée une liste HubSpot.\"",
            "L'agent analyse la demande, identifie les trois sous-systèmes à activer (détection, identification personas, création liste HubSpot), exécute l'enchaînement, gère les erreurs potentielles, et notifie : \"124 entreprises trouvées, 347 contacts Head of Growth identifiés, liste 'Fintech Q1 2025' créée dans HubSpot.\"",
            "Le sales ouvre HubSpot, la liste est là, prête à être travaillée. La barrière technique a disparu. Il est plus simple de demander ce que l'on veut que d'actionner ce que l'on veut. Et votre agent ne peut pas casser la machine — il ne fait qu'exécuter des processus déjà testés.",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1H25WUNyhnGSkHvDE8pk61f_z4wFxO7j1=s0', alt: 'GTM on-demand — sales autonomes' }
          ]},
          { kind: 'paragraphs', h2: "5 exemples de use-cases GTM on-demand", body: [
            "1. Enrichissement ponctuel de comptes stratégiques",
            "Un AE a identifié 30 comptes clés suite à un event et veut leur tech stack + funding avant d'attaquer. Il déclenche : \"Enrichis ces 30 comptes avec leur stack technique et leur dernier tour de financement.\" L'agent vérifie la donnée existante, active le workflow waterfall, extrait les infos et met à jour les fiches HubSpot.",
            "2. Création de liste ciblée avec critères multiples",
            "Le Head of Sales veut attaquer les scaleups SaaS françaises qui ont levé +5M€ et utilisent Salesforce. L'agent lance la détection, enrichit avec la tech stack, identifie les personas et crée la liste dynamique HubSpot.",
            "3. Détection de signaux d'achat sur un vertical",
            "Monitorer les nouvelles offres \"VP Sales\" dans le secteur fintech. L'agent active le workflow de monitoring job posts, filtre les postes revenue leadership, enrichit les entreprises et notifie quotidiennement.",
            "4. Enrichissement ponctuel de contact",
            "\"J'ai besoin de tout connaître sur XX.\" L'agent identifie le profil LinkedIn, enrichit les données de contact, met à jour la fiche et alerte le sales.",
            "5. Scoring et priorisation de pipeline",
            "\"Score ces 500 leads selon notre ICP et sors-moi le top 10.\" L'agent applique le workflow de scoring, calcule le score ICP, trie par pertinence et crée une vue \"Hot leads\" dans HubSpot."
          ]},
          { kind: 'paragraphs', h2: "Conclusion", body: [
            "Vous pouvez demander n'importe quoi à un système de GTM on-demand bien configuré : recherche, enrichissement, triage, mise à jour de la data. N'importe qui peut bénéficier d'une donnée de qualité à un instant T, sans connaissance technique, en suivant les conditions propres à l'entreprise.",
            "Le GTM on-demand ne remplace pas vos workflows. Il les rend accessibles. Vous gardez le contrôle qualité, vos équipes gagnent en autonomie, et votre équipe Ops arrête de passer ses journées à gérer des demandes superflues.",
            { kind: 'callout', text: "Pour du GTM on-demand clé en main, regardez du côté de Cargo (getcargo.io) — l'outil le plus avancé sur le sujet actuellement. Il permet nativement de créer des bibliothèques de workflows réutilisables et de configurer des agents conversationnels qui orchestrent vos systèmes." }
          ]},
          { kind: 'quote', text: "Vos sales formulent une intention en langage naturel, le système traduit cette intention en actions techniques. Votre agent ne peut pas casser la machine — il ne fait qu'exécuter des processus déjà testés.", attribution: 'Antoine Guiné' }
        ]
      },
      'outbound-gtm-playbook-2026': {
        eyebrow: 'Article · Outbound',
        title: "Outbound GTM playbook for 2026",
        lede: "Beaucoup de personnes misent sur la fin de l'outbound, certains affirment que c'est déjà le cas. Eh bien, je suis heureux de vous informer que ce n'est pas pour tout de suite.",
        author: 'Antoine Guiné', authorRole: 'Fondateur @Upscale, GTM Engineer',
        date: '6 février 2026', readingTime: '15 min de lecture',
        sections: [
          { kind: 'paragraphs', h2: "L'outbound est loin d'être mort", body: [
            "Les équipes GTM des plus gros logiciels que vous utilisez au quotidien (Notion, Slack, Lemlist, etc.) font de l'outbound intent-based leur deuxième canal d'investissement. Cela veut dire que toutes ces entreprises croient encore très fort en la puissance de l'outbound malgré sa complexité.",
            "J'ai longtemps travaillé sur le meilleur playbook outbound possible — pour nos clients et pour le collectif — afin de réduire notre dépendance au reach LinkedIn. Résultat : je suis passé de 80% de RDV issus de mon LinkedIn à seulement 50%, pour faire monter ma prise de RDV outbound à 35%. Les 15% restants sont essentiellement du referral.",
            "Le contenu LinkedIn a été notre cheval de bataille en matière d'acquisition, mais les différentes mises à jour de la plateforme entraînent moins de visibilité directe et donc moins de RDV. Il y a un problème majeur avec le contenu : vous ne décidez pas vers qui votre contenu va être diffusé et donc qui va prendre RDV avec vous.",
            "À l'inverse, l'outbound vous permet littéralement de viser qui vous voulez avec le message que vous souhaitez. Avec de bonnes méthodes de qualification, d'enrichissement et de scoring, vous pouvez toucher des comptes forts pour votre business.",
            "Il n'y a encore pas si longtemps, toute cette acquisition se faisait à la main. Maintenant, tout le monde parle d'agents IA qui fonctionnent sans aucun humain derrière. Pour moi, la réalité du terrain se situe au milieu : l'outbound en 2026 a besoin d'automatisation et de systèmes pour ne pas devenir trop chronophage, mais aucune équipe sales ne devrait l'automatiser à 100%.",
            "Dans cet article, je voulais traiter de ce qui est selon moi le playbook outbound le plus adapté pour 2026 en vous partageant un guide que j'utilise au quotidien.",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1KdMuCtv_wJA1fPRlk7A5Q_MWD7rtLQcE=s0' }
          ]},
          { kind: 'paragraphs', h2: "Les 4 piliers de l'outbound en 2026", body: [
            "À mon sens, il y a 4 piliers que vous devriez activer en même temps pour renforcer votre outbound :",
            { kind: 'bullets', items: [
              "Le cold call — qui fonctionne encore très bien, c'est même l'axe le plus rentable chez pas mal de mes clients.",
              "Les campagnes emails — automatisées.",
              "Les campagnes LinkedIn — automatisées et surtout déclenchées par des signaux.",
              "La prospection manuelle sur vos Tier 1 — les entreprises les plus prometteuses pour vous."
            ]},
            "Quand je déclenche une action outbound, mon système doit savoir prioriser entre actions basées sur un intent (+1) ou de la simple prospection froide (0). En parallèle, il doit pouvoir m'informer d'un besoin d'automatisation ou d'une approche manuelle. De cette manière, je peux stratégiquement allouer plus de ressources sur un compte vs un autre.",
            { kind: 'embed', src: '/outbound-pillar.html', height: 660, title: 'Outbound Playbook 2026 — 4 piliers' }
          ]},
          { kind: 'paragraphs', h2: "Outbound à froid — construire son ICP et son TAM", body: [
            "L'outbound sur intent est génial, c'est indéniable, mais seulement une fraction de votre marché total vous en donnera. Faire reposer 100% de son acquisition dessus est donc une très mauvaise idée. Vous devez toujours réussir à convertir une audience froide qui rentre dans votre ICP.",
            "L'un des points cruciaux pour cet axe de l'outbound est de connaître parfaitement votre ICP. Pas uniquement celui de rêve, mais celui qui ACHÈTE.",
            "Vous pouvez vous créer un tableau de ce type pour le déterminer :",
            { kind: 'embed', src: '/icp-tiers-table.html', title: 'ICP Tiers — Niveaux de comptes' },
            "Vous devriez avoir une croissance progressive du nombre de comptes entre les niveaux : Dream accounts, Tier 1, 2, 3. Le niveau 1 doit contenir moins de comptes que le niveau 3.",
            "Chez Upscale, on a cherché à se limiter volontairement en acceptant d'avoir moins de comptes cibles plutôt que de se tourner vers des comptes qui ne sont en réalité plus réellement dans notre scope. Une fois que vous connaissez votre ICP, place au mappage de TAM.",
            "Il existe énormément d'outils qui vous permettent de le faire :",
            { kind: 'bullets', items: [
              "BuiltWith — Technology users",
              "GetLatka — Liste uniquement des entreprises SaaS",
              "Exa — Scraping de site web + recherche web poussée",
              "Crunchbase — Informations de levées de fonds",
              "Apollo, Pharow, Societe.info — Informations firmographiques"
            ]},
            "Pour ceux qui ne connaissent pas Exa (le moins connu de la liste), voilà à quoi ça ressemble :",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1rJpeBUNyDskEVHt4LwFnjvTZtNTrBETT=s0' },
            "On a ensuite agrégé l'ensemble des données identifiées dans Clay pour les dédoublonner, nettoyer et enrichir. Cela nous a donné une base avec plusieurs milliers d'entreprises exploitables.",
            "Exemples d'informations types collectées :",
            { kind: 'bullets', items: [
              "Localisation, nombre d'employés, secteur d'activité, ancienneté",
              "Technologies utilisées",
              "Round de levée de fonds",
              "LinkedIn, Website, CA estimé"
            ]},
            "Avec cette méthode, vous avez une base complète de votre marché adressable que vous pouvez monitorer et exploiter comme vous souhaitez. Si en janvier je souhaite contacter tous les founders de SaaS parisiens dans le secteur de l'edtech, je peux le faire en quelques clics."
          ]},
          { kind: 'paragraphs', h2: "Intent-based outbound, full automatisé", body: [
            "Il existe des centaines de signaux que vous pouvez utiliser pour prospecter. Et franchement, la plupart ne sont pas si efficaces quand on fait le ratio volume, coût, opportunité. Est-ce qu'un signal qui vous rapporte 2 clients est réellement si efficace s'ils vous ont pris 6 mois et coûté plusieurs milliers d'euros ? Dans la plupart des cas, la réponse sera non.",
            "Voici la liste de ceux que l'on considère comme étant les plus pertinents à tracker chez Upscale :",
            { kind: 'bullets', items: [
              "Website visitors — plus compliqué en France, mais peut tout de même avoir un intérêt.",
              "LinkedIn connections — séquence automatisée pour rentrer en contact.",
              "Company page followers — campagne multi-channel pour targeter les followers dans votre ICP.",
              "Competitor page followers — campagne multi-channel pour targeter les followers de vos concurrents.",
              "LinkedIn engagement — campagne pour targeter les personnes qui ont interagi et rentrent dans votre ICP.",
              "Social listening — campagne déclenchée dès qu'une personne interagit avec un contenu d'un concurrent.",
              "LinkedIn profile visitors — campagne pour les personnes passées récemment sur votre profil.",
              "Event attendees — campagne adressée aux participants d'un événement pertinent.",
              "Lead magnet downloads — campagne de follow-up post-téléchargement.",
              "Job changes of champions — reprendre contact avec vos anciens clients qui ont changé d'entreprise.",
              "Closed-lost reopens — relancer un deal closed-lost passé un certain temps.",
              "Free trial inscription — campagne à destination des free users de votre plateforme.",
              "Social mention — personnes mentionnant des choses précises sur les réseaux.",
              "Company hiring — entreprises qui recrutent sur un poste que vous êtes en mesure de combler.",
              "New post — personnes qui viennent de rejoindre une entreprise sur un poste stratégique."
            ]},
            "On utilise ces signaux en les connectant à notre base initiale (TAM) de comptes et prospects pour déclencher des actions spécifiques dans le temps + détecter de nouvelles cibles.",
            "La construction de ces signaux est relativement similaire d'un signal à l'autre :",
            { kind: 'embed', src: '/signal-detection-flow.html', height: 440, title: 'Signal Detection Flow' },
            "De notre côté, on fait run en continu des campagnes de cold outreach qui ont un seul but : déclencher un signal qui nous permettra de reprendre le flambeau sur des campagnes intent-based.",
            { kind: 'embed', src: '/sequence-flow.html', height: 200, title: 'Sequence Flow — Cold outbound vers intent-based' }
          ]},
          { kind: 'paragraphs', h2: "Pourquoi les 4 piliers doivent fonctionner ensemble", body: [
            "Chez Upscale, on a remarqué que les campagnes intent-based avaient tendance à surperformer les ICP fit classiques — entre 2X et 10X plus suivant le signal et le contexte. La raison principale : on contacte non seulement une cible vérifiée, mais aussi une cible qui a émis un élément de contexte justifiant la prise de contact.",
            "Dans l'ensemble, on a remarqué que plus les 4 piliers outbound étaient dé-silotés et fonctionnaient ENSEMBLE, plus les performances étaient importantes. Ce qui laisse penser que le manque de performance de l'outbound que vivent beaucoup d'entreprises n'est pas lié à l'outbound lui-même, mais à la manière dont il est mis en place et exécuté en interne.",
            "C'est aussi l'une des raisons principales pour lesquelles nous ne proposons plus de service d'externalisation de la prospection classique. Ce modèle ne permet pas de systématiser les 4 piliers en créant une passerelle directe avec des actions RevOps. À la place, nous concentrons nos services vers la mise en place de systèmes GTM complets en mêlant data et stratégies.",
            "Les résultats pour nos clients :",
            { kind: 'bullets', items: [
              "3X plus de résultats que de l'outbound classique sous 2 mois de run.",
              "Entre 8X et 20X plus de résultats sous un an de run."
            ]},
            { kind: 'callout', text: "Si ça vous intéresse d'en discuter, on a des créneaux de workshop durant lesquels nous pourrons poser à plat vos stratégies et actions d'acquisition pour détecter des zones d'amélioration." }
          ]},
          { kind: 'quote', text: "L'outbound en 2026 a besoin d'automatisation et de systèmes pour ne pas devenir trop chronophage, mais aucune équipe sales ne devrait l'automatiser à 100%.", attribution: 'Antoine Guiné' }
        ]
      },
      'plg-vs-sales-led': {
        eyebrow: 'Article · GTM Strategy',
        title: "Product-Led-Growth ou Sales-led : Quel modèle choisir ?",
        lede: "Vous avez probablement déjà été face à ce dilemme : Est-ce que je pars sur une stratégie PLG ou Sales-Led ?\n\nPetit rappel de dernière minute : le PLG, c'est le fait de driver les ventes par le produit. Le Sales-Led, par des commerciaux.\n\nMa réponse : ni l'un, ni l'autre. Les deux. Notion, Slack, Figma (les « rois du PLG ») ont tous des équipes sales qui gèrent les deals > 50K€. Salesforce, HubSpot (les « dinosaures Sales-Led ») ont intégré du self-serve pour les petits tickets.\n\nLe vrai dilemme, ce n'est pas « PLG vs Sales-Led », c'est de savoir quelle motion activer pour quel segment de votre marché et comment organiser tout ce bazar.",
        author: 'Antoine Guiné', authorRole: 'Fondateur @Upscale, GTM Engineer',
        date: '6 février 2026', readingTime: '14 min de lecture',
        sections: [
          { kind: 'paragraphs', h2: "Pourquoi le débat sales-led VS product-led-growth est un faux débat ?", body: [
            "La plupart du temps, les entreprises qui se posent ces questions le voient comme une réflexion de business model, alors que ce n'est pas le cas. C'est une réflexion de motion. Rien ne vous empêche de faire les deux.",
            "En réalité, pour des SaaS en lancement, faire les deux peut être compliqué en bootstrap. Dans ce cas, la question devient effectivement un sujet de business model. Mais pas le reste du temps.",
            "Opter pour une motion Product-Led Growth ne veut pas dire « pas de sales ». Ça veut dire : « le produit est le premier point de contact ». Mais derrière, il y a souvent une équipe sales qui convertit les gros comptes. À l'inverse, une motion Sales-Led ne veut pas dire « pas de produit ». Ça veut dire : « un humain est nécessaire pour closer ». Mais rien ne vous empêche d'avoir du self-serve sur les petits tickets.",
            "C'est pour ça que 99 % des SaaS B2B que vous utilisez au quotidien utilisent les deux motions, elles ne sont juste pas utilisées sur les mêmes cibles :",
            { kind: 'table', columns: ['Segment', 'Motion'], rows: [
              ['SMB (< 5K€/an)', 'self-serve pur → motion PLG'],
              ['Mid-Market (5–25K€)', 'inbound leads + sales assist → hybride'],
              ['Enterprise (> 25K€)', 'outbound + full sales cycle → Sales-Led']
            ]},
            "Dans cet exemple : même produit. Trois motions différentes selon l'ACV. C'est exactement ce que vous devez faire. Et pour faciliter votre choix, vous pouvez suivre ce framework en 5 étapes."
          ]},
          { kind: 'paragraphs', h2: "Choisir la bonne motion en 5 critères", body: [
            "Avant de choisir entre PLG et Sales-Led (ou les deux), posez-vous ces 5 questions :"
          ]},
          { kind: 'paragraphs', h2: "1. Quel est votre ACV moyen ?", body: [
            "Votre Annual Contract Value est le critère n°1, et de loin, pour identifier la bonne motion à adopter.",
            { kind: 'bullets', items: [
              "ACV < 2K€/an → PLG recommandé (sinon votre CAC explose)",
              "ACV entre 3 et 25K€/an → zone grise, souvent hybride (Product-Led Sales)",
              "ACV > 25K€/an → Sales-Led souvent nécessaire"
            ]},
            "Ces ranges sont des indications. D'un marché à un autre, elles peuvent changer, mais ça vous donne une bonne base de départ pour orienter vos motions. Pourquoi ? Parce qu'un cycle sales coûte entre 3K€ et 10K€ en moyenne (salaire d'AE + outils + temps). Si votre ACV est à 2K€, vous perdez de l'argent sur chaque deal."
          ]},
          { kind: 'paragraphs', h2: "2. Votre produit est-il vraiment self-serve ?", body: [
            "Sans self-serve, vous oubliez le PLG. Et au-delà de ça, est-ce que votre self-serve est suffisamment bien conçu pour permettre à des users de trouver de la valeur dans votre produit ?",
            { kind: 'callout', text: "Red flag : si votre onboarding prend 3 h de config, 2 calls d'onboarding et nécessite de contacter le support → vous n'êtes pas self-serve, arrêtez de vous mentir." }
          ]},
          { kind: 'paragraphs', h2: "3. Quel est votre Time-to-Value ?", body: [
            "Combien de temps avant que le user réalise la promesse de votre produit ? Et combien de temps avant qu'il la ressente ?",
            "Un outil d'enrichissement = valeur directe. Vous donnez un contact, vous ressortez avec un email ou un numéro de téléphone. Un outil CRM = besoin de creuser plus profondément dans l'outil pour ressentir la valeur.",
            { kind: 'bullets', items: [
              "< 15 minutes → PLG parfait (ex. : Grammarly, Loom)",
              "< 1 jour → PLG possible (ex. : Notion, Airtable)",
              "1 semaine → sales-assisted minimum (ex. : HubSpot, Salesforce)"
            ]},
            "Plus votre Time-to-Value est long, plus vous aurez besoin d'humains pour accompagner."
          ]},
          { kind: 'paragraphs', h2: "4. Quelle est la taille de votre TAM ?", body: [
            { kind: 'bullets', items: [
              "TAM énorme + clients diffus → PLG. Exemple : outils de productivité (millions de prospects potentiels)",
              "Niche spécifique + ABM ciblé → Sales-Led. Exemple : logiciel pour promoteurs immobiliers (quelques centaines de prospects max)"
            ]},
            "Si vous avez 100 000 prospects potentiels, vous n'allez pas tous les appeler. Si vous en avez 200, vous pouvez."
          ]},
          { kind: 'paragraphs', h2: "5. Comment sont construits vos plans et vos équipes ?", body: [
            "C'est un facteur important dans votre capacité à lancer du PLG, du Sales-Led ou de l'hybride. Si vous n'avez que des « petits plans », vous aurez du mal à rentabiliser une équipe sales.",
            "À l'inverse, si vous n'avez que des « gros plans », le PLG va être quasiment impossible. Rares sont les entreprises qui déboursent une grosse somme pour un outil sans avoir un contact humain.",
            "À côté de ça, la taille de votre équipe peut aussi influencer le choix de votre motion."
          ]},
          { kind: 'paragraphs', h2: "Les 4 combinaisons de motion utilisables en SaaS B2B", body: [
            "Oubliez le binaire PLG ou Sales-Led. Voici les 4 modèles réels que j'observe chez les SaaS qui scalent :",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/147gdUQEQG0vTSOyxMPvr19sgOjvvNgON=s0' }
          ]},
          { kind: 'paragraphs', h2: "Modèle 1 : PLG pur", body: [
            "Le produit est le seul moteur d'acquisition et de conversion. Pas de sales, pas de démo, pas de call. L'user s'inscrit, teste, paie, scale. Point.",
            "Pour qui ?",
            { kind: 'bullets', items: [
              "ACV < 2K€",
              "Produit vraiment self-serve (Time-to-Value < 1 h)",
              "TAM énorme (millions de prospects)",
              "Viralité native dans le produit (inviter des collègues = core feature)"
            ]},
            { kind: 'table', columns: ['Exemple entreprise', 'Caractéristiques'], rows: [
              ['Notion (avant 2020)', "Tu t'inscris, tu crées tes docs, tu invites ton équipe, tu upgrades quand tu dépasses les limites du free plan"],
              ['Miro', "Pareil, tableau blanc collaboratif, valeur immédiate"],
              ['Grammarly', "Extension Chrome, valeur en 30 secondes"]
            ]},
            { kind: 'callout', text: "Red flag : si vous devez faire des calls d'onboarding pour 80 % de vos signups, vous n'êtes pas PLG." }
          ]},
          { kind: 'paragraphs', h2: "Modèle 2 : Sales-Led classique", body: [
            "Un cycle de vente traditionnel : Prospect → qualification → démo → négociation → close. Un humain est impliqué du début à la fin.",
            "Pour qui ?",
            { kind: 'bullets', items: [
              "ACV > 15–25K€",
              "Cycle long (plusieurs semaines/mois)",
              "Multi-stakeholders (décideur ≠ user)",
              "Produit complexe nécessitant customisation et intégration"
            ]},
            { kind: 'table', columns: ['Exemple entreprise', 'Caractéristiques'], rows: [
              ["Salesforce (à l'origine)", "Deal moyen > 50K€, cycle de 3 à 6 mois, équipe sales massive"],
              ['SAP, Oracle', "Software enterprise, contrats énormes"]
            ]},
            { kind: 'callout', text: "Erreur classique : faire du Sales-Led sur des petits tickets parce que « c'est comme ça qu'on a toujours fait ». Résultat : CAC à 8K€ pour un deal à 3K€." }
          ]},
          { kind: 'paragraphs', h2: "Modèle 3 : Product-Led Sales (PLS)", body: [
            "C'est le sweet spot pour 70 % des SaaS B2B. Le produit acquiert les users (PLG), puis les sales interviennent pour convertir les meilleurs (ceux qui montrent des signaux d'achat forts).",
            "En gros : PLG pour l'acquisition, Sales-Led pour la conversion des gros tickets.",
            "Pour qui ?",
            { kind: 'bullets', items: [
              "ACV entre 2K€ et 50K€ (zone grise parfaite)",
              "Produit self-serve, mais avec de la valeur supplémentaire sur des features avancées",
              "Mix de petits et gros clients dans votre TAM"
            ]},
            { kind: 'table', columns: ['Exemple entreprise', 'Caractéristiques'], rows: [
              ['Slack', "Tu t'inscris gratuitement, ton équipe adopte, à 10K messages → un AE t'appelle pour te proposer l'Enterprise"],
              ['Calendly', "Self-serve pour PME, motion sales pour les deals > 25K€"],
              ['Figma', "Free pour les designers, sales pour convertir les entreprises (SSO, admin, support)"]
            ]},
            { kind: 'callout', text: "Mon conseil : si vous êtes entre 5K€ et 25K€ d'ACV, c'est probablement votre modèle cible. Commencez PLG, ajoutez des interventions sales sur la détection de triggers." }
          ]},
          { kind: 'paragraphs', h2: "Modèle 4 : Sales-Assisted PLG", body: [
            "L'inverse du Product-Led Sales. Par défaut, tout est self-serve. Mais vous offrez la possibilité de parler à un humain si le user en a besoin (ou si vous détectez qu'il galère).",
            "Pour qui ?",
            { kind: 'bullets', items: [
              "ACV < 10K€, mais produit pas évident au premier coup d'œil",
              "Self-serve possible, mais certains users préfèrent être accompagnés",
              "Onboarding critique : si le user rate son setup initial, il churn"
            ]},
            { kind: 'table', columns: ['Exemple entreprise', 'Caractéristiques'], rows: [
              ['Stripe', "Docs hyper complètes, self-serve, mais option « talk to sales » visible partout"],
              ['HubSpot', "Free CRM self-serve + option démo pour ceux qui veulent"],
              ['Webflow', "Tu peux apprendre tout seul, ou booker un call avec leur équipe"]
            ]},
            { kind: 'callout', text: "La différence avec Product-Led Sales : ici, le sales est réactif (aide quand demandé), pas proactif (chasse les PQLs)." },
            { kind: 'embed', src: '/plg-decision-tree.html', title: 'Arbre de décision PLG vs Sales-Led' }
          ]},
          { kind: 'paragraphs', h2: "Les erreurs fréquentes sur le choix de motion", body: [
            { kind: 'embed', src: '/plg-errors-table.html', title: 'Erreurs fréquentes sur le choix de motion' }
          ]},
          { kind: 'paragraphs', h2: "Conclusion", body: [
            "Dans le meilleur des mondes, votre SaaS doit adapter ses motions en fonction des cibles et des ACV qui s'offrent à lui. Mettre des sales sur de tout petits deals revient à tuer votre rentabilité à petit feu, et à l'inverse, chercher à adresser de grands comptes sans touche humaine relève de la folie (ou du génie).",
            "Dans tous les cas, on propose des workshops offerts pendant lesquels on met à plat votre acquisition et votre organisation interne, et à l'issue desquels on vous remet un plan d'action détaillé de ce que l'on ferait à votre place.",
            { kind: 'callout', text: "Intéressé ? On a des créneaux de workshop gratuits pour challenger votre Go-to-market et vous remettre un plan d'action détaillé." }
          ]},
          { kind: 'quote', text: "Le vrai dilemme, ce n'est pas « PLG vs Sales-Led » — c'est de savoir quelle motion activer pour quel segment de votre marché.", attribution: 'Antoine Guiné' }
        ]
      },
      'gtm-scoring-playbook-2026': {
        eyebrow: 'Article · RevOps',
        title: "The 2026 GTM Scoring Playbook",
        lede: "Au cours des derniers mois, je me suis cassé la tête à trouver le meilleur framework de scoring pour des SaaS B2B. On a testé beaucoup de choses avec des entreprises et je pense avoir enfin trouvé le modèle le plus performant — et très peu d'entreprises l'appliquent en 2026.",
        author: 'Antoine Guiné', authorRole: 'Fondateur @Upscale, GTM Engineer',
        date: '4 juillet 2025', readingTime: '12 min de lecture',
        sections: [
          { kind: 'paragraphs', h2: "Deux moments critiques de scoring", body: [
            "Pourquoi ? Parce que la plupart des SaaS scorent leurs leads de manière rigide. Un seul score. Une seule logique. Qu'importe où se trouve le prospect dans le funnel.",
            "C'est une erreur. Un SaaS B2B a deux moments critiques de scoring :",
            { kind: 'bullets', items: [
              "Pre-Sales Scoring (Sales-Led) — Quand ? Avant même de prospecter un compte. Objectif ? Prioriser qui mérite ton temps commercial. Variables clés : Firmographic + Intent externe + ACV potentiel → Tu évites de brûler des heures sur des comptes qui ne signeront jamais.",
              "Post-Signup Scoring (PLG/Hybrid) — Quand ? Sur vos users produit. Objectif ? Déterminer si un compte mérite une intervention sales ou reste en nurturing automatisé. Variables clés : Intent produit + Firmographic + Intent externe + ACV potentiel → Tu détectes les signups à fort potentiel avant qu'ils ne churnent."
            ]},
            "La différence entre ces deux approches ? Le product intent. En pre-sales, tu n'as aucune donnée d'usage. En post-signup, tu as une mine d'or : features utilisées, fréquence, depth, time-to-value, etc."
          ]},
          { kind: 'paragraphs', h2: "I. Pre-Sales Scoring : Prioriser Avant de Prospecter", body: [
            "Avant de scorer quoi que ce soit, il faut poser les bases."
          ]},
          { kind: 'paragraphs', h2: "Étape 0 : Définir votre SAM", body: [
            "Le SAM (Serviceable Addressable Market), c'est l'ensemble des entreprises + personas que vous pouvez réellement contacter via les canaux d'acquisition que vous avez choisis.",
            "Ne pas le confondre avec votre TAM (Total Addressable Market) qui lui ne prend pas en compte la possibilité de contact.",
            "Exemple : Un compte sur lequel vous avez 0 contact pour votre cold call = 1 compte TAM — 0 compte SAM.",
            "Exemple concret : Vous avez un SaaS de Sales Engagement et vous avez validé le cold call + Emailing comme mode d'acquisition. Votre SAM, c'est :",
            { kind: 'bullets', items: [
              "Entreprises B2B entre 50 et 500 salariés",
              "Avec une équipe sales de minimum 5 personnes",
              "En France, Belgique, Suisse",
              "Accessibles via LinkedIn + Email (= Vous avez leurs coordonnées OU vous êtes en mesure de les trouver)"
            ]},
            "Prendre en compte uniquement votre SAM vous permet de visualiser et surveiller l'intégralité de votre marché adressable. Si vous avez 12 000 comptes dans votre SAM, vous savez exactement combien vous en avez déjà contactés, combien sont en cours, combien restent vierges.",
            "Maintenant que vous savez QUI scorer, on passe au COMMENT. Voilà les 3 piliers sur lesquels repose le Pre-Sales Scoring :"
          ]},
          { kind: 'paragraphs', h2: "Pilier 1 : Firmographic Score", body: [
            "Ces données ne bougent pas (ou peu) d'un jour à l'autre. Pas besoin de les rafraîchir en daily, un refresh tous les 3–6 mois suffit. Le but : scorer parmi toutes les entreprises de votre SAM, celles qui correspondent le plus à votre cible.",
            "Exemple pour un SaaS de Sales Engagement :",
            { kind: 'table', columns: ['Critère', 'Condition', 'Points'], rows: [
              ['Headcount Sales', '20+ sales', '15 pts'],
              ['Headcount Sales', '10-19 sales', '10 pts'],
              ['Headcount Sales', '5-9 sales', '5 pts'],
              ['Headcount Sales', '<5 sales', '0 pt'],
              ['Industrie', 'SaaS B2B', '10 pts'],
              ['Industrie', 'Services/Conseil', '7 pts'],
              ['Industrie', 'E-commerce/Retail', '3 pts'],
              ['Industrie', 'Autres', '0 pt'],
              ['Localisation siège', 'Paris/Lyon/Lille', '5 pts'],
              ['Localisation siège', 'Autres grandes villes FR', '3 pts'],
              ['Localisation siège', 'Zones rurales', '0 pt'],
              ['Tech Stack', 'Utilise Salesforce/HubSpot', '5 pts'],
              ['Tech Stack', 'Utilise CRM basique', '2 pts'],
              ['Tech Stack', 'Pas de CRM détecté', '0 pt'],
              ['Cibles visées', 'B2B avec ACV >10K€', '5 pts'],
              ['Cibles visées', 'B2B avec ACV <10K€', '2 pts'],
              ['Cibles visées', 'B2C', '0 pt']
            ]},
            "Ces critères sont 100% personnalisables selon votre ICP. L'important, c'est qu'ils soient discriminants — qu'ils reflètent vraiment votre meilleur client.",
            { kind: 'callout', text: "Point BONUS : vous pouvez aussi adapter les critères firmographic à vos personas. Exemple : Head of Sales (5 pts), Directeur commercial (2 pts), etc." }
          ]},
          { kind: 'paragraphs', h2: "Pilier 2 : Intent Score", body: [
            "Contrairement au firmographic, cet intent est plus volatile. Un compte peut être chaud aujourd'hui, froid dans 7 jours. Pour être efficace, un intent doit être rattaché à une temporalité.",
            "Voilà comment mettre en place un bon système de tracking intent :",
            "1. Définir les intents clés",
            { kind: 'bullets', items: [
              "Visite de la page pricing (10 pts)",
              "Téléchargement d'un template cold email (8 pts)",
              "Participation à un webinar Outbound (8 pts)",
              "Visite de page comparateur type « vs Lemlist » (7 pts)",
              "Lecture d'article de blog sur le cold emailing (5 pts)",
              "Engagement LinkedIn sur post lié au sales (3 pts)",
              "Intent data externe (recherche G2 « sales engagement tool ») (10 pts)"
            ]},
            "2. Mettre en place vos workflows de tracking (Clay, getcargo.io, autres outils d'intent).",
            "3. Adapter le score selon les intents détectés. Logique de cumul : les intents s'additionnent jusqu'à un maximum. Un même intent ne compte qu'une fois. Les intents les plus forts écrasent les plus faibles sur une même catégorie.",
            "4. Refresh daily + décroissance temporelle. C'est là le plus dur : faire en sorte que votre score varie en fonction du délai depuis lequel l'intent a été détecté.",
            { kind: 'table', columns: ["Ancienneté de l'intent", 'Coefficient'], rows: [
              ['0–1 jours', '100%'],
              ['2–4 jours', '70%'],
              ['5–7 jours', '40%'],
              ['+7 jours', '0% (périmé)']
            ]},
            "À noter que vous gagnerez en performance si vous mettez des règles de péremption propres au type d'intent détecté. Votre système doit recalculer le score de vos comptes chaque jour en fonction des nouveaux intents détectés + ancienneté des intents précédemment détectés et le mettre à jour de manière claire aux yeux de vos sales (exemple : mise à jour de phase de pipeline ou alerte Slack).",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1PTfv6tLObLZwB9JC22P2YDNGpcJyvuN0=s0' },
            { kind: 'callout', text: "Le scoring d'intent ne doit pas impacter le score global d'un compte de manière trop forte. Une boîte moyennement intéressante ne doit pas devenir prioritaire uniquement parce qu'elle est passée sur votre site." }
          ]},
          { kind: 'paragraphs', h2: "Pilier 3 : ACV Potentiel", body: [
            "Vous basez votre estimation sur les données firmographic que vous avez déjà et vous mettez en place une formule.",
            "Exemple pour un SaaS de Sales Engagement facturé par seat :",
            { kind: 'callout', text: "ACV potentiel = (Nb sales × Taux d'équipement estimé) × Prix par seat annuel" },
            "Ensuite, vous attribuez un score par tranche d'ACV :",
            { kind: 'table', columns: ['ACV Potentiel', 'Points'], rows: [
              ['30K€+', '25 pts'],
              ['20K–30K€', '20 pts'],
              ['10K–20K€', '15 pts'],
              ['5K–10K€', '10 pts'],
              ['2K–5K€', '5 pts'],
              ['<2K€', '0 pt']
            ]},
            "Toutes les méthodes de calcul et points attribués doivent être définis selon vos critères."
          ]},
          { kind: 'paragraphs', h2: "Calcul Final Pre-Sales", body: [
            "Score Pre-Sales Total = Firmographic + Intent + ACV = Un score ramené sur 100 points maximum. Sur cette base, vous segmentez votre SAM :",
            { kind: 'table', columns: ['Score', 'Priorité', 'Action'], rows: [
              ['75–100', '🔥 HOT', 'Contact immédiat par AE senior, personnalisation max'],
              ['50–74', '🟠 WARM', 'Séquence outbound automatisée + suivi AE dans 48h'],
              ['25–49', '🟡 COLD', 'Nurturing long-terme, pas de ressources sales directes'],
              ['0–24', '⚫ ICE COLD', 'Hors cible, ne pas contacter']
            ]},
            { kind: 'callout', text: "Un compte peut voir son score évoluer d'un jour à l'autre. Cela évite de voir des comptes en HOT depuis des mois simplement parce qu'un prospect est passé sur votre site il y a 6 mois." }
          ]},
          { kind: 'paragraphs', h2: "II. Post-Signup Scoring", body: [
            "Une fois qu'un user s'inscrit en self-service, vous avez accès à une donnée massive que vous n'avez pas en pre-sales : le product intent. Et cette donnée devient votre thermomètre.",
            "Il vous dit si un user est 🔥 CHAUD (engagement fort, potentiel d'upsell imminent) ou ❄️ FROID (usage faible, risque de churn).",
            "Mais l'intent produit seul ne suffit pas. Un user hyper actif à 500€/an ne mérite pas les mêmes ressources qu'un user moyennement actif à 30K€/an. C'est la combinaison Product Intent + Firmographic + ACV + Intent externe qui détermine quelle ressource allouer.",
            "Signaux CHAUDS (upsell imminent) :",
            { kind: 'bullets', items: [
              "User essaie d'inviter un collègue → bloqué par son plan",
              "User atteint la limite de son plan (emails, contacts, seats...)",
              "User tente d'accéder à une feature premium → bloquée",
              "Usage daily/weekly intensif",
              "Intégration avec des outils critiques (CRM, Slack, etc.)"
            ]},
            "Signaux FROIDS (churn risk) :",
            { kind: 'bullets', items: [
              "Inactif depuis 7+ jours",
              "N'a pas atteint le « aha moment » après 14 jours",
              "Fréquence d'usage en baisse",
              "Adoption de features stagnante"
            ]},
            "Pour mettre en place ce scoring, vous devez tracker des events dans votre produit et les envoyer vers des databases capables de calculer les scores en instantané.",
            "Score Total Post-Signup = Product Intent + Firmographic + Intent externe + ACV potentiel — ramené sur 100 points."
          ]},
          { kind: 'paragraphs', h2: "La Segmentation : PLG Pur vs PLG Hybrid", body: [
            { kind: 'table', columns: ['', 'PLG Pur', 'PLG Hybrid'], rows: [
              ['Caractéristiques', 'Nurturing 100% automatisé. Self-serve upgrade. Ressources minimales. Monitoring passif.', 'Intervention sales ciblée (email perso, call, demo). Handoff vers AE/CSM. Monitoring actif avec alertes.'],
              ['Quand', 'Score total <60 OU ACV potentiel <5K€', 'Score total ≥60 ET ACV potentiel ≥5K€'],
              ['Stack', 'Customer.io / Intercom. Sequences comportementales. In-app nudges.', 'AE + CSM + tous les outils nécessaires.']
            ]},
            "Pour conclure, voilà la matrice de décision que vous pouvez adapter en fonction de votre produit :",
            { kind: 'table', columns: ['Product Intent', 'Score Total', 'ACV Potentiel', 'Segmentation', 'Action'], rows: [
              ['🔥 CHAUD', '≥60', '≥10K€', 'PLG Hybrid — Intervention Immédiate', 'AE contacte sous 24h pour closer l\'upsell'],
              ['🔥 CHAUD', '≥60', '5–10K€', 'PLG Hybrid — Touch Léger', 'Email perso AE + self-serve option'],
              ['🔥 CHAUD', '<60', '<5K€', 'PLG Pur — Automation Intensive', 'Emails d\'upsell + in-app nudges, pas de sales'],
              ['❄️ FROID', '≥60', '≥10K€', 'PLG Hybrid — Save Mode', 'CSM/AE contacte pour débloquer l\'adoption'],
              ['❄️ FROID', '<60', '<5K€', 'PLG Pur — Low Touch', 'Automation réactivation minimale']
            ]}
          ]},
          { kind: 'quote', text: "Les deux moments critiques du scoring B2B : avant de prospecter (firmographic + intent externe) et après le signup (product intent + firmographic). La combinaison des deux, c'est ce qui fait la différence.", attribution: 'Antoine Guiné' }
        ]
      },
      'construire-son-tam-2025': {
        eyebrow: 'Article · Outbound',
        title: "Construire son TAM en 2025 : Guide et méthodes",
        lede: "Avoir connaissance de son TAM (= Total Addressable Market) est une mine d'or d'un point de vue business. Il vous permet de connaître le nombre de cibles qui s'offrent à vous, et ainsi de mieux préparer chaque action que vous mettez en place, tant marketing que sales.\n\nEt pourtant, beaucoup de boîtes ne cherchent même pas à l'estimer, par manque d'intérêt ou de connaissance. Dans cet article, je vais vous montrer comment réaliser votre TAM de A à Z.",
        author: 'Antoine Guiné', authorRole: 'Fondateur @Upscale, GTM Engineer',
        date: '4 juillet 2025', readingTime: '9 min de lecture',
        sections: [
          { kind: 'paragraphs', h2: "Quelle différence entre le TAM et le RAM ?", body: [
            "L'une des problématiques du TAM, c'est que c'est une approche idéaliste de votre volume de contacts cible. Il considère que vous êtes en mesure de contacter 100 % des entreprises/personnes que vous identifiez.",
            "Imaginons que votre cible soit des agences immobilières parisiennes, entre 10 et 50 employés. Votre TAM final sera peut-être de 2 476 entreprises.",
            "En réalité, peut-être que vous ne pourrez identifier que 80 % de personnes cibles au sein de ces entreprises et en contacter que 80 % ou 85 % (pas de profils LinkedIn, pas d'e-mails ou de numéros de téléphone trouvés, etc.).",
            "C'est à ce moment-là que le RAM (= Real Addressable Market) entre en jeu. Il correspond au nombre de cibles identifiées et techniquement joignables d'une manière ou d'une autre avec votre méthode d'acquisition.",
            "Concrètement, on a juste affaire à un changement de dimension, mais dans les faits, cela ne donne pas le même impact à vos actions marketing."
          ]},
          { kind: 'paragraphs', h2: "1. Connaître précisément vos cibles", body: [
            "Vous devez savoir précisément quelles sont les typologies d'entreprises pertinentes pour vous à contacter. Voici une liste de certains critères pouvant être pertinents pour les entreprises :",
            { kind: 'bullets', items: [
              "Le code NAF de l'entreprise",
              "La localisation",
              "Le nombre de salariés",
              "Le chiffre d'affaires réalisé",
              "Les technologies utilisées sur leur site web",
              "La présence ou non sur tel ou tel réseau social",
              "L'ancienneté de l'entreprise",
              "L'investissement ou non en publicité payante"
            ]},
            "Ensuite, vous devez faire la même chose pour les personnes que vous allez contacter dans ces entreprises. Voici une liste de certains critères pouvant être pertinents :",
            { kind: 'bullets', items: [
              "La présence ou non sur un réseau social",
              "Le poste occupé au sein de l'entreprise",
              "L'âge de la personne",
              "L'ancienneté à un poste",
              "La possession d'une ou plusieurs entreprises"
            ]},
            "Il existe des centaines de combinaisons possibles. Une fois que vous avez ces éléments, vous êtes en mesure de déterminer si une entreprise rentre ou non dans vos critères (idem pour une personne) et de commencer à identifier vos cibles de manière plus précise."
          ]},
          { kind: 'paragraphs', h2: "2. Identifier vos cibles", body: [
            "SPOILER ALERT — En fonction des cibles que vous visez, la réalisation d'un TAM est potentiellement compromise, voire impossible. En effet, certaines informations sont difficilement, voire impossibles à connaître précisément.",
            "Personnellement, je vous recommande de toujours commencer par l'identification des entreprises. Sur le marché français, des outils comme pappers.fr ou societeinfo.com peuvent vous être très utiles pour identifier des entreprises selon des critères spécifiques. Ces outils vous permettent d'accéder très rapidement à une volumétrie d'entreprises qui rentre dans votre cible.",
            { kind: 'image', src: 'https://lh3.googleusercontent.com/d/1gwS0MTQr4tvWbHZY4yTq0-SbANlyeSCg=s0' },
            { kind: 'callout', text: "ATTENTION — Si vous avez des critères plus complexes, il faudra probablement orchestrer des données de plusieurs bases de données et les coupler avec de l'IA pour extraire l'information pertinente." },
            "Exemple : si vous visez des e-commerces français de plus de 10 salariés qui proposent un programme de fidélité, vous devrez :",
            { kind: 'bullets', items: [
              "Identifier des e-commerces en France (Storeleads, par exemple)",
              "Extraire, depuis leurs mentions légales, le numéro SIREN avec une IA",
              "Vérifier le nombre d'employés en consultant le SIREN sur Pappers",
              "Faire passer une IA sur les sites web qualifiés pour vérifier la présence ou non d'un programme de fidélité"
            ]},
            "Ici, vous devez absorber beaucoup de données en entrée pour ensuite procéder à des analyses spécifiques qui vous permettront de ne valider que les bons. C'est chronophage et coûteux, mais cela vous donnera une vision nettement plus précise du nombre d'entreprises qui rentrent dans vos critères.",
            "Prochaine étape : identifier les leads pertinents dans ces entreprises. Des outils comme pappers.fr, societeinfo.com, apollo.io, pharow.com et évidemment LinkedIn sont très intéressants. Ils vous permettent d'identifier des personnes spécifiques au sein des entreprises validées et d'obtenir leurs profils LinkedIn pour creuser plus en détail.",
            "À ce stade, on commence déjà à sentir la limite du TAM. Si l'on reprend notre exemple, nous n'allons pas pouvoir trouver toutes les personnes rentrant dans votre cible au sein de ces sociétés — surtout si vous ne ciblez pas les fondateurs. À ce moment-là, votre TAM se transformera en RAM. Les entreprises identifiées n'ayant pas de contacts ne sont pas à jeter, mais seront difficilement joignables.",
            { kind: 'embed', src: '/tam-funnel.html' }
          ]},
          { kind: 'paragraphs', h2: "3. Enrichir vos cibles", body: [
            "Cette notion correspond au nombre de personnes que vous êtes en mesure de contacter parmi celles identifiées dans les entreprises qui rentrent dans votre cible.",
            "En effet, pour que votre TAM soit fonctionnel, vous devez connaître le nombre de personnes que vous pouvez contacter. Pour cela, vous devez lancer des scénarios d'enrichissement en fonction des données que vous souhaitez (LinkedIn, e-mail, téléphone, adresse, etc.).",
            "Voici quelques outils qui peuvent être intéressants :",
            { kind: 'bullets', items: [
              "prontohq.com",
              "kaspr.io",
              "clay.com — pour agréger une multitude de sources de données d'enrichissement"
            ]},
            "Il est impossible d'obtenir les données de contact de 100 % des personnes que vous avez identifiées. D'où le passage du RAM au RAM final.",
            "Une fois que vous possédez toutes ces données, vous êtes en mesure de connaître le nombre de cibles qui composent votre marché. C'est un indicateur très intéressant pour vos actions marketing/sales.",
            "Si vous prospectez, vous êtes en mesure de savoir quel pourcentage de votre RAM vous avez contacté sur l'année, ou combien de fois vous êtes en mesure de contacter votre RAM sur une année."
          ]},
          { kind: 'paragraphs', h2: "Points importants", body: [
            "Votre TAM/RAM est évolutif. Il y a fort à parier que vos informations d'entreprises et de contacts ne soient plus 100 % similaires d'une année à l'autre.",
            "Certaines entreprises pourront sortir des critères de ciblage ou y rentrer. Certaines personnes pourront ne plus travailler dans les entreprises cibles ou ne plus être au bon poste.",
            "Dans l'idée, il faut que vous soyez en mesure de monitorer votre TAM fréquemment ou que vous répétiez la procédure au bout de quelques années (sur la base entreprises) et tous les quelques mois ou une année maximum (sur la base personnes).",
            { kind: 'callout', text: "Sur certaines actions marketing, votre TAM peut être en réalité votre RAM, ou du moins ne perdre que quelques pourcents. Par exemple, si vous faites du Google Ads avec un bon ciblage, vos publicités devront toucher les personnes de votre TAM — et hypothétiquement, au bout de X temps, vous pourriez en toucher 100 %." }
          ]},
          { kind: 'quote', text: "Votre TAM n'est pas une photo — c'est une vidéo. Il évolue chaque mois avec votre marché. Le monitorer, c'est savoir exactement où vous en êtes dans votre acquisition.", attribution: 'Antoine Guiné' }
        ]
      },
      '3-stades-go-to-market': {
        eyebrow: 'Article · GTM Strategy',
        title: "Les 3 stades go-to-market pour atteindre le premier million d'ARR",
        lede: "Sans une base solide, votre système Go-To-Market ne tiendra pas la route.\n\n→ Vous n'aurez pas d'efficacité.\n→ Vous ne pourrez pas scaler.\n\nEn bref, toutes vos actions ne vous serviront à rien. Il faut que vous arriviez à mettre en place un système robuste, résistant dans le temps. Et ça, vous pouvez le faire en 3 étapes :",
        author: 'Antoine Guiné', authorRole: 'Fondateur @Upscale, GTM Engineer',
        date: '4 juillet 2025', readingTime: '6 min de lecture',
        sections: [
          { kind: 'paragraphs', h2: "3 étapes pour un GTM solide", body: [
            "Ces 3 étapes vous permettent d'aller chercher ce que l'on appelle le product market fit (= vous avez un produit/service en adéquation avec les attentes du marché).",
            "À noter que le product market fit = problem-solution fit (étape 1) + GTM fit (étape 2)",
            "Donc, une fondation GTM = expérimentation GTM (phase 1) + GTM playbook (phase 2)"
          ]},
          { kind: 'paragraphs', h2: "ÉTAPE 1 - CONFRONTATION MARCHÉ", body: [
            "L'objectif de cette étape est très simple : trouver les 10 à 50 premiers clients acheteurs de votre solution.",
            "Le but ici est de multiplier les tests pour valider des hypothèses et identifier les leviers qui fit le mieux avec vos cibles pour les toucher. C'est une expérimentation GTM.",
            "Par exemple, sur de faibles volumes, vous pouvez :",
            { kind: 'bullets', items: [
              "Emailing → efficace",
              "Réseaux sociaux → inutile",
              "Google Ads → efficace mais cher",
              "Meta Ads → efficace",
              "LinkedIn Ads → pas efficace",
              "etc..."
            ]},
            "Sur le nombre de clients que vous signerez, il y en a probablement qui ne rentreront pas dans le scope de clientèle que vous avez imaginé initialement.",
            "→ Il faut donc vous concentrer sur vos clients les plus adaptés et vous nicher temporairement sur un segment et un cas d'usage précis.",
            "À ce niveau, l'étape 2 peut commencer :"
          ]},
          { kind: 'paragraphs', h2: "ÉTAPE 2 - FOCUS", body: [
            "L'objectif est d'aller chercher un maximum de clients sans multiplier les canaux. Dans un premier temps, il sera impossible d'ouvrir tous les canaux que vous souhaitez :",
            "→ Ça demandera des ressources monétaires, du temps et des stratégies distinctes que vous n'aurez pas à ce stade de développement.",
            "Vous allez donc vous focaliser sur vos premiers clients, définir un ICP et un persona, et vous concentrer sur le canal qui a été le plus fructueux (ROI & CAC) lors de la phase 1.",
            "1 canal, 1 cas d'usage, 1 ICP → c'est simple et ça permet de se concentrer au maximum pour exécuter une seule et même chose à la perfection.",
            "Beaucoup d'entreprises crament leur acquisition à vouloir persister sur le même canal alors que les résultats ne sont pas probants et d'autres à vouloir les multiplier trop rapidement."
          ]},
          { kind: 'paragraphs', h2: "ÉTAPE 3 - EXPANSION", body: [
            "Ligne droite vers le million d'euros d'ARR. Vous avez normalement identifié les cibles idéales et un canal fonctionnel. À vous de varier les angles d'attaque par la suite :",
            { kind: 'bullets', items: [
              "Verticale : même audience cible, nouveaux cas d'usage",
              "Horizontale : même cas d'usage, nouvelles audiences",
              "Continuer à scaler si le marché est suffisamment grand"
            ]},
            "Bien évidemment, à ce stade, vous pouvez décider d'ouvrir progressivement de nouveaux canaux sur la base de vos expérimentations.",
            "Mettez en place un incrément de 1 pour ne pas surcharger vos actions d'acquisition. Maîtrisez un canal, ouvrez-en un autre après !",
            { kind: 'embed', src: '/gtm-3-stades-flow.html' }
          ]}
        ]
      }
    }
  },
  en: {
    cases_cards: [
      { co: 'Gimmic Design', d: 'gimmic-design.com', m: '+270', l: 'meetings booked', q: "Over the past 12 months, we tested more than 20 campaigns with Upscale which allowed us to generate +€300K in pipeline.", n: 'Bastien Carretier', r: 'CEO' },
      { co: 'Imagine Médias', d: 'imagine-medias.fr', m: '+20K', l: 'signed in month 1', q: "We achieved record response rates after launching the campaigns (+10% positive replies) across thousands of leads, for a total of €20K signed in the very first month.", n: 'Valentin Legrand', r: 'CEO' },
      { co: 'Cleaq', d: 'cleaq.com', m: '×2', l: 'qualified meetings', q: "We went from a broken acquisition system where every rep built their prospecting lists by hand, to one that lets us detect the hottest leads in our market before our competitors.", n: 'Lorenzo M.', r: 'Head of Growth' }
    ],
    cta_buttons: { primary: 'Book 30 min', secondary: 'On LinkedIn' },
    usecases_hero: {
      eyebrow: 'Customer stories', h1a: 'Pipeline.', h1b: 'Not buzz',
      sub: 'How our B2B clients structured their outbound, secured their mail infra, and scaled qualified pipeline — in 90 days or less.',
      kpis: [['+80', 'clients onboarded'], ['+1.2M€', 'pipeline generated'], ['×2', 'avg meetings / client'], ['90d', 'time-to-impact']]
    },
    usecases_cards: [
      { slug: 'cleaq', published: true, co: 'Cleaq', d: 'cleaq.com', sector: 'SaaS · IT Asset Management', m1: '×3', l1: 'meetings generated', m2: '+10K', l2: 'leads generated', title: "3 months that reshaped Cleaq's acquisition.", quote: 'A full sales machine: intent data, smart scoring, personalized copy, HubSpot sync.', name: 'Antoine Guiné', role: 'Article · April 10, 2026', accent: '#E1FF6C' },
      { slug: 'delos', published: true, co: 'Delos', d: 'delos.so', sector: 'SaaS · Real estate', m1: '+280%', l1: 'leads identified', m2: '+10K', l2: 'CRM records cleaned', title: 'Building a full sales machine from scratch for Delos.', quote: 'From CRM data to intent scoring: a complete sales machine, built from scratch.', name: 'Louis Paul-Petit', role: 'Growth & RevOps Manager', accent: '#C9F26B' },
      { slug: 'imagine-medias', published: false, co: 'Imagine Médias', d: 'imagine-medias.fr', sector: 'Media · Audiovisual production', m1: '×3', l1: 'meetings booked / mo', m2: '+180%', l2: 'engaged leads', title: 'From manual hustle to a fully automated acquisition machine.', quote: 'Upscale moved us from manual chaos to a well-oiled machine.', name: 'Valentin Legrans', role: 'Head of Sales', accent: '#ECFF8E' }
    ],
    resources_hero: {
      eyebrow: 'Resources', h1a: 'The field.', h1b: 'Not the theory',
      sub: 'What we learn building sales machines for B2B clients. Outbound, RevOps, GTM strategy, tooling — no fluff.'
    },
    resources_cards: [
      { slug: 'content-led-growth-2026', published: false, category: 'gtm-strategy', title: 'The Content-Led-Growth guide for 2026', excerpt: 'How to turn your content into an acquisition machine: strategy, formats, distribution and ROI measurement.', date: 'February 24, 2026', readingTime: '10 min read', author: 'Antoine Guiné', accent: '#E1FF6C' },
      { slug: 'gtm-on-demand-2026', published: true, category: 'gtm-strategy', title: 'How to run GTM on-demand in 2026?', excerpt: 'The on-demand GTM model: an alternative to full-time Sales and Marketing teams for B2B scaleups.', date: 'February 19, 2026', readingTime: '8 min read', author: 'Antoine Guiné', accent: '#C9F26B' },
      { slug: 'outbound-gtm-playbook-2026', published: true, category: 'outbound', title: 'Outbound GTM playbook for 2026', excerpt: 'The complete outbound playbook for 2026: signals, sequences, infrastructure and performance measurement.', date: 'February 6, 2026', readingTime: '15 min read', author: 'Antoine Guiné', accent: '#ECFF8E' },
      { slug: 'plg-vs-sales-led', published: true, category: 'gtm-strategy', title: 'Product-Led-Growth vs Sales-led: Which model to choose?', excerpt: 'PLG vs Sales-led: an objective analysis of both models and the criteria for choosing the right one for your stage.', date: 'February 6, 2026', readingTime: '14 min read', author: 'Antoine Guiné', accent: '#E1FF6C' },
      { slug: 'gtm-scoring-playbook-2026', published: true, category: 'revops', title: 'The 2026 GTM Scoring Playbook', excerpt: 'The GTM scoring framework we use with our clients to prioritize accounts and trigger the right actions.', date: 'July 4, 2025', readingTime: '12 min read', author: 'Antoine Guiné', accent: '#C9F26B' },
      { slug: 'playbook-go-to-market-2025', published: false, category: 'gtm-strategy', title: 'The ultimate Go-to-market playbook for 2025', excerpt: 'From ICP definition to building acquisition workflows: the complete GTM playbook for B2B.', date: 'July 4, 2025', readingTime: '18 min read', author: 'Antoine Guiné', accent: '#ECFF8E' },
      { slug: 'construire-son-tam-2025', published: true, category: 'outbound', title: 'Building your TAM in 2025: Guide and methods', excerpt: 'How to define, segment and prioritize your total addressable market to focus efforts where they matter.', date: 'July 4, 2025', readingTime: '9 min read', author: 'Antoine Guiné', accent: '#E1FF6C' },
      { slug: '3-stades-go-to-market', published: true, category: 'gtm-strategy', title: 'The 3 go-to-market stages to reach your first million ARR', excerpt: 'Each B2B growth stage requires a different GTM model. Here is how to pivot at the right time.', date: 'July 4, 2025', readingTime: '6 min read', author: 'Antoine Guiné', accent: '#C9F26B' },
    ],
    resources_articles: {
      '3-stades-go-to-market': {
        eyebrow: 'Article · GTM Strategy',
        title: 'The 3 go-to-market stages to reach your first million ARR',
        lede: "Without a solid foundation, your Go-To-Market system won't hold up.\n\n→ You won't be efficient.\n→ You won't be able to scale.\n\nIn short, all your actions will be useless. You need to build a robust, time-resistant system. And you can do it in 3 steps:",
        author: 'Antoine Guiné', authorRole: 'Founder @Upscale, GTM Engineer',
        date: 'July 4, 2025', readingTime: '6 min read',
        sections: [
          { kind: 'paragraphs', h2: "3 steps for a solid GTM", body: [
            "These 3 steps allow you to reach what is called product market fit (= you have a product/service aligned with market expectations).",
            "Note that product market fit = problem-solution fit (step 1) + GTM fit (step 2)",
            "So, a GTM foundation = GTM experimentation (phase 1) + GTM playbook (phase 2)"
          ]},
          { kind: 'paragraphs', h2: "STEP 1 - MARKET CONFRONTATION", body: [
            "The objective of this step is simple: find your first 10 to 50 paying clients.",
            "The goal here is to run multiple tests to validate hypotheses and identify the channels that fit best with your targets. This is GTM experimentation.",
            "For example, on low volumes, you might find:",
            { kind: 'bullets', items: [
              "Email outbound → effective",
              "Social media → useless",
              "Google Ads → effective but expensive",
              "Meta Ads → effective",
              "LinkedIn Ads → not effective",
              "etc..."
            ]},
            "Among the clients you sign, some will likely fall outside the customer scope you initially envisioned.",
            "→ You must therefore focus on your most suitable clients and temporarily niche down on one segment and one specific use case.",
            "At this point, step 2 can begin:"
          ]},
          { kind: 'paragraphs', h2: "STEP 2 - FOCUS", body: [
            "The goal is to acquire as many clients as possible without multiplying channels. At first, it will be impossible to open all the channels you want:",
            "→ It will require financial resources, time, and distinct strategies that you won't have at this stage of development.",
            "You will focus on your early clients, define an ICP and a persona, and concentrate on the channel that delivered the best results (ROI & CAC) in phase 1.",
            "1 channel, 1 use case, 1 ICP → it's simple and allows maximum focus to execute one single thing to perfection.",
            "Many companies burn their acquisition by persisting on a channel that isn't delivering, or by scaling too many channels too quickly."
          ]},
          { kind: 'paragraphs', h2: "STEP 3 - EXPANSION", body: [
            "Straight line to one million euros in ARR. You've now identified your ideal targets and a working channel. From here, vary your angles of attack:",
            { kind: 'bullets', items: [
              "Vertical: same target audience, new use cases",
              "Horizontal: same use case, new audiences",
              "Keep scaling if the market is large enough"
            ]},
            "At this point, you can start gradually opening new channels based on your experiments.",
            "Add one channel at a time so you don't overwhelm your acquisition efforts. Master one channel, then open another!",
            { kind: 'embed', src: '/gtm-3-stades-flow.html' }
          ]}
        ]
      }
    }
  }
};
