Не используйте Word для резюме

·~ 10 мин

Каждому проффесионалу нужно резюме. Это самый важный документ — именно он формирует первое впечатление о вас у рекрутера.

Когда я начал работать в IT, самым простым и очевидным вариантом были сайты по поиску работы. Все популярные площадки предлагают форму, заполнив которую, появляется возможность скачать готовый документ любому пользователю.

Но что если вы используете несколько таких платформ? Поддерживать их быстро становится утомительно. Рано или поздно одно изменение в резюме превращается в серию одинаковых правок на разных сайтах. Если говорить на языке разработчиков — это нарушает принцип DRY.

Одно из решений — хранить резюме в одном редактируемом файле, обновлять его по мере необходимости, а затем синхронизировать со всеми платформами. Это не полностью решает проблему — копировать и вставлять контент все равно приходится вручную — но создает единый источник истины, из которого формируются все копии. К тому же экспорт резюме с таких платформ обычно выглядит одинаково и невзрачно, из-за чего их легко пролистать, не заметив.

Так я пришел к простому вопросу:

В каком формате лучше всего создавать и хранить исходное резюме?

Я потратил на это куда больше времени, чем ожидал — и даже создал небольшой инструмент по ходу дела (об этом позже).


Определяем требования

Прежде чем сравнивать форматы, нужно определить, что именно мне важно. Вот мой список, упорядоченный по приоритету:

  1. Конвертация в PDF — PDF является универсальным конечным форматом для отправки и чтения резюме, поэтому исходный формат обязан легко в него конвертироваться.
  2. Точный контроль над версткой — отступы, колонки, интервалы и выравнивание должны легко настраиваться.
  3. Богатое и гибкое оформление — шрифты, цвета, размеры и визуальная иерархия должны применяться просто.
  4. Удобство написания контента — писать и редактировать текст должно быть естественно, без борьбы с форматом.
  5. Дружелюбность к LLM и ATS — LLM могут ускорить создание, изменение и проверку резюме. Совместимость с ATS менее критична, так как финальный результат — PDF, но если исходный формат тоже легко парсится — это плюс.
  6. Контроль версий — формат должен быть текстовым, чтобы изменения можно было отслеживать, в идеале с помощью Git.
  7. Портативность — никакой привязки к конкретному инструменту, редактору или платформе.
  8. Разделение контента и стиля — чтобы можно было изменить внешний вид, не переписывая содержание и наоборот.

Оцениваем варианты

Microsoft Word (.docx)

Самый популярный сырой формат для резюме — безусловно .docx. Его сильные стороны:

  • Легко конвертируется в PDF
  • Богатое оформление — шрифты, цвета и т.д. меняются без проблем.
  • Удобно писать контент

И... нет, это все.

Теперь слабые стороны:

  • Контроль над версткой есть, но ИМХО работать с ним неудобно.
  • Совершенно не дружелюбен к LLM из-за бинарного формата. Нельзя вставить сырое содержимое в LLM. LLM не могут генерировать .docx файлы. С другой стороны с ATS все отлично.
  • Контроль версий невозможен — бинарный формат означает бессмысленные диффы.
  • Не портативен. Вы ограничены Word (платный, только десктоп), Google Docs или бесплатными редакторами, которые часто работают нестабильно.
  • Разделение контента и стиля практически отсутствует.

Итого: самый популярный формат для резюме удовлетворяет лишь 3 из 8 требований. То же самое относится к .gdoc — по сути аналогу от Google.

Больше всего меня раздражает зависимость от сторонних продуктов и ограниченная, трудно настраиваемая верстка. Точно не мой вариант.

LaTeX (.tex)

Формат для математиков. Сильные стороны:

  • Исключительно качественный PDF-вывод.
  • Точный контроль над отступами и версткой.
  • Удобно писать контент (когда освоишь синтаксис).

С другой стороны:

  • Оформление мощное, но многословное и сложное в настройке — большинство LaTeX-резюме выглядят узнаваемо научно.
  • Хотя .tex файлы технически текстовые, громоздкий синтаксис усложняет работу с LLM и ATS по сравнению с более простыми форматами.
  • Контроль версий возможен, но шумный синтаксис затрудняет чтение диффов.
  • Портативнее, чем .docx, но все равно нужен дистрибутив TeX или специализированный редактор.
  • Нет реального разделения контента и стиля.

LaTeX лучше .docx, но все еще не набирает достаточно баллов. Не мой вариант.

Markdown (.md)

Вот тут становится интересно. Сильные стороны:

  • Очень удобно писать контент.
  • Полностью дружелюбен к LLM и ATS.
  • Контроль версий элементарен (особенно с Git).
  • Максимально портативен — подойдет любой текстовый редактор.

Гораздо лучше! Но есть заметные пробелы:

  • Нет контроля над версткой — только структура документа.
  • Нет оформления — это просто текст.
  • Нечего разделять, когда стилей нет.
  • Экспорт в PDF возможен, но не тривиален.

