Skip to content

Instantly share code, notes, and snippets.

@n1k0

n1k0/app.js

Created May 22, 2019
Embed
What would you like to do?
head hunter email generator
var villes = [
"Agen",
"Ajaccio",
"Albertville",
"Albi",
"Alençon",
"Alès",
"Amiens",
"Angers",
"Angoulême",
"Annecy",
"Arles",
"Armentières",
"Arnac-la-Poste (Haute-Vienne)",
"Arras",
"Aubenas",
"Aurillac",
"Auxerre",
"Avignon",
"Bâle - Saint-Louis (partie française)",
"Basse-Terre (Guadeloupe)",
"Bastia",
"Bayonne",
"Beauvais",
"Belfort",
"Berck",
"Bergerac",
"Besançon",
"Béthune",
"Beyrouth",
"Béziers",
"Bezons (Val-d'Oise)",
"Blois",
"Bordeaux",
"Bouc-Étourdi (Yvelines)",
"Boulogne-sur-Mer",
"Bourg-en-Bresse",
"Bourges",
"Brest",
"Brive-la-Gaillarde",
"Caen",
"Calais",
"Cambrai",
"Carcassonne",
"Castres",
"Cayenne (Guyane)",
"Chalon-sur-Saône",
"Châlons-en-Champagne",
"Chambéry",
"Charleville-Mézières",
"Chartres",
"Chateaudun",
"Châteauroux",
"Châtellerault",
"Cherbourg-en-Cotentin",
"Cholet",
"Clermont-Ferrand",
"Cluses",
"Colmar",
"Compiègne",
"Coulommiers",
"Creil",
"Dax",
"Deux Verges (Cantal)",
"Dieppe",
"Dijon",
"Dole",
"Douai - Lens",
"Draguignan",
"Dreux",
"Dunkerke",
"Dunkerque",
"Épinal",
"Évreux",
"Fort-de-France (Martinique)",
"Fourequeux (Yvelines)",
"Fréjus",
"Gap",
"Grenoble",
"Haguenau",
"Jouy-en-Josas",
"La Roche-sur-Yon",
"La Rochelle",
"La Teste-de-Buch-Arcachon",
"La Trique (Deux-Sèvres)",
"Lannion",
"Laon",
"Laval",
"Le Havre",
"Le Mans",
"Le Puy-en-Velay",
"Le Robert (Martinique)",
"Lille",
"Limoges",
"Longcochon (Jura)",
"Longwy (partie française)",
"Lons-le-Saunier",
"Lorient",
"Lyon",
"Mâcon",
"Mamoudzou (Mayotte)",
"Marseille - Aix-en-Provence",
"Maubeuge (partie française)",
"Menton-Monaco (partie française)",
"Metz",
"Meudon",
"Mont-de-Marsan",
"Montargis",
"Montauban",
"Montbéliard",
"Montcuq (Lot)",
"Montélimar",
"Montluçon",
"Montpellier",
"Montréal (Doubs)",
"Moulins",
"Mulhouse",
"Nancy",
"Nantes",
"Narbonne",
"Nevers",
"Nice",
"Nîmes",
"Niort",
"Noirmoutier",
"Orléans",
"Paris intra-muros",
"Pau",
"Périgueux",
"Perpignan",
"Pointe-à-Pitre - Les Abymes (Guadeloupe)",
"Poitiers",
"Quimper",
"Rambouillet",
"Reims",
"Rennes",
"Roanne",
"Rochefort",
"Rodez",
"Romans-sur-Isère",
"Rouen",
"Saint-André (La Réunion)",
"Saint-Brieuc",
"Saint-Cyprien",
"Saint-Denis (La Réunion)",
"Saint-Dié-des-Vosges",
"Saint-Dizier",
"Saint-Étienne",
"Saint-Jean de Cuculles (Hérault)",
"Saint-Lô",
"Saint-Louis (La Réunion)",
"Saint-Malo",
"Saint-Nazaire",
"Saint-Omer",
"Saint-Paul (La Réunion)",
"Saint-Pierre (La Réunion)",
"Saint-Quentin",
"Saintes",
"Salies-de-Béarn",
"Salon-de-Provence",
"Sarrebruck",
"Seignosse-le-Penon",
"Sens",
"Sète",
"Soissons",
"Strasbourg",
"Tarbes",
"Thionville",
"Thonon-les-Bains",
"Toulon",
"Toulouse",
"Tours",
"Travoisy-lès-Miches",
"Troyes",
"Valence",
"Valenciennes",
"Vannes",
"Vesoul",
"Vichy",
"Vienne",
"Villeneuve-sur-Lot",
"Viols-le-Fort (Hérault)",
"Vulvoz (Jura)",
];
var qualifs = [
[
"Abusive",
"Agile",
"Curative",
"Digital",
"Disruptive",
"Excessive",
"Exclusive",
"Executive",
"Extreme",
"Future",
"High-Level",
"Human",
"Individual",
"Interactive",
"Lifetime",
"Low-Level",
"Mind-Boggling",
"Multi-Level",
"Online",
"Organic",
"Premium",
"Progressive",
"Serial",
"Small-Businesses",
"Territorial",
"Top-Notch",
"Universal",
],
[
"Adaptative",
"Agressive",
"Augmented",
"B2B",
"Business-Centric",
"Cloud-Centric",
"Cloud-Powered",
"Collaborative",
"Corporate",
"Distributed",
"Immersive",
"Merchandised",
"P2P",
"Personal",
"Pivotal",
"Podcasting",
"Programmable",
"Progressive",
"Scalable",
"Social-Media",
"Social",
"Specific",
"Speculative",
"Strategic",
"Tactical",
"Tailor-Made",
"Transmedia",
"User-Centric",
],
[
"Advertising",
"Advocacy",
"Analytics",
"Awareness",
"Big-Data",
"Brainstorming",
"Branding",
"Branling",
"Bullshitism",
"Bullshitstorming",
"Campaigns",
"Change",
"Commercials",
"Communication",
"Culture",
"Curation",
"E-Commerce",
"Engagement",
"Engagement",
"Evangelism",
"Events",
"Growth-Haking",
"Hypermedia",
"Ideation",
"Identity",
"Incentive",
"Influence",
"Management",
"Marketing",
"Masturbation",
"Mediation",
"Merchandising",
"Open-Data",
"Opportunities",
"Optimization",
"Relations",
"SEO",
"Services",
"Shitstorming",
"Smart-Cities",
"Solutions",
"Strategy",
"Tactics",
"Technology",
"Training",
"Transculturation",
"Transformation",
"Transhumanism",
"User-Groups",
],
];
var recruiter = [
[
"Chief",
"Executive",
"Expert",
"Premium",
"Private",
"Senior",
"Serial",
"Social",
"Technical",
"VP",
],
[
"Curation",
"Developer",
"Digital",
"Growth",
"Growth",
"Hacker",
"Head",
"Meat",
"Opportunity",
"Programmer",
"Sales",
"Skill",
"Talent",
"Team",
"Technician",
],
[
"Advocate",
"Alchemist",
"Analyst",
"Angel",
"Builder",
"Caporal",
"Captain",
"Champion",
"CMO",
"Colonel",
"Conquistador",
"Detective",
"Disrupter",
"Evangelist",
"Expert",
"Finder",
"Foreman",
"Gatherer",
"Hunter",
"Influencer",
"Investigator",
"Maker",
"Missionary",
"Officer",
"Recruiter",
"Seeker",
"Sergent",
"Sniper",
"Specialist",
"Specialist",
"Spotter",
"Swami",
],
];
var technos = [
".NET",
"ActionScript 2",
"ActionScript 3",
"ActiveX",
"ADA",
"Adobe Premiere",
"Ajax",
"Android",
"ARM",
"ARM",
"ASP.net",
"Assembleur",
"Atom",
"Backbone",
"bash",
"BASIC",
"Brainfuck",
"C",
"C#",
"C++",
"CITRIX",
"Clojure",
"COBOL",
"ColdFusion",
"Corel Draw 6",
"CSS",
"DHTML",
"Director",
"ECMAScript 2016",
"Elixir",
"Elm",
"Emacs",
"Ember",
"Erlang",
"Erlang",
"ES6",
"ES7",
"F#",
"Flash MX",
"Fortran 77",
"GFA BASIC",
"GIMP",
"Git",
"Haskell",
"HATEOAS",
"HTML5",
"Hurd",
"Hypercard",
"Idris",
"Illustrator",
"iMovie",
"InDesign",
"iOS",
"JavaScript",
"jQuery",
"JSON",
"LaTeX",
"LibreOffice Draw",
"LibreOffice Spreadsheet",
"LibreOffice Writer",
"Lightroom",
"Linux",
"LISP",
"LUA",
"MacPaint",
"Malbolge",
"Markdown",
"Mercurial",
"Microsoft Excel",
"Microsoft Outlook 2013",
"Microsoft Word",
"MooTools",
"MySQL 3.23",
"Notepad",
"Notepad++",
"NPM",
"Paint 2.0",
"Perl",
"Photoshop",
"PHP-FI",
"PHP",
"PHP3",
"PHP4",
"PHP7",
"PowerBuilder",
"Powerpoint",
"PowerShell",
"ProTools",
"Prototype/Scriptaculous",
"Python",
"Quark XPress",
"React",
"REST",
"Ruby",
"Rust",
"Scheme",
"SGML",
"Super Collider",
"svelte.js",
"Symphonie™",
"Turbo Pascal 4",
"TypeScript",
"Vanilla JS",
"VBScript",
"Vim",
"Visual Studio",
"VSCode",
"Vue.js",
"WebDEV",
"WinDEV",
"Windows 95",
"XHTML2",
"XML",
"XSLT",
"zsh",
"NodeJS",
];
var positions = [
[
"", "", "", "", "", "",
"", "", "", "", "", "",
"", "", "", "", "", "",
"", "", "", "", "", "",
"", "", "", "", "", "",
"black-Hat",
"lead",
"rockstar",
"top-Notch",
"ultimate",
"white-Hat",
],
[
"alchimiste",
"analyste",
"architecte",
"codeur",
"cow-Boy",
"data-Scientist",
"désenvouteur",
"développeur",
"engineer",
"érudit",
"exorciste",
"expert",
"guru",
"hacker",
"hypnotiseur",
"illusioniste",
"ingénieur",
"jedi",
"magicien",
"maître Jedi",
"marabout",
"ninja",
"plumber",
"pompier",
"prestidigitateur",
"programmateur",
"programmeur",
"soldat du feu",
"sorcerer",
"sorcier",
"spécialiste",
"wizzard",
],
technos,
[
"",
"acclamé",
"adoubé",
"affamé",
"affûté",
"aguéri",
"aigri",
"ambitieux",
"applaudi",
"apprécié",
"autonome",
"bac +8",
"besogneux",
"bon niveau",
"certifié",
"compétent",
"confiant",
"courageux",
"crédible",
"de haut vol",
"de référence",
"débutant",
"dévoué",
"diplômé",
"éloquent",
"enthousiaste",
"entraîné",
"époustouflant",
"équipé",
"estimé",
"excellent niveau",
"exceptionnel",
"expérimenté",
"faisant autorité dans son domaine",
"fertile",
"freelance",
"gros CV",
"gros niveau",
"hautement qualifié",
"iconoclaste",
"impassible",
"insomniaque",
"incontournable",
"junior",
"légitime",
"motivé",
"optimiste",
"pointu",
"proactif",
"proactif",
"productif",
"professionnel",
"prolixe",
"psychopathe",
"pugnace",
"qualifié",
"rassurant",
"reconnu",
"réconfortant",
"réputé",
"responsable",
"rodé",
"senior",
"serein",
"sobre",
"sûr de lui",
"surentraîné",
"survivaliste",
"survivant",
"travailleur",
"valide",
"vétéran",
"volontaire",
]
];
var contrats = [
"2% de stock options",
"au black",
"bénévole",
"CDD",
"CDI renouvelable",
"CDI",
"en AE",
"en vue obtention CIR/JEI/COTOREP",
"mission longue",
"portage uniquement",
"régie sur site 6 mois",
"stage",
"variable + Tickets Restaurant",
];
var clients = [
[
"agence conseil en communication",
"association",
"banque",
"boutique",
"coopérative de développement",
"entreprise",
"ferme",
"initiative entrepreuneuriale",
"multinationale",
"pépinière",
"plateforme",
"ruche",
"SAS",
"société",
"startup",
],
[
"",
"2.0",
"3.0",
"citoyenne",
"digitale",
"disruptive",
"incubante",
"numérique",
"offshore",
"pure player",
],
[
"",
"adoubée",
"appréciée",
"capitalisée",
"durable",
"écocitoyenne",
"épanouie",
"excellement positionnée",
"incontournable",
"indépendante",
"innovante",
"internationale",
"leader sur son marché",
"légitime",
"proactive",
"progressiste",
"rassurante",
"reconnue",
"renflouée",
"réputée",
"stratégique",
],
[
"en acquisition",
"en amorçage",
"en bouclage",
"en capitalisation",
"en cours",
"en déclinaison",
"en disruption",
"en finalisation",
"en initialisation",
"en phase",
"en progression constante",
"en valorisation",
],
[
"d'accompagnement",
"d'aculturation",
"d'aguichage sectoriel",
"d'ancrage métier",
"d'expertise",
"d'exploitation de leviers de croissance",
"d'incubation",
"d'obtention de marché",
"d'optimisation de rentabilité",
"de capilotraction",
"de conquête",
"de croissance",
"de focalisation",
"de gestion de risque",
"de monétisation",
"de positionnement disruptif",
"de positionnement",
"de rachat par un grand groupe",
"de recapitalisation",
"de sectorialisation",
"de segmentarisation",
"de spéculation",
"de transformation",
],
[
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"favorable",
"intégrable",
"monétisable",
"opposable",
"pivotable",
"raisonnable",
"réalisable",
"remarquable",
"renouvelable",
"rentable",
"responsable",
"révisable",
"révocable",
"soutenable",
"stable",
"structurable",
"valable",
"variable",
"véritable",
"viable",
"vraisemblable",
]
];
var ideas = [
[
"lançant",
"planchant sur",
"préparant",
"travaillant sur",
],
[
"le",
"un concept de",
"un projet de",
"un",
"une idée de",
"une incentive de",
],
[
"Bing",
"Blogspot",
"Cloud.ly",
"comparateur",
"Diaspora",
"Facebook",
"financement participatif",
"Flickr",
"Flipboard",
"forum",
"Google Docs",
"Google",
"Google",
"Google+",
"Kickstarter",
"Klout",
"livre d'or",
"magasin en ligne",
"Meetic",
"moteur sémantique",
"Picasa",
"Pinterest",
"Quora",
"réseau social",
"Storify",
"Techcrunch",
"Tinder",
"Trello",
"Tumblr",
"Twitter",
"Ulule",
"Yahoo!",
],
[
"des",
],
[
"accessoires",
"appareils",
"articles",
"concepts",
"matériaux",
"matériels",
"objets",
"outils",
"périphériques",
"plats cuisinés",
"produits",
"projets",
"réseaux",
"thesaurus",
"véhicules",
],
[
"artisanaux",
"collaboratifs",
"connectés",
"contributifs",
"d'entretien",
"d'hygiène",
"de jardin",
"de santé",
"décoratifs",
"diététiques",
"durables",
"écologiques",
"électriques",
"électroniques",
"équitables",
"innovants",
"médicaux",
"mutualisés",
"pédagogiques",
"pédagogiques",
"transportables",
"urbains",
"végétaux",
],
[
"pour",
],
[
"adolescents",
"cadres",
"chats",
"chiens",
"CSP+",
"entrepreneurs",
"jeunes actifs",
"managers",
"musiciens",
"populations urbaines",
"salariés",
"seniors",
],
[
"", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "",
"en livraison",
"en marque blanche",
"en marque grise",
]
];
var recherches = [
["fucking", "", "", "", "", "", ""],
[
"authentique",
"incontestable",
"irréfutable",
"véritable",
],
[
"aventurier",
"cador",
"érudit",
"expert",
"génie",
"guru",
"magicien",
"ninja",
"orfèvre",
"référent technique",
"spécialiste",
"surdoué",
],
];
var secteurs = [
[
"contexte projet",
"domaine",
"environnement",
"marché",
"panorama",
"paysage",
"projet",
"secteur",
"terrain",
],
[
"",
"d'expérimentation",
"d'exploitation",
"d'idéation",
"de croissance",
"de disruption",
"de valorisation",
"exploratoire",
"sectoriel",
"spéculatoire",
"valorisationnel",
],
[
"au potentiel important",
"au potentiel infini",
"d'avenir",
"en béton",
"en plein essor",
"en pleine explosion",
"éthique",
"exploratoire",
"incontournable",
"inoui",
"légal",
"objet d'attention",
"observé",
"pléthorique",
"pointu",
"porteur",
"primordial",
"qualifié",
"sérieux",
"solide",
"source de convoitise",
"sous les projecteurs",
"vecteur d'émerveillement constant",
"vecteur de novation",
]
];
var evolutions = [
[
"catalyseur",
"et",
"évoquant",
"offrant",
"piste",
"porteur",
"proposant",
"reflétant",
"source",
"suggérant",
"vecteur",
],
[
"d'enthousiasmantes",
"d'incroyables",
"d'infinies",
"d'innombrables",
"d'inouies",
"de belles",
"de fantastiques",
"de merveilleuses",
"de nombreuses",
],
[
"opportunités",
"perspectives",
"pistes",
"possibilités",
],
[
"d'acquérir",
"d'ancrer",
"d'appuyer",
"d'émanciper",
"d'envisager",
"d'envisager",
"d'irriguer",
"d'obtenir",
"d'opérer",
"d'outiller",
"de challenger",
"de construire",
"de faire avancer",
"de faire évoluer",
"de faire pivoter",
"de faire progresser",
"de faire rayonner",
"de favoriser",
"de hacker",
"de réaliser",
"de segmenter",
"de synergiser",
],
[
"", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "",
"durablement",
"potentiellement",
"temporairement",
],
[
"de nouvelles compétences",
"l'expertise technique",
"l'innovation",
"la croissance",
"la disruption",
"la novation",
"le capital",
"notre Étoile Noire",
"votre expertise",
]
];
function pick(list, n=1) {
if (Array.isArray(list[0]))
return list.map(x => pick(x)).join(" ");
if (n > 1)
return new Array(n).toString().split(",").map(_ => pick(list)).join(", ");
return list[Math.floor(Math.random() * list.length)];
}
function gen() {
var tpl = `Bonjour,
Je suis <b>${pick(recruiter)}</b> sur ${pick(villes)}, spécialisé <em>${pick(qualifs)}</em> orienté <b><em>${pick(qualifs)}</em></b>.
Je recherche un <b>${pick(positions)}<sup>(1)</sub></b> (${pick(contrats)}) pour une ${pick(clients)} sur ${pick(villes)}<!--, <b>${pick(ideas).trim()}</b>,--> qui a besoin d'un <ins>${pick(recherches)}</ins>&nbsp;!
Un <b>${pick(secteurs)}</b>, un challenge technique <b>${pick(evolutions)}</b>.
Pourriez-vous être intéressé par un tel challenge&nbsp;?
<small><sup>(1)</sup> Une expertise <em>${pick(technos, 3)}</em> saura également être appréciée.</small>`;
document.querySelector("#main").innerHTML = tpl.split("\n").map(line => `<p>${line}</p>`).join("");
}
gen();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Head hunter email generator®</title>
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<h2>Chasseur de tête?</h2>
<p>Toi aussi envoie de <a href="https://twitter.com/n1k0/status/586475961467670529" target="_blank">beaux emails</a> de recrutement efficaces.</p>
<p class="text-center">
<button class="btn btn-info" onclick="gen()">Je manque toujours d'inspiration</button>
</p>
<blockquote id="main" onClick="gen()"></blockquote>
</div>
<script src="app.js"></script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment