Le problème
Chaque fois que vient le temps de chercher du travail, le candidat s'assoit pour mettre à jour le curriculum vitae et regarde simultanément avec un regard plus expérimenté sur son expérience passée. Et réécrit tout, encore et encore. Et chaque fois qu'il pense qu'il trouvera un poste de rêve, puis il deviendra si expérimenté qu'il sera appelé dans un nouvel endroit sans aucune action de sa part. Et puis l'histoire se répète encore et encore.

Pour ceux qui ne sont pas intéressés par les paroles et qui veulent se lancer immédiatement dans les affaires, alors allez-y sur github . Et pour ceux qui se soucient de la mécanique et de l'histoire du projet, l'article lui est en fait consacré.
Avec l'avènement des ressources spécialisées de la bourse du travail, telles que LinkedIn, HeadHunter, etc., il semblerait que la situation aurait dû s'améliorer - nous remplissons toute l'expérience en un seul endroit, et le passé n'est plus inventé. Mais il n'était pas là - ils l'ont rempli dans un système, vous ne pouvez pas simplement le décharger dans un autre par un clic de souris. Il n'y a pas de base de données unique sur laquelle vous pouvez lier votre compte. C'est compréhensible - ces entreprises sont intéressées à évincer les autres, et ne s'engagent pas dans l'intégration les unes avec les autres, et les simples candidats ne font qu'empirer.
Une attention particulière devrait être accordée aux entreprises qui, au stade de l'entretien, exigent toujours que le candidat remplisse les mêmes informations dans son système interne, ce qui nécessite de nouveaux détails. Et pire encore - si vous postulez pour un CV.
Mais où que vous postuliez, il y a toujours un champ pour joindre un CV en .doc ou .pdf . Et malgré l'abondance de «déchets d'informations» dans toute cette chaîne, vous devez vous adapter et respecter les règles de la majorité - sinon personne ne prendra un candidat pour le travail, car ils ne le savent tout simplement pas.
En théorie, le problème pourrait être résolu en ayant un «centre unique» - si:
- toutes les plateformes de placement et de réponse aux offres d'emploi seront réunies au niveau de la ressource / du protocole unique;
- «Comment rédiger un CV» ne sera plus une question d'art et de recherche, et il y aura une norme unique acceptée par tous;
- il y aura une seule ontologie des offres d'emploi les plus populaires, selon laquelle vous pourrez comprendre la nature de l'évaluation des compétences / expérience / qualités des candidats à cette offre;
- les candidats ne mentiront pas et n'exagéreront pas dans leur curriculum vitae;
- il n'y a pas de concurrence pour que les candidats se vendent.
Dans le monde réel, cela n'est guère possible, car les bourses du travail se développent de manière décentralisée, et environ 4-5 points, il est probablement impossible de résoudre même avec un seul centre.
Mais encore, quelque chose peut ĂŞtre fait pour simplifier la vie du candidat, Ă savoir, pour lui-mĂŞme. Et je vais essayer de le faire.
Idée
D'une manière ou d'une autre, le résumé:
- décrit les qualités du candidat;
- le prouve avec l'expérience.
Différentes bourses du travail offrent des opportunités légèrement différentes pour la base de preuves, quelque part il y a des champs séparés pour les publications, quelque part la possibilité d'une description détaillée des projets, etc. C'est-à -dire tous les nœuds cibles de la chaîne d'information prennent une projection légèrement différente de l'expérience réelle et créent un certain complément pour leurs propres outils (recherche par compétences, recommandations automatiques, etc.). En ayant ensuite la description la plus complète de votre expérience, vous pouvez créer assez facilement ces projections en fonction d'exigences spécifiques. Y compris pour la compilation d'un CV.
Ainsi, mon idée est de développer un formulaire pour tenir un journal de mon expérience de travail et de projeter automatiquement ces données sur un poste spécifique et sous la forme requise, comme le montre le schéma.

