📔

職務経歴書をGitHubで管理するノウハウ

2023/02/26に公開約9,100字

この記事は約 10 分で読めます。

目標

  • 職務経歴書を GitHub で管理
  • GitHub Actions による自動化
    • 文法・誤字脱字のチェック
    • マークダウン → PDF への自動変換
  • GitHub Pages を使って Web ページとして公開

成果物

PDF変換後の職務経歴書

はじめに

こんにちは。バックエンドエンジニアの「りょう」と申します。

職務経歴書を高い保守性で安全に更新できる仕組みを作りたい、ということで GitHub を活用することにしました。

また、いつでも転職できる状態を維持することは、客観的に日々の業務や自分のキャリアについて振り返り、自分の強み弱みを認識できる大切な習慣だと思います。

もちろん、現職でのパフォーマンスを向上させ、活躍の幅を広げるきっかけにも繋がります。

なので非エンジニアであっても社会人である以上、3~4 週間ごとに職務経歴書を見直すことを強く推奨します。

この記事を通して、少しでも楽に職務経歴書を管理できる方が増えると嬉しいです!

また、いつでも見返せるように「いいね」と「ブックマーク」もお願いします!

間違いなどありましたらコメント等でご指摘頂けると幸いです。

1. リポジトリを作成

まずは GitHub で職務経歴書を管理するためのリポジトリを作成しましょう。

できるだけ多くの採用担当の方に見てもらうため、私は Public リポジトリとして公開しました。

他のエンジニアも職務経歴書には Public リポジトリとして設定している人が多いので、個人的に Public がオススメです。

2. 職務経歴書を作成

さっそくローカルで職務経歴書を作成しましょう!

最後に GitHub Pages を活用して Web ページとして公開するので、ルートに docs フォルダを作成し、その中に職務経歴書を .md ファイルとして作成します。

docs/サンプル.md
# 職務経歴書

## 意欲・興味

- xxx

## スキル

- 言語
  - JavaScript・Ruby

- フレームワーク等
  - React・Ruby on Rails

- RDB
  - MySQL

- クラウド
  - AWS
    - EC2

- その他
  - Docker・GraphQL・RSpec

## 職務経歴詳細

- xxx企業
  - xxxプロダクト
    - 期間
      - yyyy/mm/dd ~ 現在
    - チーム編成
      - PM x 人
      - 開発者 x 人
      - デザイナー x 人
    - 言語・フレームワーク
        - Ruby on Rails
    - インフラ
      - AWS
        - EC2
    - ツール
      - Docker・Docker Compose・GitHub・GitHub Actions・MySQL
    - プロダクトが属する業界
      - xxx業界
    - プロダクト概要
      - xxx
    - チームの特徴・課題
      - xxx
    - チームでの役割
      - xxx

実際の職務経歴書の内容は、以下の記事が参考になります。
もちろん私の職務経歴書も参考にして頂いて問題ありません。

https://qiita.com/newta/items/77eb14b1d67bc7ef1980

https://job-draft.jp/articles/56

完成したら忘れないように GitHub に Push しましょう。

git init
git add docs/xxx.md
git commit -m "feat: 職務経歴書を作成"
git branch -M main
git remote add origin git@github.com:xxx/xxx.git
git push -u origin main

また、ある程度書き終えたら、第三者にレビューしてもらう方法として「転職ドラフト」を活用する方法があります。

無料で添削してもらえて、伝わりやすい経歴書に大幅にブラッシュアップできたので個人的にかなりオススメです。

https://job-draft.jp/

3. Lint の導入

今回は textlint と markdownlint の導入をそれぞれ紹介します。

textlint の導入

職務経歴書という仕事・転職に関わる大事な書類なので、誤字脱字は避けたいです。

そこで、textlint という自然言語向けの Lint を活用します。

これを使えば誤字脱字だけでなく、ら抜き言葉などの文法もチェックできます。

以下のコマンドで簡単に導入できます。

yarn init -y && yarn add -D textlint

