職務経歴書をGitHubで管理するノウハウ
この記事は約 10 分で読めます。
目標
- 職務経歴書を GitHub で管理
- GitHub Actions による自動化
- 文法・誤字脱字のチェック
- マークダウン → PDF への自動変換
- GitHub Pages を使って Web ページとして公開
成果物
はじめに
こんにちは。バックエンドエンジニアの「りょう」と申します。
職務経歴書を高い保守性で安全に更新できる仕組みを作りたい、ということで GitHub を活用することにしました。
また、いつでも転職できる状態を維持することは、客観的に日々の業務や自分のキャリアについて振り返り、自分の強み弱みを認識できる大切な習慣だと思います。
もちろん、現職でのパフォーマンスを向上させ、活躍の幅を広げるきっかけにも繋がります。
なので非エンジニアであっても社会人である以上、3~4 週間ごとに職務経歴書を見直すことを強く推奨します。
この記事を通して、少しでも楽に職務経歴書を管理できる方が増えると嬉しいです!
また、いつでも見返せるように「いいね」と「ブックマーク」もお願いします!
間違いなどありましたらコメント等でご指摘頂けると幸いです。
1. リポジトリを作成
まずは GitHub で職務経歴書を管理するためのリポジトリを作成しましょう。
できるだけ多くの採用担当の方に見てもらうため、私は Public リポジトリとして公開しました。
他のエンジニアも職務経歴書には Public リポジトリとして設定している人が多いので、個人的に Public がオススメです。
2. 職務経歴書を作成
さっそくローカルで職務経歴書を作成しましょう!
最後に GitHub Pages を活用して Web ページとして公開するので、ルートに 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
実際の職務経歴書の内容は、以下の記事が参考になります。
もちろん私の職務経歴書も参考にして頂いて問題ありません。
完成したら忘れないように 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
また、ある程度書き終えたら、第三者にレビューしてもらう方法として「転職ドラフト」を活用する方法があります。
無料で添削してもらえて、伝わりやすい経歴書に大幅にブラッシュアップできたので個人的にかなりオススメです。
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
を作成します。
私は以下の内容で設定しました。
{
"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
を更新します。
{
"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 が起動します。
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 の画面から確認できます。
5. PDF への自動変換
企業の採用担当者から PDF 形式での職務経歴書を求められることが多いです。
そこで GitHub Actions を活用し、マークダウンから PDF に自動で変換する処理を実装します。
以下のような PDF が作成され、リリースページからダウロードできます。
以下の 5 つの手順で導入します。
① PDF に変換するライブラリを導入します。
yarn add -D md-to-pdf
②pdf-configs
フォルダに設定用ファイルを 2 つ作成します。
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",
};
@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 変換用のコマンドを設定します。
"scripts": {
"build:pdf": "md-to-pdf docs/${YOUR_RESUME}.md --config-file ./pdf-configs/config.js",
},
④ GitHub Actions で PDF に変換する設定をします。
とりあえずドラフト状態のリリースを作成し、実際のリリースは手作業で行うように設定しています。
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 が作成され、クリックすることでダウンロードできます。
6. Web ページとして公開
GitHub Pages という無料のホスティグサービスを使って Web ページとして公開します。
デザインテーマは docs/_config.yml
で設定しています。
remote_theme: pages-themes/cayman@v0.2.0
title: #{任意のタイトル}
description: #{任意の説明文}
以下のページから様々なテーマを確認できるので、お好みのものを設定して下さい。
最後に GitHub Pages の設定をリポジトリの設定画面から行います。
公開するフォルダを docs
に設定します。
公開しても、反映されるまでに時間がかかることもあるので注意して下さい!
終わりに
以上、「職務経歴書を GitHub で管理するノウハウ」の紹介でした。
定期的にスキルの棚卸しをして、振り返る習慣を身に付けましょう!
みなさんのお役に立てれば幸いです。
また、以下の記事もおすすめです!
参考
Discussion