Главная проблема в том, что Markdown — headless формат — ему нужен специальный тулчейн для превращения контента в финальный стилизованный PDF. Впрочем, большинство таких инструментов — с открытым исходным кодом.

Итого: вы можете свободно редактировать содержание резюме, но не можете управлять его внешним видом из коробки. Явный шаг вперед, но посмотрим другие альтернативы.

JSON / YAML — структурированное резюме

Не буду задерживаться на этом — по сути та же история, что и с Markdown, только с еще меньшей поддержкой стилей и более простой структурой.


Решение

Это самые распространенные форматы для резюме, и ни один из них полностью не соответствует моим потребностям. Мне нужен был полный контроль над контентом, стилями и версткой. Если бы только существовал язык разметки, разделяющий структуру и стили, с точной версткой и чистым экспортом в PDF...

СТОП... и тут меня осенило!

HyperText Markup Language (HTML)

Сразу к делу:

  • Легко конвертируется в PDF через печать из браузера или средства автоматизации.
  • Отличный контроль над версткой — Flexbox, Grid — все к вашим услугам.
  • Богатое — нет, БОГАТЕЙШЕЕ оформление со всей мощью CSS, включая ховеры и анимации (правда, не в PDF).
  • Полностью дружелюбен к LLM — можно легко генерировать и редактировать стилизованные резюме. ATS тоже зачастую справляется с парсингом, хотя слишком сложная разметка может вызвать проблемы.
  • Контроль версий так же прост, как с Markdown — это обычный текст.
  • Полностью портативен — и контент, и верстка путешествуют вместе с файлом.

Есть ли минусы? Конечно:

  • Контент смешивается с разметкой — теги и стили живут рядом с текстом. Читать можно, но разделение не идеальное.

И... да, это все из очевидных минусов!

Скрытые подводные камни

Поработав с HTML-резюме какое-то время, я столкнулся с несколькими менее очевидными проблемами:

  • Нужно знать HTML и CSS, чтобы писать резюме. Впрочем, LLM могут сгенерировать его за вас.
  • Рендеринг в браузере отличается на разных ОС. Один и тот же HTML может выглядеть по-разному на Windows и macOS.
    Взгляните на два рендера одного и того же HTML-резюме на разных системах:
    HTML на macOS
    Такой-же HTML на Windows

    Шрифт выглядит иначе, хотя CSS-свойства идентичны. Я долго исследовал эту проблему, и, к сожалению, полностью ее решить нельзя. Хорошая новость — после рендера в PDF результат выглядит одинаково везде.
  • Нет встроенных разрывов страниц. Пагинацию приходится обрабатывать вручную.
    CSS помогает с помощью свойств вроде:
    .page {
      width: 210mm;
      height: 297mm;
    }
    
    @media print {
      .page {
        break-after: page;
      }
    }
    

    Они фиксируют размеры под реальную печатную страницу. Но в сочетании с различиями рендеринга между ОС разрывы страниц могут сдвигаться при редактировании на разных устройствах — неприятный источник неконсистентности.

Создание инструмента

Когда я остановился на HTML, я начал искать подходящий инструмент. Не может быть, чтобы я первый додумался до такого.

Но ничего подходящего не нашлось. Я не смог найти инструмент, дающий прямой полный контроль над HTML-резюме. Ближайшие варианты — конструкторы с формами, куда загружаешь данные и выбираешь шаблон, — но они не бесплатны, и не дают сырой редактируемый файл.

Другой очевидный подход — редактировать HTML прямо в VS Code, но постоянно переключаться на браузер утомительно. Разрывы страниц видны только в режиме предварительного просмотра печати, и экспортировать приходится каждый раз вручную.

Поэтому я решил создать инструмент сам. Я назвал его CV.html.

Это Monaco редактор с превью в реальном времени, оснащенный различными функциями:

  • Экспорт в PDF
  • Импорт / Экспорт HTML — свободное сохранение, загрузка и редактирование резюме
  • Поддержка TailwindCSS (да, серьезно!)
  • Автоформатирование с Prettier
  • Полезные мелочи — контур страницы A4, утилитарные стили, настраиваемый <head> для шрифтов и многое другое
  • Полностью бесплатный и с открытым исходным кодом

Если вы дочитали до этого места и вам интересно — можете прямо зайти на хост или загляните в GitHub. Буду рад, если окажется полезным, и благодарен за любой фидбек!

Есть еще много возможностей для улучшения. Например, замена текста не так проста, потому что теги <span> и прочая разметка перемешиваются с контентом. Я планирую разделить слои шаблона и данных в будущем.

Заключение

Многие разработчики хранят резюме в Markdown, LaTeX или .docx, но HTML предлагает на удивление мощную альтернативу.

Он не идеален, но для моих потребностей оказался лучшим вариантом — обеспечивая непревзойденный контроль над контентом, оформлением и версткой в портативном, версионируемом формате. Подумайте, возможно он подойдет и Вам.

Надеюсь, Вы узнали что-то новое для себя, эта статья оказалась полезной или Вы просто хорошо провели время! До встречи в следующей статье!