# 【重要】実際に入力する際は「#」以降のコメントアウトは削除して実行して下さい
# textlint 単体では何もルールが設定されていません
# よって、お好みで使用したいルールを追加する必要があります
yarn add -D \
@proofdict/textlint-rule-proofdict \ # 辞書を活用しタイポや表記ゆれを防止
@textlint-ja/textlint-rule-no-dropping-i \ # い抜き言葉をチェック
textlint-filter-rule-comments \ # コメントで特定ルールを無視
textlint-rule-ja-space-around-link \ # リンクの前後にスペースを入れるかチェック
textlint-rule-no-doubled-joshi \ # 同じ助詞が複数出てくるかチェック
textlint-rule-no-dropping-the-ra \ # ら抜き言葉をチェック
textlint-rule-preset-ja-spacing \ # スペース周りのスタイルをチェック
textlint-rule-preset-ja-technical-writing \ # 技術文書向けのtextlintルールプリセット
textlint-rule-rousseau # 英文のチェック

# 設定ファイルを作成
npx textlint --init

私は設定ファイルである .textlintrc.json を以下の内容で設定しました。

.textlintrc.json
{
  "filters": {
    "comments": true
  },
  "rules": {
    "ja-space-around-link": {
      "before": true,
      "after": true
    },
    "no-doubled-joshi": true,
    "no-dropping-the-ra": true,
    "preset-ja-spacing": {
      "ja-space-around-code": {
        "before": true,
        "after": true
      },
      "ja-space-between-half-and-full-width": {
        "space": "always"
      }
    },
    "preset-ja-technical-writing": {
      "sentence-length": {
        "max": 150
      },
      "max-kanji-continuous-len": {
        "max": 6,
        "allow": ["普通自動車第一種運転免許"]
      },
      "ja-no-successive-word": false,
      "ja-no-mixed-period": false
    },
    "rousseau": {
      "showLevels": ["suggestion", "warning", "error"],
      "ignoreTypes": ["adverbs", "readibility", "sentence:uppercase"]
    },
    "@textlint-ja/textlint-rule-no-dropping-i": true,
    "@proofdict/proofdict": {
      "dictURL": "https://azu.github.io/proof-dictionary/"
    }
  }
}

markdownlint の導入

マークダウンの見栄えを良くするために、markdownlint も導入します。

yarn add -D markdownlint-cli

設定ファイルである .markdownlint.jsonc を作成します。

私は以下の内容で設定しました。

.markdownlint.jsonc
{
  "MD001": false, // 見出しのレベルは、一度に1レベルずつしか増加しないようにする。
  "MD003": false, // 見出しのスタイル
  "MD013": {
    "line_length": 250 // 一行の文字数
  },
  "MD014": false, // 出力を表示せずにコマンドの前に使用するドル記号
  "MD022": false, // 見出しは空白行で囲む
  "MD024": false, // 同じ内容の見出しが複数ある
  "MD025": false, // 同一文書内に複数のトップレベル見出しがある
  "MD026": false, // 見出しの末尾の句読点
  "MD033": false, // インラインHTML
  "MD034": false // 裸のURL
}

Lint コマンドの設定

yarn lint コマンドで Lint が実行できるように package.json を更新します。

package.json
{
  "scripts": {
    "lint": "textlint . && markdownlint docs/*.md"
  },
}

実際に yarn lint を実行して、エラーがないかチェックしてみましょう。

$ yarn lint

