mcpField
R
resumx

resumx

github.com/resumxドキュメント29133 回インストール33 週間前に更新
リポジトリ

resumx について

resumxは、Markdownで履歴書を管理し、用途に合わせて調整する人向けのレンダラーです。単一のソースからPDF、HTML、PNG、DOCXを生成でき、ページ数の調整やタグ、ビューに対応しています。

主な機能

  1. 01MarkdownをPDF、HTML、PNG、DOCXに変換
  2. 02指定ページ数に合わせて調整
  3. 03タグとビューによる内容の絞り込み
  4. 04履歴書の構成と内容の検証
  5. 05スタイルとCSSによるレイアウト調整

活用シーン

  1. 011つのMarkdownファイルから用途別の履歴書を作成
  2. 02履歴書を複数形式で出力
  3. 03履歴書を指定ページ数に調整

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/resumx/skills --skill resumx

インストール後、Claude Code で/resumxを入力して読み込まれたか確認します。

同梱ファイルresources/tagging-resume.mdresources/writing-resume.md

詳細

Resumx

Markdown → PDF/HTML/PNG/DOCX の履歴書レンダラー。目標ページ数に自動調整し、タグ + ビューで 1 つのソースファイルからカスタマイズした出力を生成します。

別のレンダラーやビルダーから移行する場合 変換とクイックスタートを 1 ステップで行えます: resumx.dev/#import。PDF、DOCX、LaTeX、JSON Resume、または RenderCV YAML をドロップすると、Resumx で編集・レンダリングできる Markdown が得られます。

リソース

リソース用途
writing-resume.md対話形式のステップバイステップの履歴書作成
tagging-resume.mdカスタマイズした出力のための体系的なタグ付け、階層的なタグ分類

Markdown 構文

標準の Markdown + インラインカラム、角括弧スパン、フェンス付き div。

構造: # Name → email | github | linkedin (連絡先) → ## Section → ### Title || Date → _Subtitle_ || Location → - Bullets → スキル用の定義リスト (Term + : values)。

インラインカラム: || で左右のカラムに分割します。### Google || Jan 2020 - Present、_Senior SWE_ || San Francisco, CA。3 カラム以上: A || B || C。エスケープ: \||。

書式: **Bold**、_Italic_、H~2~O (下付き)、E = mc^2^ (上付き)、--/--- (en/em ダッシュ)。

テーブル: 標準の Markdown テーブル。

クラス、ID、フェンス付き div

角括弧スパン: [text]{.class} → <span>。例: ### Google [2022 - Present]{.right}。

要素属性: ブロックの末尾の {...} は要素全体に適用されます: - Built dashboards {.@frontend}。

フェンス付き div: ::: はブロック内容をラップします。子が 1 つの場合はラッパー div なし、複数の場合は自動で <div>。タグ名のプレフィックス: ::: footer {.text-center}。

::: {.grid .grid-cols-3}

- JavaScript
- TypeScript
  :::

Frontmatter

YAML (---) または TOML (+++)。CLI フラグは常に優先されます。

フィールド型デフォルト説明
cssstring | string[]なしCSS パスまたはインライン (.css 接尾辞 = ファイル、それ以外はインライン)
outputstring入力ファイル名出力パス/テンプレート ({view}、{lang}、{format})
pagespositive integerクランプなし目標ページ数
sections{ hide?: string[], pin?: string[] }ソース順セクションの表示/並び順
bullet-ordernone | tagnone箇条書きの並び順戦略
styleRecord<string, string>—スタイルオプションの上書き
tagsRecord<string, string[] | TagConfig>—タグ構成 / タグビュー設定
varsRecord<string, string>—{{ }} 用のテンプレート変数
iconsRecord<string, string>—カスタムアイコン (SVG、URL、base64)
extraRecord<string, unknown>—任意のユーザーデータ (それ以外の不明なキーはエラー)

バリデーション (validate キー): extends (デフォルト recommended、プリセット: recommended、minimal、strict、none)。ルール: missing-name、missing-contact、no-sections、no-entries、empty-bullet、long-bullet、single-bullet-section、unknown-fenced-div-tag、non-pt-font-size。

---
pages: 1
output: ./out/Jane_Smith-{view}
bullet-order: tag
style:
  link-color: '#0ea5e9'
tags:
  fullstack: [frontend, backend]
  leadership: false
vars:
  tagline: 'Full-stack engineer with 8 years of experience'
validate:
  extends: recommended
  rules:
    long-bullet: warning
    single-bullet-section: off
extra:
  name: Jane Smith
  target-role: Senior SWE
---

CLI

resumx <file>           # Render (defaults to resume.md, PDF)
resumx init [filename]   # Create template

⚠ 必ず required_permissions: ["all"] を指定して実行してください。 Playwright/Chromium は Cursor のサンドボックスによってブロックされるシステムコールを必要とします。これがない場合、レンダリングは「Chromium not found」で失敗します。

フラグ: --css <path> (繰り返し可能、カンマ区切り)、-o/--output <value>、-f/--format <pdf|html|docx|png> (繰り返し可能、カンマ区切り)、-s/--style <k=v> (繰り返し可能)、--for <name-or-glob> (タグ/カスタムビュー名、glob、または default)、-v/--var <k=v> (繰り返し可能)、--hide <list>、--pin <list>、--bullet-order <none|tag>、-l/--lang <bcp47> (繰り返し可能、カンマ区切り)、-p/--pages <n>、-w/--watch、--check (検証のみ)、--no-check、--strict、--min-severity <level>。

標準入力: cat resume.md | resumx または git show HEAD~3:resume.md | resumx -o old。

出力ファイル名: ビュー/言語なし → resume.pdf、ビューあり → resume-frontend.pdf、言語あり → resume-en.pdf、両方 → frontend/resume-en.pdf。テンプレート変数: {view}、{lang}、{format}。

スタイルオプション

style: または --style で上書きします。

  • タイポグラフィ: font-family、title-font-family、content-font-family、font-size (11pt)、line-height (1.4)
  • 色: text-color、link-color、background-color
  • 見出し: name-size、name-caps (small-caps/all-small-caps/petite-caps/unicase/normal)、name-weight、name-italic、name-color、section-title-size、section-title-caps、section-title-weight、section-title-italic、section-title-color、section-title-border、header-align、section-title-align、entry-title-size、entry-title-weight、entry-title-italic
  • リンク: link-underline (underline/none)
  • 間隔: gap (単位なしのスケール)、page-margin-x、page-margin-y、section-gap、entry-gap、row-gap、col-gap、list-indent
  • リスト: bullet-style (disc/circle/square/none)
  • 機能: auto-icons (inline/none)
カスタム CSS

デフォルトの上にカスケードされます。参照: css: my-styles.css または --css。インライン: css: | h2 { letter-spacing: 0.05em; }。配列で混在:

css:
  - base.css
  - |
    h2::after { content: ''; flex: 1; border-bottom: var(--section-title-border); }

バンドルされた @import モジュール: common/base.css (リセット、タイポグラフィ、レイアウト)、common/icons.css、common/utilities.css (.small-caps、.sr-only、.max-N)。

ページに収める

pages: N で自動フィットします。縮小順序 (目立たないものから): 1) 間隔 2) 行の高さ 3) フォントサイズ 4) マージン (最後の手段)。pages: 1 の場合、間隔は拡張して埋めます。

最小値: font-size 9pt、line-height 1.15、section-gap 4px、entry-gap 1px、page-margin-y 0.3in、page-margin-x 0.35in。pages: を設定すると、style: の値は縮小される可能性のある開始点となります。pages: がない場合は、そのまま適用されます。

アイコン

:icon-name: (組み込み)、:set/name: (Iconify、20万以上)、絵文字ショートコードをフォールバックとして使用。解決順序: Frontmatter > 組み込み > Iconify > 絵文字。

リンクの自動アイコン: mailto:、tel:、linkedin.com、github.com、gitlab.com、bitbucket.org、stackoverflow.com、x.com/twitter.com、youtube.com/youtu.be、dribbble.com、behance.net、medium.com、dev.to、codepen.io、marketplace.visualstudio.com。無効化: style: { auto-icons: none }。

カスタムアイコン: icons: { mycompany: '<svg>...</svg>', partner: 'https://example.com/logo.svg' }。

Tailwind CSS

