#21 : Comment se créer un assistant de luxe pour publier sur LinkedIn ?
Inspire toi des posts LinkedIn de ton créateur préféré et génère des posts viraux
Introduction
Bonjour 👋
Cette semaine, je te propose un scénario qui va t'aider à créer des publications LinkedIn avec un meilleur potentiel de viralité.
Après avoir testé plusieurs fois, écrire un post avec ChatGPT m’a semblé souvent impersonnel. Le ton est monotone, et le rendu manque d'humanité.
Aujourd’hui, on va corriger ça avec un nouveau scénario !
⚠️ Quelques points importants :
- L’objectif n’est pas de copier ton créateur de contenu préféré
- Le but du scénario est de te fournir une structure de publication qui fonctionne dans la "méta" LinkedIn. À toi de l’adapter pour y apporter ta valeur ajoutée.
- Tu peux aussi utiliser ce scénario pour scraper tes propres publications passées et créer un Assistant qui sera une mini version de toi.
Maintenant que c’est dit, passons à l’explication du scénario. Il te réserve plusieurs fonctionnalités intéressantes pour gagner en efficacité.
💡 Par exemple, on va convertir des fichiers en vecteurs et alimenter dynamiquement un Assistant ChatGPT. Cette manipulation pourra t’aider dans beaucoup d’autres projets.
🙏 Envie de me soutenir ?
Crée un compte Make avec ce lien affilié (tu auras 1 mois gratuit)
Prends rendez-vous avec moi pour discuter automatisation
Propose une idée de scénario qui pourrait devenir le sujet d’un prochain article.
🛠️ Ma boîte à outil
On m’a souvent demandé de lister les outils que j’utilise au quotidien. Ils sont tous référencés dans ce Notion. Nouveauté : Aucune.
👁️ Présentation du scénario
✅ Quel est l’objectif du scénario ?
L’objectif est simple : t’aider à ne plus subir le syndrome de la page blanche.
Tu sais, cette situation où tu as une idée, mais tu ne sais pas comment la formuler par écrit. Tu te demandes : est-ce que mon approche est bonne ? Mon accroche incite-t-elle à cliquer sur "Voir plus" ? Mon post n’est-il pas trop long ?
Autant de questions qui peuvent te bloquer et t’empêcher de publier du contenu.
Ce scénario te permet de créer un assistant de luxe, basé sur ton créateur de contenu LinkedIn préféré, pour t’aider à dépasser ces obstacles.
💡 Tu peux aussi créer un assistant basé sur tes publications passées, une sorte de brainstorming avec toi même.
⚙️ Comment fonctionne ce scénario ?
On récupère les 50 derniers posts du profil LinkedIn que tu choisis
ChatGPT analyse chaque post : sujet, accroche, structure, tout est passé au crible.
Un PDF est généré, regroupant les publications, leurs performances et l’analyse. Bonus n°1 : tu peux filtrer les posts ayant dépassé un certain nombre de likes.
On crée un Assistant à partir de ce PDF.
On génère des brouillons de posts basés sur les idées initiales qu’on a.
On fait des milliers d’impression ?
Bonus n°2 : Toutes les publications et leurs analyses sont stockées dans un Airtable.
🛠️ Quelles applications sont nécessaires à ce scénario ?
On peut aussi le faire avec Notion ou un simple Google Sheets.
PhantomBuster te permet de scraper l’activité récente de n’importe quel profil LinkedIn
OpenAI
Le Playground et les Assistants OpenAI nous servent à analyser et stocker les publications de référence.
💰 Quel est le coût estimé du scénario ?
Un compte Make, comme toujours.
Quelques centimes pour OpenAI.
La version gratuite de PhantomBuster suffira pour scraper de nombreux posts.
🎉 Le scénario en action
Dans mon exemple, j’ai pris Benoît Dubos. Pas besoin de le présenter, je pense.
J’ai récupéré ses 40 derniers posts, en filtrant ceux qui ont reçu au moins 100 likes. Les posts sont ensuite stockés dans Airtable.
Tu peux voir l’analyse IA de chaque post dans la dernière colonne.
Voici l’analyse de la publication ayant 1 505 likes :
L'accroche de la publication LinkedIn est particulièrement efficace pour capter l'attention dès le départ. En utilisant une promesse directe et attrayante — "On t’a compilé nos 27 meilleurs messages de prospection pour que tu puisses nous les piquer — et exploser tes ventes" — l'auteur attire immédiatement l'attention des professionnels en quête de solutions pour améliorer leur prospection et leurs ventes. L'utilisation du terme "exploser" apporte une connotation de succès rapide et significatif, stimulant l'intérêt des lecteurs.
Structure du Post
Introduction :
L'introduction commence par une promesse neigeudie, en offrant des ressources précieuses qui peuvent aider les lecteurs à améliorer leur activité. Ce hook est rapidement suivi d'une précision sur les résultats tangibles obtenus par l'entreprise, établissant une crédibilité forte.
Développement :
La section suivante apporte des données concrètes sur l'expérience de l'entreprise (400+ clients, milliers de leads générés, nombreuses expérimentations), ce qui crée une base solide de confiance.
L'auteur ne hésite pas à parler des échecs, une stratégie qui humanise le discours et rend les succès plus crédibles.
Les résultats précis (taux de réponse, qualité des leads, cycles de vente rapides) jouent un rôle clé dans l'engagement, car ils fournissent des preuves tangibles que les conseils peuvent réellement fonctionner.
Conclusion :
La conclusion appelle à l'action claire et engageante, en demandant aux lecteurs de "liker" le post et de commenter "PLAYBOOK" pour obtenir les ressources. Cela est crucial, car cela favorise l'interaction, ce qui génère davantage de visibilité pour le post dans le fil d'actualités LinkedIn.
Éléments Clés de l'Engagement
Promesse de valeur : Les lecteurs sont attirés par l'idée de pouvoir "piquer" des messages qui ont fait leurs preuves, créant un fort désir d'acquérir ces informations.
Utilisation de chiffres et résultats concrets : Les données quantitatives fournissent une base solide et convaincante, renforçant la crédibilité et rendant les promesses plus tangibles.
Appel à l'action clair et interactif : La simple instruction de commenter et de "liker" incite les lecteurs à interagir, ce qui booste l'algorithme de visibilité de LinkedIn.
Pistes pour Maximiser l'Engagement
Utiliser des questions stimulantes au début : Poser une question qui répond aux douleurs ou défis des lecteurs pourrait capter leur attention instantanément.
Intégrer des témoignages ou études de cas : Mentionner des exemples concrets ou des témoignages clients renforcerait encore plus la crédibilité.
Utiliser un langage encore plus percutant : Incorporer des mots puissants et des images évocatrices pourrait encore amplifier l’impact émotionnel et l'engagement.
Proposer un accès exclusif : La mention d’un élément exclusif ou personnalisé pourrait également inciter à l'engagement, en créant un sentiment d’urgence ou de rareté.
En résumé, cette publication a réussi à captiver l’attention grâce à une accroche percutante, des preuves concrètes de succès, et un appel à l’action clair, engageant efficacement son audience pour maximiser l'interaction.
A la fin du scénario, quand notre Assistant de luxe est créé, je lui demande de me générer 3 brouillons de publications à partir de bride d’idée que j’ai en tête.
💡 Voici le brief que je lui ai transmis
Les réunions réduisent fortement la productivité d'une entreprise
✒️ Voici sa proposition de post
🚀 **Pourquoi les réunions tuent votre productivité - et comment changer ça aujourd'hui !** 👇
Avez-vous déjà vécu une journée remplie de réunions qui vous ont laissé avec l'impression d'avoir travaillé... sans vraiment avancer ? 🤔
C'est le dilemme de beaucoup d'entre nous. Les réunions sont souvent vues comme une nécessité, mais elles peuvent en réalité devenir un vrai frein à notre productivité. Voici pourquoi et comment reprendre le contrôle sur votre temps :
1. **Des discussions sans fin, au détriment de la concentration** 😵💫
- Chaque heure passée en réunion, c'est une heure de production perdue. Réfléchissez : combien de ces réunions étaient réellement nécessaires ?
2. **La culture de la réunion doit évoluer** 🚫
- Être constamment interpellé pendant une tâche peut briser notre flux créatif ou analytique. Envisagez d'autres alternatives comme les emails succincts, les outils de suivi en ligne, ou même des notes vocales.
3. **La solution ? Des moments de focus protégés !** 🛡️
- Proposez à votre équipe une journée sans réunion par semaine. Utilisez ces blocs de temps pour se focaliser sur ce qui compte vraiment.
Quelle stratégie utilisez-vous pour minimiser les distractions au travail ? Partagez avec nous vos meilleures pratiques ! 👇
Qu’en pensez-vous ?
🧑🏫 Etapes pour créer ce scénario
Module 1 : Paramétrage de variable
Fonctionnement un peu particulier cette fois-ci, on commence par le module “Tools - Set Multiple Variables”.
Ce module va nous permettre d’avoir un effet “configurateur” où tu pourras renseigner l’URL du profil LinkedIn qui servira à créer l'assistant, ainsi que 3 idées de publications LinkedIn.
→ C’est surtout pour la démo, car une fois l’assistant créé, tu pourras le retrouver dans ton playground OpenAI et lui demander autant de publications que tu le souhaites.
Tu peux également te créer un générateur de publications brouillon en masse avec Make.
Le paramétrage de ce premier module est relativement simple.
Module 2 : Ma plus simple idée pour générer un PDF à la fin
J’ai hésité entre utiliser Google Docs, qui se convertit facilement en PDF, et un autre format. Le PDF est le plus simple pour alimenter l’assistant à la fin.
Finalement, j’ai opté pour Google Slides, qui offre une délimitation naturelle : 1 slide = 1 publication + 1 analyse.
Il te suffit donc de créer un template Google Slide. Pour t'aider, je te partage le mien. Tu n'as plus qu'à le copier dans ton espace Google et l'utiliser.
Une fois que tu as le template, tu ajoutes le module “Google Slides - Create a Presentation From a Template”.
L'idée est de demander à Make d'utiliser ce template comme source à chaque lancement du scénario.
💡 Tu peux mettre une variable dans le champ "Title" et générer plusieurs Google Slides, un par créateur de contenu dont tu souhaites t’inspirer.
Module 3 : Appel API à PhantomBuster (déjà présent dans le dernier article)
Si tu as lu le dernier article, le problème persiste.
Je m’explique : le module “PhantomBuster - Launch a Phantom” est actuellement bugué. Idéalement, on l’aurait configuré comme suit, mais un message d’erreur apparaît :
J’ai consulté la communauté, le problème est connu depuis quelques semaines.
Tant pis, c’est l’occasion de creuser dans l’API de PhantomBuster (on gagne des points de style 😎).
Pour commencer, on va sur son compte PhantomBuster et on paramètre ce Phantom 👇
Il va nous permettre d’aller scrapper les derniers posts de notre créateur préféré sur LinkedIn. Ne te prends pas la tête sur le paramétrage, on le rend actif et on va ordonner les requêtes grâce à l’API qui suit.
Pour cela on retourne sur notre scénario Make et on ajoute le module “HTTP - Make a request”
Je vais te donner mon paramétrage mais je te conseille de consulter cette page : https://hub.phantombuster.com/reference/post_agents-launch
Elle est vraiment bien faite et t’aidera pas mal pour paramétrer ton appel API si tu cherches à dévier un peu de mon scénario initial.
Voici comment remplir le module de requête HTTP
URL : C’est l’URL de l’API Phantom pour déclencher un scénario.
POST : On envoi une requête
Content-Type : application/json car on envoi la requête en JSON
X-Phantombuster-Key : Je te laisse ajouter ta clé API PhantomBuster (j’ai effacé quelques caractères du screen 🤓)
C’était la partie simple, maintenant voici la partie plus complexe :
{
"argument": "{ \t\"numberOfLinesPerLaunch\": 1, \t\"numberMaxOfPosts\": 40, \t\"csvName\": \"result\", \t\"activitiesToScrape\": [ \t\t\"Post\" \t], \t\"spreadsheetUrl\": \"{{43.`Rédige comme (mettre URL LinkedIn en value)`}}\", \t\"userAgent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36\", \t\"sessionCookie\": \"Ton_cookie_linkedin\" }",
"id": "5255950209592791"
}
Cela peut sembler compliquer mais si on décompose c’est plus facilement compréhensible :
“argument” : cela correspond au paramétrage du Phantom, les infos qu’on lui demande de scrapper si tu préfères.
numberOfLinesPerLaunch : Nombre de profil à scrapper = 1
numberMaxOfPosts : Nombre d’élément à récupérer = 40 (si t’es sur un compte Make gratuit, t’es limité dans la durée de fonctionnement d’un scénario)
csvName : le nom du CSV de résultat = result (pas très important)
activitiesToScrape : Ce qu’on souhaite récupérer = les Posts
spreadsheetUrl : C’est l’URL du profil LinkedIn à scrapper = Ici tu vas mettre ta variable défini dans le premier module de ton scénario.
userAgent : C’est le navigateur utilisé pour scrap
sessionCookie : Je te laisse mettre ton cookie LinkedIn ici. Ce lien t’explique comment le retrouver.
Et enfin en deuxième ligne :
id : correspond à l’ID de ton Phantom = Tu te rends sur ton Phantom dans PhantomBuster, tu regardes l’URL, ce sera la suite de chiffre située entre /phantoms/ et /console/.
Une fois que c’est paramétré, tu peux tester le module. Il te demandera de remplacer la variable Make linkedinUrl par une URL LinkedIn d’un profil.
Module 4 : Text parser
Nouvelle difficulté, on a besoin du containerId fourni après l’exécution de notre module HTTP pour télécharger le résultat du scrap.
Vu qu’on ne passe pas par le module “officiel” de PhantomBuster, le containerId nous est retourné comme ça :
Il nous faut uniquement le “5887490513935276”
C’est pas grave, on va utiliser le module “Text parser - Match Pattern” avec une formule Regex toute simple pour isoler les chiffres :
Voici le rendu du module
Module 5 : Fais dodo
Ensuite il faut que tu ajoute le module “Tools - Sleep”, ce module va mettre en pause le scénario pendant un certain nombre de seconde. C’est indispensable pour laisser PhantomBuster scrapper le profil et avoir un résultat à te fournir dans le module d’après.
Module 6 : On récupère les résultats du scrap
Pour récupérer les publications LinkedIn du créateur, on ajoute le module “PhantomBuster - Download a Result”
Il suffit d’ajouter le résultat de notre module Text Parser.
Module 7 & 8 : JSON n°1 et n°2
On récupère ensuite le résultat sous forme de JSON.
Ne me demande pas pourquoi, il faut ensuite ajouter deux modules “JSON - Parse JSON” l’un après l’autre.
Le premier récupérant la data du module PhantomBuster
Le deuxième récupérant le résultat du premier
La boucle est bouclée, on peut désormais exploiter le contenu du scrap :
Module 9 : AnalyseGPT prend le relais
Benoît Dubos est un maître de LinkedIn, mais comme tout le monde, il peut publier des posts qui ne fonctionnent pas toujours. C’est pour cela que j’ai ajouté un filtre pour ne travailler qu’avec les posts ayant obtenu au moins 100 likes.
Tu peux aussi filtrer par nombre de commentaires si tu estimes que c’est un meilleur indicateur du succès d’un post.
Tu paramètres le filtre pour ne laisser passer que les posts avec plus de 100 likes.
Voici comment configurer le module “OpenAI - Create a Completion” :
J’ai choisi d’utiliser le modèle GPT-4o Mini pour accélérer l'exécution globale du scénario. Cela peut être particulièrement utile si tu scrapes beaucoup de posts.
Voici le prompt system que j’utilise :
Analyse cette publication LinkedIn en te concentrant sur l'efficacité du hook (l'accroche). Décris comment la structure du post (l'introduction, le développement et la conclusion) semble avoir été construite pour maximiser les likes, les commentaires, et les partages.
Détecte les éléments qui ont contribué à l'engagement et propose des pistes sur la manière dont le post a réussi à capter l'attention dès le début.
Pour le prompt user, il te reste à mapper les différents éléments du post.
Module 10 : Airtable pour garder en mémoire
J'ai créé une base de données sur Airtable pour stocker tous les éléments que tu as pu voir dans la section “🎉 Le scénario en action”.
Je te recommande de t'organiser selon tes préférences et de mapper les différents éléments du post ainsi que l’analyse réalisée par l’IA.
Je te conseille de toujours prendre l’habitude de sauvegarder les données générées dans un Airtable ou même Google Sheets. Cela te sera toujours utile à un moment ou un autre.
Module 11 : Et on Google Slides
Peut-être as-tu oublié le deuxième module du scénario, notre fameuse présentation que nous avons générée mais pas encore utilisée. Eh bien, c’est le moment !
On ajoute le module “Google Slides - Create a Slide from a Template Slide”.
Si tu as regardé le Google Slide, tu as dû remarquer qu'il y a une slide masquée dans le template. Pas de panique, c'est fait exprès.
Avec ce module, on va indiquer à Google Slides de générer une nouvelle slide à partir de la diapo masquée.
Bien sûr, à chaque fois, les variables de la diapo seront remplacées par celles de la publication et les résultats fournis par ChatGPT.
Module 12 : Array Aggregator (pas très inspiré pour le nom, je l’admets)
Ici, on entre dans une partie un peu plus avancée de Make.
Cette image devrait t’aider à comprendre :
J'ai demandé à PhantomBuster d'extraire les 40 dernières publications de Benoît. Les deux modules JSON qui suivent le module PhantomBuster ont transformé les résultats en un Bundle exploitable dans Make.
Un Bundle, c'est un ensemble de plusieurs données, comme l'URL du post, le lien de l’image (s’il y en a une), le nombre de likes, le contenu du post, etc. Comme nous avons 40 Bundles, tous les modules Make qui suivent s'exécutent 40 fois chacun.
Sur mon image, on voit que le module ChatGPT s’est exécuté 28 fois, car 28 des 40 publications scrappées ont dépassé les 100 likes.
Cela fonctionne bien pour certains modules comme :
ChatGPT : Chaque post doit être analysé.
Airtable : Un post = une nouvelle ligne dans Airtable.
Google Slides : Un post = une nouvelle slide.
Cependant, pour les modules qui suivent, je ne souhaite pas qu'ils s'exécutent 28 fois. C'est ici que le module “Array Aggregator” entre en jeu.
Il fusionne les 28 Bundles en un seul :
Module 13 : Il est temps de télécharger notre Slide
On ajoute le module “Google Drive - Download a File”, qui nous permet de récupérer le Google Slides et de le convertir en PDF pour l’envoyer à OpenAI.
⚠️ Il est crucial de convertir le Google Slides en PDF avant de le soumettre à OpenAI.
Module 14 : On est bientôt au bout
Ici, on fait l’action inverse : maintenant que nous avons récupéré le Google Slides (désormais en PDF), il est temps de le déposer chez OpenAI. Assez simple.
Module : “OpenAI - Upload a File”
Module 15 : Savoir faire ça t’ouvre un champ infini de possibilités
Depuis le lancement de cette newsletter (janvier 2024), j’avais déjà en tête l’idée d’ajouter dynamiquement des documents pour enrichir un Assistant OpenAI.
Cela était faisable via des API calls, mais récemment, un module spécifique a été développé pour faciliter ce processus : “OpenAI - Add Files to a Vector Store”.
Pour rappel, avec OpenAI, tu peux créer des Assistants et les personnaliser pour les rendre plus pertinents. Par exemple, tu pourrais te créer un Assistant RH qui connaît parfaitement ton entreprise, ta politique de recrutement, tes valeurs, etc.
Tout cela devient possible en lui donnant accès à des documents spécifiques via des Vector Stores. Ce sont comme des dossiers où tu stockes les fichiers partagés avec ton Assistant.
L’objectif de ce module est donc de stocker notre PDF dans le Vector Store associé à notre Assistant.
Voici les deux étapes à suivre avant de configurer le module dans Make :
Créer ton Assistant
Créer ton Vector Store
🗃️ Vector Store
Rends toi sur la plateforme OpenAI : https://platform.openai.com/storage/vector_stores/
Crée un Vector Store et nomme-le comme tu le souhaites.
Copie l’ID du Vector Store, tu en auras besoin pour le lier à ton Assistant.
Selon la page de tarification d'OpenAI, tu disposes de 1 Go de stockage gratuit. Au-delà, c'est facturé à $0.10/Go par jour (1 Go gratuit).
⚠️ Attention aux volumes de tes documents pour éviter les coûts supplémentaires.
🤓 Assistant Dubos
Rends toi sur la plateforme OpenAI : https://platform.openai.com/assistants/
Le plus important est de cocher l'option “File Search” et de lier l’ID du Vector Store que tu viens de créer.
Si tu comptes utiliser l’Assistant depuis l'interface OpenAI, je te recommande de lui fournir des instructions fixes.
Si tu passes par l'API (notamment via Make), cette étape n'est pas nécessaire.
Ensuite, sélectionne le bon Vector et mappe le File ID du module précédent.
Module 16 : JSON Statham 🤜
À partir de ce module, c’est optionnel. Je voulais te montrer un exemple du fonctionnement de l’Assistant, mais j’ai une idée plus agréable et pratique à utiliser en tête (exclu pour toi si tu es arrivé jusqu’ici !). Ce sera probablement le sujet du prochain scénario.
Revenons maintenant aux explications sur les Bundles.
Mon objectif ici est de générer 3 idées de publication pour illustrer le fonctionnement du scénario. Pour cela, j’ai besoin que les deux derniers modules se déclenchent 3 fois chacun.
Si tu as bien suivi, tu sais que nous devons donc créer 3 bundles. Une des solutions consiste à les créer “artificiellement” via un fichier JSON.
On ajoute donc le module “JSON - Parse JSON”, et on le paramètre ainsi :
Si tu souhaites le copier-coller :
[
{
"idee": "Idée n°1",
"value": "{{43.`Idée n°1`}}"
},
{
"idee": "Idée n°2",
"value": "{{43.`Idée n°2`}}"
},
{
"idee": "Idée n°3",
"value": "{{43.`Idée n°3`}}"
}
]
Dans chaque idée, on mappe celle définie dans le premier module.
Avec ce fonctionnement, tu peux générer autant de publications que tu le souhaites. Il suffit d’ajouter une nouvelle variable dans le premier module et de créer un nouveau bloc dans le JSON. Je reconnais que ce n'est pas la solution la plus pratique. Stay tuned pour une alternative plus élégante.
Voici le résultat avec les 3 bundles :
Module 17 : Sésame génère moi des publications
Maintenant que notre assistant est en place et qu'il dispose d'un fichier sur lequel s'appuyer, il ne nous reste plus qu'à le tester.
Pour cela, on ajoute le module “OpenAI - Message Assistant”.
Mon prompt :
À partir du PDF qui récapitule les posts les plus performants de Benoît Dubos, propose une nouvelle idée de post pour LinkedIn avec comme idée principale : {{48.value}}.
Utilise le style de rédaction observé, en t'inspirant des hooks, des structures, et des thèmes récurrents dans ses publications. Le post doit capter l'attention dès l'accroche, encourager l'engagement et refléter la même stratégie d'engagement que Benoît utilise pour maximiser les likes, les commentaires, et les partages.
Assure-toi que le ton et la structure sont cohérents avec les exemples analysés.
PDF : {{35.id}}
Pense à bien paramétrer ton assistant avec ces options pour qu’il consulte bien le PDF dans le Vector Store.
Dernier module (18) : Centralisation dans Airtable
Ton assistant génère des brouillons de publications LinkedIn, et il ne te reste plus qu’à les stocker dans Airtable (ou tout autre outil de gestion).
Pour cela, j'ai créé un deuxième tableau dans mon Airtable initial avec deux colonnes : L’idée initiale et La publication proposée.
Sur le paramétrage du module, c’est similaire au module Airtable précédent :
🏁 Félicitations le scénario est prêt !! 🏁
Tu n’as plus qu’à tout sauvegarder et activer.
Libre à toi de te créer plusieurs assistants ou même de te créer un assistant issu de tes propres publications.
N’hésite pas à me faire tes retours en commentaire sur ce scénario.
➡️ Tu préfères un format vidéo pour expliquer le scénario ?
➡️ Tu as des critiques constructives à faire ?