Seule une partie des données tombe dans la projection, et si dans le cas le plus simple c'est une simple impression sous le formulaire, alors dans les cas les plus complexes c'est un filtre de données pertinentes pour le poste vacant (allocation de projets avec des compétences clés, plus d'espace d'impression pour une expérience réelle, etc.).
Idéalement, un tel "journal" devrait:
- seulement complétés, les anciens enregistrements restent inchangés;
- il est rempli lorsque de nouvelles informations pertinentes apparaissent (achèvement des travaux à l'endroit actuel, nouvelle publication, projet achevé) - c'est ainsi qu'il sera possible de donner la description la plus réussie;
- contiennent des informations qui mettent le candidat sous un jour favorable (mais, en plus de cela, il est logique de noter par vous-même les points importants, même s'ils sont négatifs - seuls les éléments nécessaires seront imprimés).
C'est-à -dire c'est une «projection» d'expérience réelle sur un espace de compétences et de preuves. Cela, en général, est au cœur de tout système d'échange de travail, mais ces opportunités ne sont pas disponibles pour les candidats.
Mon histoire
J'ai commencé comme tout le monde, ouvert MS Word, cherché un beau modèle, commencé à écrire. J'ai cherché des exemples, essayé de copier avec succès. À un moment donné, je suis passé à LaTex, plus ou moins structuré l'expérience. J'ai traversé différentes formes visuelles, expérimenté des formes. Cela a duré environ 10 ans, et enfin, le moment est venu pour la quantité de se transformer en qualité.
Lors de la dernière recherche d'emploi, j'ai plus ou moins affiné la forme et la présentation du matériel, mais la quantité d'expérience m'a déjà fait réfléchir sérieusement à la compression maximale de l'information. De nombreuses décorations ont été introduites, qui non seulement avaient l'air bien, mais qui évitaient également le texte volumineux. Plus important encore, une compréhension du modèle ORM du curriculum vitae lui-même (réalisation-projet-compétences-employeur) est venue.
Plus tard, même la principale innovation est apparue - la réalisation est venue de la façon d'afficher vos compétences de manière aussi compacte et pratique et aussi belle que possible, mais c'est déjà une cerise sur le gâteau, et nous en parlerons plus tard.
Maintenant, apparemment, j'approche à nouveau de la prochaine période de recherche d'emploi, et je veux m'éloigner complètement des CV de l'édition manuelle et fouiller dans les souvenirs des expériences passées en faveur de l'automatisation. Par conséquent, j'ai dû secouer à nouveau mon travail, le transférer au format magazine et créer un générateur de travail minimal, que je veux partager mon expérience de développement.
Reprendre l'écriture en tant que fil d'histoire
J'ai rencontré à plusieurs reprises l'opinion que la tâche d'un CV est de montrer le candidat sous un jour favorable. Mais en fait, sa tâche est d'amener les RH à entrer en contact avec le candidat après la lecture. De là , une conséquence supplémentaire est née - s'il lit jusqu'à la fin, alors la probabilité qu'il entrera en contact est plus élevée. Par conséquent, j'ai considéré la tâche de compiler un curriculum vitae dans la formulation de la façon de soumettre du matériel afin que le curriculum vitae des RH se termine .
Je ferai une réservation à l'avance pour ne pas donner de conseils sur la façon de rédiger un curriculum vitae, quelle forme est préférable de choisir, etc. - Il y a beaucoup de documents écrits à ce sujet sur les gens, beaucoup plus expérimentés que moi dans ce domaine. Ici, je ne donnerai que la forme et la séquence auxquelles je suis finalement venu et argumenter.
J'ai essayé de simuler la façon dont les RH liront le CV, où dès qu'il trouvera des preuves de l'inadéquation du candidat, il le fermera et ne lira pas plus loin. Si vous imaginez ce processus simplifié sous la forme d'un organigramme, vous obtenez ce qui suit:

Par conséquent, dans le formulaire proposé, j'ai ordonné les sections dans un ordre où la section suivante n'a pas d'importance s'il y a un décalage de poste vacant dans la précédente.
Données personnelles . Si vous habitez loin du bureau, n'êtes pas prêt à déménager, n'avez pas la permission de travailler dans cette région ou ne parlez pas la langue de l'équipe cible, le résumé n'est pas lu plus loin.
Objectifs . Si le candidat recherche un poste qui ne correspond pas au poste vacant, ou si ses intérêts diffèrent de ce qu'il peut trouver dans cette entreprise, alors le curriculum vitae n'est pas lu plus loin.
L'éducation Beaucoup poussent l'éducation jusqu'au bout, arguant que la chose la plus importante est l'expérience . Je ne suis pas du tout d'accord, car l'enseignement technique supérieur vous apprend à penser en premier. Un diplôme scientifique consiste à s'engager avec compétence dans des projets de recherche et à protéger les résultats. Je préfère mettre cette section presque au début, non pas à cause de la criticité de l'éducation, mais pour briser le prisme de percevoir davantage de matériel de manière positive.
Compétences Les exigences en matière de compétences ne sont pas ambiguës pour des postes vacants spécifiques. Si vous recherchez du C ++ expérimenté pour développer des pilotes, et en haut des compétences de JS, Ruby on Rails et Java - alors vous ne pouvez pas lire plus loin.
Les projets Le travail des développeurs est avant tout lié non pas au lieu de travail, mais au projet. Et l'employeur agit comme intermédiaire conditionnel entre le salarié et le projet, et dans une entreprise le candidat peut avoir de nombreux projets. J'inclus ici des projets de loisirs, J'ai acquis beaucoup d'expérience en eux. En d'autres termes, la preuve des compétences déclarées est donnée ici, s'il n'y a pas de preuve, alors elle n'est pas lue plus loin.
Histoire du travail . Si notre RH simulée est venue ici, alors au moins il croit que le candidat a participé à des postes vacants pertinents. Tous les mérites et réalisations techniques ont déjà été décrits dans la partie précédente, mais ici les RH peuvent évaluer la fréquence d'un changement de poste et les domaines problématiques que le candidat connaît. Si, par exemple, il change trop souvent de lieu de travail, il ne peut plus lire.
Activité professionnelle . En plus de l'expérience de travail, les candidats qui sont vraiment passionnés par la profession ne se limitent pas à des projets de travail et de loisirs réguliers, mais font également de la science, bloguent, font des publications populaires et font des présentations lors de conférences spécialisées. Par conséquent, je donne ici, tout d'abord, les publications scientifiques (les priorités sont indexées dans Scopus), puis les publications populaires (par exemple, comme cet article), et en dernier lieu - la présentation lors de conférences. Ce paragraphe est davantage un supplément et n'est pas un «point de coupure» obligatoire.
Intérêts et qualités . Un point classique, dont je doute de la nécessité, car je ne pense pas qu'il porte une charge constructive.
Comment mettre en valeur les compétences
Quelles sont les «compétences» et quels détails faut-il remplir - c'est une question ouverte. Par exemple, quelque part, vous pouvez écrire C ++, quelque part boost (et toujours pas écrire C ++), mais quelque part C ++, STL, boost. Et gardez à l'esprit la même chose.
Il faut comprendre que les recruteurs et les RH ont rarement une spécialité technique, et plus encore une expérience. Cela signifie qu'il peut ne pas être évident pour eux que STL et boost incluent C ++. Par conséquent, ici, vous devez vous concentrer principalement sur les postes vacants et regarder les mots clés qui y sont utilisés.
Pour ma part, en remplissant le magazine, j'ai décidé d'en remplir plus (même avec duplication sémantique), puis j'espère ajouter un «filtre» de compétences pertinentes en fonction de l'offre d'emploi.
Expérience magazine
Le journal est un profil du candidat et peut être présenté sous la forme du diagramme suivant. Je n'indiquerai que les attributs de base des entités, et j'utiliserai la notation ActiveRecord pour augmenter la lisibilité pour indiquer les relations.

Ensuite, nous considérons les entités décrites plus en détail avec des exemples et utilisons JSON comme langage d'implémentation.
Avec les données personnelles, tout est assez banal, comme avec les contacts . Seules les compétences linguistiques sont placées ici, car contrairement à l'emploi en Russie, il ne s'agit pas d'un avantage concurrentiel, mais d'un moyen de communication. Et si le recruteur vous appelle, laissez-le immédiatement comprendre dans quelle langue entamer le dialogue.
L' établissement est placé dans l'établissement, le statut du diplôme (doctorat, spécialiste, master, etc.), le nom du diplôme, la période d'études et la note moyenne. Je trouve également utile de placer une spécialisation pour les profils larges, et le titre d'un diplôme.
Les compétences devraient être automatiquement recrutées à partir des projets, mais ce que je considère important de faire est de refléter mon attitude envers la compétence. Par exemple, s'il s'agit de C ++, sur lequel j'aime écrire, je tiens à souligner que j'aime écrire dessus, et je suis doublement intéressé par les postes vacants où je peux le faire. Ou vice versa - ce que je ne veux pas écrire en C #, même si je devais le faire.
Dans le projet , en plus de la durée, de la taille de l'équipe et de la description, je préfère toujours donner un lien web vers la ressource Internet qui la représente. Si possible, je donne également un logo pour la décoration, car personnellement pour moi la navigation sur un CV est grandement simplifiée, et le texte devient moins uniforme. Un projet est l'élément constitutif le plus important de votre expérience, et à titre d'exemple
{ "name" : "Photoshop", "icon" : "photoshop_project.png", "period" : "01.09.2015-30.08.2016", "description" : "Raster graphics editor", "team-size" : "9", "web" : "https://www.adobe.com/products/photoshop.html", "tasks" : [ "..." ] }
Chaque projet se compose de tâches qui ont été résolues et dans lesquelles le candidat a accompli certaines réalisations . C'est précisément la preuve clé de l'expérience - une réalisation idéalement exprimée sous forme numérique. La tâche peut être une au sein du projet. En outre, les compétences sont liées à la tâche, ce qui constitue la base pour générer des statistiques sur les compétences:
{ "description" : "Development of text-recognition filter from raw image", "period" : "01.09.2015-28.02.2016", "skills" : ["CI", "C++", "ML"], "achievements" : [ "achievied recognition accuracy up to 85%" ] }
Et les réalisations permettent de souligner que grâce à votre solution à ce problème, quelqu'un dans le monde est devenu meilleur, et il est très bon de donner une évaluation quantitative. Et visuellement, un tel projet va vers les éléments suivants:

L'histoire du travail , en plus des champs triviaux, contient des liens vers des projets. Je suis contre l'énumération des "responsabilités" ici - c'est déjà dans les projets. Je préfère également utiliser des logos d'entreprise, surtout s'il s'agit de logos célèbres. Si HR est déçu du paragraphe précédent et va fermer le CV, mais voit un logo familier, cela peut sauver la situation.
Les publications , les conférences et les fonctionnalités sont des entités triviales sans rapport avec quoi que ce soit, je ne leur accorderai donc pas trop d'attention. Les publications (scientifiques et non romanesques) sont stockées sous forme de fichiers bibtex.
Implémentation
L'implémentation complète avec la description qui l'accompagne peut être trouvée sur github .
J'ai essayé de préparer un exemple fictif de CV , reflétant les idées décrites aussi précisément que possible et utilisant pleinement les capacités actuelles du compilateur.
Vous avez besoin de docker pour travailler, mais si c'est un problème, l'essentiel est de mettre imagemagick, latex et python.
FROM ubuntu:latest RUN apt-get -qq update && DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends build-essential librsvg2-bin lmodern inkscape zip python3 python3-dev python3-pip libcairo2-dev apt-utils pkg-config python3-setuptools texlive-fonts-recommended texlive-latex-extra dvipng texlive-latex-recommended texlive-xetex && pip3 install --upgrade pip
Le CV est collecté au format PDF à l'aide de Latex-a. Pour les logos, vous pouvez utiliser des images vectorielles (svg) ou bitmap (png) avec alpha. Police - Arial Narrow, qui est populaire dans les curriculum vitae en raison de sa largeur.
Compétences
J'ai porté une attention particulière à la visualisation des compétences dans ce projet, car c'est sur eux que passe le filtre principal des candidats. De ce que j'ai rencontré, on peut distinguer les approches suivantes:
- liste groupée avec gradations (expert, débutant);
- table (grille - gradation / compétence);
- mélange de compétences dans des projets;
- ajout de points d'expérience précédents en années entre parenthèses.
Chaque approche est bonne à sa manière, si vous la lisez attentivement et attentivement, mais si vous n'y passez pas plus de 10 secondes, elles sont toutes vouées à l'échec.
De plus - votre propre évaluation de votre niveau (débutant / expert) n'a pas beaucoup de constructivité. Il y a cinq ans, je considérais que mon niveau C ++ était nettement plus élevé que je ne le pense maintenant, bien que pendant cette période, j'ai grandi plusieurs fois dans cette direction. La seule évaluation objective que je peux donner à mes compétences est la durée de mon utilisation. Cela a constitué la base de la mise en œuvre de cette section.
Mais comment évaluer cette période? Je me souviens que le premier programme C ++ a été écrit en 7e année et la dernière fois que j'ai écrit quelque chose aujourd'hui. Après tout, c'est mal de prendre 13 ans à partir de votre âge et d'écrire le résultat dans l'expérience - après tout, il y a eu des périodes où je n'ai rien écrit et la compétence n'a pas grandi.
Mais alors je peux lister les projets dans lesquels j'ai utilisé C ++, et je peux noter leur durée, ce qui, en fait, a déjà été fait dans le journal . Et si j'ai travaillé simultanément sur deux projets qui utilisaient C ++, alors la compétence ne grandit pas à double vitesse. Et cela est déjà facile à calculer sur la base des statistiques du magazine et de l'affichage.
Et en regardant ces statistiques, les RH peuvent rapidement savoir si vous êtes apte à un poste vacant ou non. De plus, je suis moi-même parfois intéressé à consulter mes statistiques - suis-je aussi expérimenté que je le pensais, et vice versa.
À quoi ça ressemble
Tout ensemble ressemble Ă ceci:


Pour l'article, je cite spécifiquement la version au format A5, par défaut le compilateur est réglé sur A4.
Rétroaction
Si plus de personnes adhèrent aux normes communes en matière de recrutement des deux côtés (RH et candidats), il deviendra plus facile pour tout le monde de vivre. Par conséquent, si vous adhérez également à des vues idéalistes et que vous avez aimé le projet, mais que vous savez comment l'améliorer, je suis ouvert à l'interaction et serai heureux de tout commentaire.
J'ai également réalisé un projet basé sur les postes d'ingénieur logiciel / développeur de logiciel, donc je n'ai aucune idée de la mesure dans laquelle mon travail convient à d'autres postes. Mais je n'exclus pas que cela soit possible.
OĂą aller ensuite
Le plan de développement ultérieur est très trivial, même s'il comprend une implémentation non triviale:
- Implémentez une compression intelligente. Donner un minimum d'informations sur les anciens projets, un maximum - sur pertinent et pertinent. Maintenant, cela n'est implémenté que pour couper les anciennes publications, mais elles prennent déjà peu de place. Il est nécessaire de respecter les limites de volume et de ne pas violer les règles du genre.
- Mettez en place un filtre d'informations pertinentes. Dans le cas le plus simple, une ontologie des compétences est créée avec des profils (embarqués, C ++, fintech, front-end, etc.), et le profil est un paramètre du compilateur. Idéalement, nous donnons un lien vers une offre d'emploi (que ce soit une page sur linkedin), le compilateur dans le cas le plus simple recherche des mots-clés dessus ou l'analyse à l'aide d'une base de données / ML et filtre les compétences et projets pertinents.
En attendant, bonne chance Ă tous pour trouver un emploi!