yarn run v1.22.19
$ textlint . && markdownlint docs/*.md
✨  Done in 7.31s.

4. GitHub Actions の設定

GitHub Actions で Push 時に自動で上記 Lint が起動するように設定します。

.github/workflows 配下に以下のようなファイルを作成すると、自動で GitHub Actions が起動します。

.github/workflows/lint.yml
name: lint

on: push

jobs:
  textlint:
    name: lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          ref: ${{ github.event.pull_request.head.sha }}
      - uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: yarn
      - run: yarn install
      - run: yarn lint

Lint の実行結果は PR の画面から確認できます。

PRに表示されるLintの実行結果

5. PDF への自動変換

企業の採用担当者から PDF 形式での職務経歴書を求められることが多いです。

そこで GitHub Actions を活用し、マークダウンから PDF に自動で変換する処理を実装します。

以下のような PDF が作成され、リリースページからダウロードできます。

PDF変換後の職務経歴書

以下の 5 つの手順で導入します。

① PDF に変換するライブラリを導入します。

yarn add -D md-to-pdf

pdf-configs フォルダに設定用ファイルを 2 つ作成します。

pdf-configs/config.js
module.exports = {
  stylesheet: "./pdf-configs/style.css",
  body_class: "markdown-body",
  marked_options: {
    headerIds: false,
    smartypants: true,
  },
  pdf_options: {
    "format": "A4",
    "margin": "30mm 20mm",
    "printBackground": true,
    "headerTemplate": "<style>\n  section {\n    margin: 0 auto;\n    font-size: 9px;\n  }\n</style>",
    "footerTemplate": "<section>\n  <div>\n    <span class=\"pageNumber\"></span>\n    / <span class=\"totalPages\"></span>\n  </div>\n</section>"
  },
  stylesheet_encoding: "utf-8",
};
pdf-configs/style.css
@import url(//fonts.googleapis.com/earlyaccess/notosansjapanese.css);

body {
  font-size: 12px;
  font-family: "Noto Sans Japanese", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

h1:first-child {
  margin-top: 0;
  padding-top: 0;
  text-align: center;
}

table {
  font-size: 11px;
  border-collapse: collapse;
}

td,
th {
  border: 1px solid #ddd;
  padding: 5px;
}

tr:nth-child(even) {
  background-color: #f2f2f2;
}

tr:hover {
  background-color: #ddd;
}

th {
  text-align: left;
  background-color: #ddd;
}

hr {
  border-top: 1px solid #ddd;
  margin: 30px 0;
}

package.json に PDF 変換用のコマンドを設定します。

package.json
"scripts": {
  "build:pdf": "md-to-pdf docs/${YOUR_RESUME}.md --config-file ./pdf-configs/config.js",
},

④ GitHub Actions で PDF に変換する設定をします。

とりあえずドラフト状態のリリースを作成し、実際のリリースは手作業で行うように設定しています。

.github/workflows/build-pdf.yml
name: release pdf

on:
  pull_request:
    branches: [main]
    paths: 'docs/#{YOUR_RESUME}.md'

jobs:
  build:
    name: release pdf
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
      - uses: actions/checkout@v3
        with:
          ref: ${{ github.event.pull_request.head.sha }}
      - uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: yarn
      - run: yarn install
      - name: Build pdf
        run: yarn build:pdf
      - name: Create a draft release
        uses: softprops/action-gh-release@v1
        with:
          body: ${{ github.event.pull_request.title }}
          draft: true
          fail_on_unmatched_files: true
          files: docs/README.pdf
          name: Release ${{ github.ref }}

⑤リリース後、リリースページの Assets 内に PDF が作成され、クリックすることでダウンロードできます。

PDF変換後の職務経歴書

6. Web ページとして公開

GitHub Pages という無料のホスティグサービスを使って Web ページとして公開します。

GitHub Pagesによって公開された職務経歴書のスクリーンショット

デザインテーマは docs/_config.yml で設定しています。

docs/_config.yml
remote_theme: pages-themes/cayman@v0.2.0
title: #{任意のタイトル}
description: #{任意の説明文}

以下のページから様々なテーマを確認できるので、お好みのものを設定して下さい。

https://pages.github.com/themes/

最後に GitHub Pages の設定をリポジトリの設定画面から行います。

公開するフォルダを docs に設定します。

GitHub Pagesの設定画面

公開しても、反映されるまでに時間がかかることもあるので注意して下さい!

終わりに

以上、「職務経歴書を GitHub で管理するノウハウ」の紹介でした。
定期的にスキルの棚卸しをして、振り返る習慣を身に付けましょう!

みなさんのお役に立てれば幸いです。

また、以下の記事もおすすめです!

https://zenn.dev/ryo_f/articles/f63b0bffe2eb77

https://zenn.dev/ryo_f/articles/9714348cc2483b

参考

https://zenn.dev/ryo_kawamata/articles/resume-on-github

GitHubで編集を提案

Discussion

ログインするとコメントできます