PageSourceSearch

https://makelead.io/assets/outils.accroche-linkedin-DfsTUAV9.js

js makelead.io collected 2026-09-24 14:24:58 UTC 7,056 bytes, 1 lines download raw bytes

1import{d as m,r as h,j as t}from"./index-ZTKXnuWg.js";import{F as g,m as x}from"./outils-guides-D4wyqpub.js";import"./arrow-right-Bg3y25F4.js";import"./createLucideIcon-AdDZRUB7.js";const k=["secret","erreur","jamais","arrête","voici","comment","pourquoi","résultat","client","gratuit","preuve","personne","vérité","test","raté"],b=["aujourd'hui je","dans cet article","je voulais vous parler","petit message","je suis heureux","je suis ravi","comme vous le savez"];function q(){const e=m(),[i,d]=h.useState(""),a=h.useMemo(()=>{const o=i.trim();if(!o)return[];const s=o.toLowerCase(),r=[];r.push({ok:o.length>=15&&o.length<=120,label:o.length<15?e?"Too short. Develop it a bit (15 to 120 characters)":"Trop court : développe un peu (15 à 120 caractères)":o.length>120?e?`Too long (${o.length}). Trim it under 120 characters`:`Trop long (${o.length}) : raccourcis sous 120 caractères`:e?`Ideal length (${o.length} characters)`:`Longueur idéale (${o.length} caractères)`}),r.push({ok:/\d/.test(o),label:/\d/.test(o)?e?"Contains a number (concrete hook)":"Contient un chiffre (accroche concrète)":e?"No number. A figure makes the hook more concrete":"Aucun chiffre : un nombre rend l'accroche plus concrète"}),r.push({ok:o.includes("?")||/^(comment|pourquoi|et si|tu sais)/i.test(s),label:o.includes("?")||/^(comment|pourquoi|et si|tu sais)/i.test(s)?e?"Builds curiosity (question / open loop)":"Crée de la curiosité (question / ouverture)":e?"No curiosity. Ask a question or open a loop":"Pas de curiosité : pose une question ou ouvre une boucle"});const c=k.some(l=>s.includes(l));r.push({ok:c,label:c?e?"Contains a word that grabs attention":"Contient un mot qui accroche":e?"Add a strong word (mistake, result, secret, here is...)":"Ajoute un mot fort (erreur, résultat, secret, voici...)"});const u=b.some(l=>s.startsWith(l));return r.push({ok:!u,label:u?e?"Generic opening. Get straight to the point":"Début générique : attaque plus direct":e?"No generic opening, good":"Pas de début générique, bien"}),r.push({ok:!o.includes("#"),label:o.includes("#")?e?"Remove the hashtags from the hook":"Retire les hashtags de l'accroche":e?"No hashtag in the hook, good":"Pas de hashtag dans l'accroche, bien"}),r},[i,e]),n=a.length?Math.round(a.filter(o=>o.ok).length/a.length*100):0,p=n>=80?"text-emerald-400":n>=50?"text-amber-400":"text-red-400";return t.jsxs(g,{slug:"accroche-linkedin",guide:e?void 0:t.jsx(x,{}),title:e?"LinkedIn hook analyzer":"Analyseur d'accroche LinkedIn",subtitle:e?"Paste your first line (the hook). We score it and tell you how to make it more gripping. Free, no signup.":"Colle ta première ligne (le hook). On la note et on te dit comment la rendre plus accrocheuse. Gratuit, sans inscription.",intro:e?t.jsxs(t.Fragment,{children:[t.jsx("h2",{className:"font-display text-2xl font-bold text-ink",children:"The hook decides everything"}),t.jsx("p",{children:"On LinkedIn and X, the reader only sees your first line at first. If it does not grab them, the rest of the post will never get read. The analyzer scores your hook on simple criteria: length, a number, 
1curiosity, a strong word, and a non generic opening."}),t.jsx("p",{children:"A good hook runs between 15 and 120 characters, asks a question or opens a loop, and avoids flat openings like today I. The score tells you at a glance whether your line stops the scroll."})]}):t.jsxs(t.Fragment,{children:[t.jsx("h2",{className:"font-display text-2xl font-bold text-ink",children:"L'accroche décide de tout"}),t.jsx("p",{children:"Sur LinkedIn et X, le lecteur ne voit d'abord que ta première ligne. Si elle n'accroche pas, le reste du post ne sera jamais lu. L'analyseur note ton hook sur des critères simples : longueur, présence d'un chiffre, curiosité, mot fort, et début non générique."}),t.jsx("p",{children:"Une bonne accroche fait entre 15 et 120 caractères, pose une question ou ouvre une boucle, et évite les débuts plats du genre aujourd'hui je. Le score te dit en un coup d'œil si ta ligne arrête le scroll."})]}),steps:e?["Paste your first line into the text box.","Read your score and the list of things to improve.","Rewrite your line following the tips, then test it again."]:["Colle ta première ligne dans la zone de texte.","Lis ton score et la liste des points à améliorer.","Réécris ta ligne en suivant les conseils, puis teste à nouveau."],faq:e?[{q:"What is a hook?",a:"It is the first line of a post. On LinkedIn and X, it is the only part visible before the see more button. It decides whether people read you."},{q:"How long should a good hook be?",a:"Between 15 and 120 characters. Long enough to intrigue, short enough to fit on one line before the cutoff."},{q:"Should I put a number in the hook?",a:"Often yes. A number makes the promise concrete and credible, for example 3 mistakes or in 7 days."},{q:"Does the tool write the hook for me?",a:"No, it scores it and comments on it. To generate hooks and full posts, use Makelead."}]:[{q:"C'est quoi une accroche ou un hook ?",a:"C'est la première ligne d'un post. Sur LinkedIn et X, c'est la seule partie visible avant le bouton voir plus. Elle décide si on te lit."},{q:"Quelle longueur pour une bonne accroche ?",a:"Entre 15 et 120 caractères. Assez longue pour intriguer, assez courte pour tenir sur une ligne avant la coupure."},{q:"Faut-il mettre un chiffre dans l'accroche ?",a:"Souvent oui. Un chiffre rend la promesse concrète et crédible, par exemple 3 erreurs ou en 7 jours."},{q:"L'outil écrit-il l'accroche à ma place ?",a:"Non, il la note et la commente. Pour générer des accroches et des posts entiers, utilise Makelead."}],children:[t.jsx("textarea",{value:i,onChange:o=>d(o.target.value),rows:3,autoFocus:!0,placeholder:e?"Paste your hook here (the first line of your post)…":"Colle ton accroche ici (la 1re ligne de ton post)…",className:"w-full resize-y rounded-2xl border border-ink/10 bg-ink/[0.02] p-4 text-[15px] leading-relaxed text-ink/96 outline-none focus:border-[#FF4419]/50"}),i.trim()&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"mt-5 flex items-center justify-between rounded-2xl border border-ink/10 bg-ink/[0.02] p-5",children:[t.jsxs("div",{children:[t.jsx("div",{className:"text-[12px] uppercase tracking-widest text-ink/64",children:e?"Hook score":"Score de l'accroche"}),t.jsxs("div",{className:`font-display text-4xl font-bold ${p}`,children:[n,t.jsx("span",{className:"text-[18px] text-ink/64",children:"/100"})]})]}),t.jsx("div",{className:"text-right text-[13px] text-ink/64",children:n>=80?e?"It stops the scroll":"Ça arrête le scroll":n>=50?e?"Room to improve":"Peut mieux faire":e?"Needs work":"À retravailler"})]}),t.jsx("ul",{className:"mt-3 space-y-2",children:a.map((o,s)=>t.jsxs("li",{className:"flex items-start gap-2.5 rounded-xl border border-ink/10 bg-ink/[0.02] p-3 text-[14px]",children:[t.jsx("span",{className:o.ok?"text-emerald-400":"text-amber-400",children:o.ok?"✓":"!"}),t.jsx("span",{className:"text-ink/90",children:o.label})]},s))})]})]})}export{q as component};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.