Tailwind v4 がオンザフライでコンパイルされます。{.class} で適用: [React]{.bg-blue-100 .text-blue-800 .px-2 .rounded}。スパン、要素属性、フェンス付き div で動作します。任意の値: .text-[#ff6600]。組み込み: .small-caps、.sr-only、.max-1–.max-16。

タグ

{.@name} はコンテンツを対象読者向けにフィルタリングします。タグなしは常に通過します。タグ付きは一致するタグの場合にのみ表示されます。複数指定: {.@backend .@frontend}。レンダリング: --for frontend。

階層: / によるネスト({.@backend/node})。あるビューは祖先 + 自身 + 子孫 + タグなしを含み、兄弟は除外されます。--for backend/node → @backend + @backend/node + タグなし(@backend/jvm は含まない)。--for backend → すべての子孫 + タグなし。深さは無制限です。

コンポジション は frontmatter で指定します: fullstack: [frontend, backend]。階層は構成要素として機能し、系統は構成要素ごとに展開されます。再帰的な展開(startup-cto は fullstack を介して frontend/backend を含む)も可能です。タイプミスは候補を提示するエラーになります。

tags:
  fullstack: [frontend, backend]
  node-fullstack: [frontend, backend/node]
  tech-lead: [backend, leadership]
  startup-cto: [fullstack, leadership, architecture]

ビュー

タグ = 何を表示するか。ビュー = どのように表示するか。すべてのレンダリングはビューを使用します。

種類場所性質
デフォルトFrontmatter のレンダリングフィールド基本設定
タグビューtags: の展開形式タグごとのオーバーライド、暗黙的
カスタム.view.yaml ファイルアプリケーションごと
一時的CLI フラグ一回限り

タグビュー: すべてのタグが自動的にビューを生成します。展開形式ではレンダリングのオーバーライドを追加します。省略形 fullstack: [frontend, backend] = fullstack: { extends: [frontend, backend] }。

tags:
  frontend:
    sections: { hide: [publications], pin: [skills, projects] }
    pages: 1
  fullstack:
    extends: [frontend, backend]
    sections: { pin: [work, skills] }
    pages: 2

カスタムビュー: .view.yaml ファイルで、再帰的に自動検出されます。フィールド: selects(含めるタグ)、sections、pages、bullet-order、vars、style、css、format、output。selects がない場合はすべてのコンテンツ、selects: [] はタグなしのみを表します。レンダリング: --for stripe-swe。バッチ: --for '*'/--for 'stripe-*'。--for default はデフォルトビュー(フィルタリングなし)を表します。組み合わせ: --for default,frontend。ビューに default という名前を付けないでください。

# stripe.view.yaml
stripe-swe:
  selects: [backend, distributed-systems, leadership]
  sections: { hide: [publications], pin: [skills, work] }
  vars:
    tagline: 'Stream Processing, Event-Driven Architecture, Go, Kafka'

一時的: CLI フラグをインラインで指定: resumx resume.md --for backend -v tagline="Stream Processing, Go" --pin skills,work -o stripe.pdf。

カスケード: 組み込みのデフォルト → デフォルトビュー → タグ/カスタムビュー → 一時的(CLI)。

テンプレート変数

{{ name }} プレースホルダー。vars:、カスタムビュー、または -v で定義します。未定義または空の場合、行は削除されます。値にはマークダウンを含めることができます。一致するプレースホルダーがない変数はエラーになります。

# Jane Doe

[email protected] | github.com/jane
{{ tagline }}

セクション

sections: { hide: [publications, volunteer], pin: [skills, work] }。hide は削除し、pin は指定順に先頭へ移動し、残りはソース順に続きます。値: work、education、skills、projects、awards、certificates、publications、volunteer、languages、interests、references、basics。CLI: --hide publications --pin skills,work。

多言語

{lang=xx}(BCP 47)。タグなしはすべてに表示されます。タグと組み合わせ: {lang=en .@backend}。フィルタ: --lang en または --lang en,fr。次元は掛け算になります: 2 言語 × 2 タグ = 4 つの PDF。

## [Experience]{lang=en} [Expérience]{lang=fr}

### Google

- [Reduced API latency by 60%]{lang=en}
  [Réduction de la latence API de 60%]{lang=fr}

セマンティックセレクター

自動生成される HTML 属性: ヘッダー: [data-field='name|email|phone|profiles|location|url']、[data-network='github']。セクション: section[data-section='work|education|skills|projects|awards|certificates|publications|volunteer|languages|interests|references|basics'](あいまいなキーワード一致)。エントリ: .entries(コンテナ)、.entry(<article>)。日付: <time datetime="ISO8601">、.date-range。

Git 連携

エイリアスの設定(一度だけ):

git config alias.resumx '!f() { spec="$1"; shift; case "$spec" in *:*) ;; *) spec="$spec:resume.md";; esac; tag="${spec%%:*}"; header=$(git tag -l --format="%(refname:short)" "$tag" 2>/dev/null); subject=$(git tag -l --format="%(contents:subject)" "$tag" 2>/dev/null); [ -n "$header" ] && printf "\033[2m%s\033[0m\n\033[1m%s\033[0m\n\n" "$header" "$subject"; git show "$spec" | resumx "$@"; }; f'

アプリケーションにタグを付ける: git tag -a sent/stripe-2026-02 -m "Tailored for L5 infra, emphasized Kafka + distributed systems"。注釈付きタグはレンダリング前に名前と注記を出力します。

git resumx sent/stripe-2026-02:resume.md              # from tag
git resumx HEAD~3:resume.md --css my-styles.css -o stripe  # past commit
git show :resume.md | resumx -o staged                # staged changes
レジュメテンプレート
---
pages: 1
---

# Full Name

[email protected] | [linkedin.com/in/user](https://linkedin.com/in/user) | [github.com/user](https://github.com/user)

{{ tagline }}

## Education

### University Name || Sept 2019 - June 2024

_Degree Name_

- GPA: 3.85

## Work Experience

### Company Name || Start - End

_Job Title_

- Achievement with quantified impact using `Technology`

## Projects

### Project Name _(Individual/Group)_

- Description of what was built

## Technical Skills

Languages
: Java, Python, TypeScript

Frameworks
: React, Node.js, FastAPI

コメント