YAMLResume

YAMLResume 與 Reactive Resume 的比較

Reactive Resume 是 GitHub 上最受歡迎的開源履歷產生器,由 Amruth Pillai 所建立。它自 2020 年問世以來,已累積 超過 43,000 個 GitHub 星標,並在 rxresu.me 提供任何人皆可 免費使用的託管版本。其程式碼庫以 MIT 授權條款開源,無追蹤、無廣告,也無付費牆。

摘自其官方儲存庫:

Reactive Resume is a free and open-source resume builder that makes it easy to
create, update, and share your resume.

- Pick a template, fill in your details, and export to PDF.
- Basic use needs no account.
- You own your data. The codebase is open source under the MIT license, with
  no tracking, no ads, and no hidden costs.

Reactive Resume 最初是個副專案,於 2020 年初首次發布,同年年稍晚推出 v2、 2022 年初推出 v3,並在 2023 年底推出以 NestJS 與 PostgreSQL 後端打造的 v4。 2026 年 1 月,v5 發布——這是一次徹底的重寫,採用 TanStack Start(React 19、Vite、 TypeScript、搭配 Drizzle ORM 的 PostgreSQL),並內建 AI agent、MCP server 與求職 申請追蹤器。同年稍晚,技術堆疊轉為 TanStack Router 搭配 Hono 與 oRPC,伺服器端的 printer 服務也被以 @react-pdf/renderer 進行的客戶端 PDF 渲染所取代。

Reactive Resume 與 YAMLResume 擁有相同的價值觀——免費、開源、尊重隱私的履歷工 具——但它們體現了截然相反的工作流程。Reactive Resume 是一個 Web 應用程 式:您在所見即所得(WYSIWYG)的視覺化建構器中編輯履歷,資料儲存在應用程式內 (PostgreSQL,或您自行架設的實例)。YAMLResume 則是以檔案為基礎的工具鏈:您的 履歷是一個純文字的 YAML 檔案,可在任何編輯器中編輯、以 Git 進行版本控制,並從命 令列編譯為多種輸出格式。以下為兩者的比較:

功能比較

功能YAMLResumeReactive Resume
類型CLI 工具鏈 + 檔案格式Web 應用程式(託管或自行架設)
語言TypeScript/Node.jsTypeScript(TanStack Router、React 19、Hono、Node.js)
授權條款MITMIT
資料格式純文字 YAML 檔案儲存於 PostgreSQL 的 JSON,透過 Web UI 編輯
是否需要帳號不需要基本使用不需要;雲端同步需要帳號
編輯方式任何文字編輯器 + 開發模式自動重建瀏覽器中的 WYSIWYG 編輯器,具備即時預覽
排版引擎Docx、HTML、Markdown、LaTeX/XeTeX客戶端 PDF 渲染器(@react-pdf/renderer)
輸出格式DOCX、HTML、Markdown、LaTeX/PDFPDF、DOCX、Markdown、JSON
結構驗證嚴格的 Zod 結構驗證,搭配編譯器與 IDE 整合伺服器端結構驗證,提供使用者可見的錯誤訊息
錯誤報告具備行號與位置資訊的 clang 風格診斷訊息表單內嵌錯誤與匯入驗證訊息
國際化涵蓋 12 種語系代碼的 10 種語言,具備深度內容在地化UI 翻譯為 55 個語系;RTL PDF 鏡像;語系感知後備字型
富文字支援在 summary 欄位中使用精選的 Markdown 富文字語法所有欄位皆支援 WYSIWYG 富文字編輯器,並具備螢光標示顏色
字型自訂字型家族、字型大小、行距 等按模板設定的字型家族、大小與間距控制
顏色自訂無(取決於主題)模板色盤加上具備內容選擇器的 Semantic CSS 編輯器
版面自訂頁面邊距、頁碼、紙張大小 等A4/Letter、邊距、間距、側邊欄寬度、圖示樣式、拖放排列
章節自訂別名與重新排序具備型別欄位的自訂章節、拖放排序、逐項目可見性
模板/主題多個官方 LaTeX、HTML 與 DOCX 模板15 個內建模板(Azurill、Bronzor、Chikorita、Ditto、Gengar、Lapras、Rhyhorn 等)
自訂樣式基於模板(DOCX/HTML/LaTeX 原始碼)可跨模板移植的 Semantic CSS 規則
開發模式具備自動重建的開發模式邊輸入邊即時預覽
版本控制原生支援(Git 中的純文字檔案)JSON 匯出/匯入;應用程式內版本歷史快照;無逐行差異
Docker 支援官方 Docker 映像檔,已預先安裝 LaTeX 與 YAMLResume一體式自架設映像檔(Docker Hub 與 GHCR);一鍵部署至 Vercel
GitHub Action用於 CI/CD 的官方 GitHub Action無
Homebrew可在 macOS 與 Linux 上輕鬆安裝的 Homebrew formula無
線上 Playground互動式網頁 playground即 rxresu.me 上的託管應用程式本身
AI 整合內建產生與翻譯功能,可透過 CLI 與 API 使用應用程式內 AI agent,支援 OpenAI、Anthropic、Google、OpenRouter、Ollama 等,具備 ATS 檢查與 PDF/DOCX 匯入
Agent 整合履歷檔案可搭配任何編碼 agent 使用具備 OAuth 的 MCP server,以及 OpenAPI REST API
分享可將 HTML 輸出託管於任何地方公開分享連結,附瀏覽次數
額外功能精選範例履歷、json2yamlresume 轉換器求職信、求職申請追蹤器、Application Copilot(自動填寫、匹配評分、客製化副本)
Node.js API用於讀取、驗證、建置、監看、產生與翻譯檔案的 @yamlresume/nodeREST API + MCP(無本機程式庫)
確定性輸出是是(客戶端 PDF 渲染器)

主要差異說明

如果必須用一個詞來總結 YAMLResume 與 Reactive Resume 的差異,那就是檔案對上 應用程式。YAMLResume 將您的履歷視為純文字原始碼;Reactive Resume 則將其視為應 用程式內的資料。幾乎所有其他差異都源自這個決定。

檔案對上應用程式

使用 YAMLResume 時,履歷就是您磁碟上的一個 YAML 檔案:

$ yamlresume build resume.yml
✔ Generated resume pdf file successfully: resume.pdf
✔ Generated resume docx file successfully: resume.docx
✔ Generated resume markdown file successfully: resume.md
✔ Generated resume html file successfully: resume.html

您可以將它提交到 Git、比較兩個版本的差異、為每份求職申請建立分支、在 pull request 中審查變更,並讓 CI 編譯產物。GitHub Action 可以自動建置並將 PDF 附加到 release。沒有任何東西在背景執行,除了您選擇發布的檔 案外,沒有任何東西會離開您的電腦。

使用 Reactive Resume 時,履歷儲存在應用程式內。您透過 Web UI 編輯,資料儲存在 PostgreSQL(無論是託管服務或您自行架設的實例),並在需要時匯出產物。該應用程式 提供 JSON 匯出/匯入、快照式的版本歷史與還原(在匯入、AI 編輯等里程碑時擷取), 以及完整的資料刪除——但沒有逐行差異或分支;如果您想要這些功能,必須自己在 JSON 匯出的基礎上建立這樣的工作流程。

兩種做法都合情合理。應用程式模式省去所有設定,是從零到完成 PDF 的最快途徑; 檔案模式則會隨著時間推移,在您的履歷累積歷史、變體與自動化時顯現其價值。

資料模型

與允許任意章節標題的 RenderCV 不同, YAMLResume 和 Reactive Resume 都使用固定、結構化的結構,具備眾所周知的章節。 這使得來自任一模板的履歷都可預測且機器可讀。

YAMLResume 的內容模型分離了三個關注點:

  • content:履歷本身(basics、location、profiles、work、 education、skills、projects、publications、awards、certificates、 volunteer、references、languages、interests)
  • locale:履歷所使用語言與地區
  • layouts:呈現設定(模板選擇、章節別名與排序、排版、頁面設定)

由於資料模型是固定的,且與 JSON Resume 保 持一致,YAMLResume 可以嚴格驗證它、將數值正規化為固定詞彙(學位、技能等級、語 言流利度、翻譯為每種支援語言的國家與地區),並與更廣泛的 JSON Resume 生態系統交 換資料。編譯器甚至可以直接接受 JSON Resume 檔案,而 json2yamlresume 轉換器則能處理完整的專 案。

Reactive Resume 的結構涵蓋類似的範圍(basics、experience、education、 skills、projects、certifications、languages、interests、references、 awards、volunteer work、publications、profiles),並加入了 YAMLResume 所沒有的功能:

  • 自訂章節:以具備型別的擴充欄位定義全新的章節,適用於作品集、演講或專利
  • 逐項目可見性:隱藏個別條目而不刪除它們,讓一份履歷可以產生多種客製化變體
  • 頁面即畫板:在頁面之間拖放條目,並精確查看分頁位置
  • 求職信:從履歷套用樣式的獨立信件,可匯出為 PDF、DOCX 或 Markdown
  • 申請追蹤器:具備階段、備註、後續追蹤與附件文件的工作搜尋流程,亦可透過 REST API 與 MCP 工具存取

Reactive Resume 也會匯入 JSON Resume 檔案(並驗證拒絕不可能的日期),因此從兩 個方向在兩個生態系統之間遷移都是可行的。

編輯體驗

Reactive Resume 提供精緻的 WYSIWYG 編輯器:您在瀏覽器中所見即 PDF 所得。每個文 字欄位都支援具備粗體、斜體、連結、清單,甚至螢光標示顏色的富文字編輯器。對大多 數人來說,這是撰寫履歷最友善的方式——無需學習語法,也無需執行建置步驟。

YAMLResume 則刻意以部分即時性換取可攜性與規模。您在自己的編輯器中撰寫 YAML,summary 欄位支援一組受限的 Markdown 語法(粗體、斜體、連結、清單、段落)。 其回報是:

  • 您的履歷可被 grep、可被腳本化、可進行差異比較
  • 多行 YAML 字串讓冗長的摘要保持可讀
  • 相同的內容可編譯為 LaTeX、HTML、DOCX 與 Markdown
  • 批次編輯(在十個變體中重新命名雇主)只需一個 sed 即可完成

版面配置與渲染

兩者的渲染架構完全不同。

引擎

YAMLResume 提供四個渲染引擎:

  • DOCX 引擎:Microsoft Word 文件,方便編輯與分享
  • HTML 引擎:具備回應式設計與 SEO 中繼資料的網頁 就緒履歷
  • Markdown 引擎:適用於 LLM、ATS 系統與靜態 網站的純淨文字
  • LaTeX 引擎:透過 XeTeX 產生具備專業排版的像素 級精準 PDF

單一 yamlresume build 指令即可從相同的原始檔案產生所有四種格式。

Reactive Resume 使用 @react-pdf/renderer 在瀏覽器中渲染 PDF(v5 上線時採 用伺服器端 printer 服務;已在 v5.1 移除)。匯出格式包括 PDF、DOCX、Markdown 與 JSON。由於建構器預覽使用 pdfjs 針對與匯出相同的文件樹進行渲染,輸出是確定性的, 且分頁會以畫板的形式精確預覽。其代價是:PDF 與 DOCX 是主要的文件輸出, Markdown 匯出是 v5 才加入的——沒有 LaTeX 管線,也沒有獨立的 HTML 匯出。

設計自訂

Reactive Resume 提供更廣泛的視覺化工具組:

  • 15 個模板(Azurill、Bronzor、Chikorita、Ditgar、Ditto、Gengar、Glalie、 Kakuna、Lapras、Leafish、Meowth、Onyx、Pikachu、Rhyhorn 與 Scizor),大多以 Pokémon 命名
  • 按模板設定:顏色、字型、大小、間距、A4 或 Letter、側邊欄寬度、全寬頁面、 技能/語言指示器的圖示樣式
  • Semantic CSS:一種 CSS 風格的樣式表語言,其選擇器描述履歷內容 (section[type="experience"]、field[name="position"]、list-marker) 而非模板標記,因此樣式在切換模板後依然保留,並可在履歷之間複製
  • 章節、項目與頁面的拖放排列

YAMLResume 的 LaTeX 引擎提供頁面自訂(紙張大 小、邊距、頁碼)與排版控制(字型家族、字 型大小、行距),而模板則封裝了視覺決策——刻意不提供逐元素的顏色與細微的間距控 制。如果您想精雕細琢獨特設計的每個像素,Reactive Resume 能給您更多操控桿。如果 您想在不成為排版專家的前提下獲得專業設計的成果,YAMLResume 的受限做法正是其價 值所在。

章節自訂

YAMLResume 透過章節別名與章節重新排 序來重塑結構,而無需觸動資料——將 work 重新命名為「Employment History」,或在版面配置中將 skills 移到 education 上方。

Reactive Resume 以互動方式達成類似的效果:章節可重新命名、以拖放重新排序,並 以自訂章節擴充。由於它是應用程式資料而非原始碼,這些變更是即時的,但除非您匯出 JSON,否則它們存在於版本控制之外。

國際化

兩個工具在不同的層面進行在地化。

Reactive Resume 在地化介面:應用程式 UI 透過 Crowdin 翻譯為 55 個語系, PDF 管線在所有模板中處理從右至左的鏡像,並為韓文、日文、中文、阿拉伯文、希伯來 文與泰文提供語系感知的後備字型。然而,履歷內容沒有在地化層:章節標題來自模 板,日期遵循單一格式,而學位或技能等級等詞彙則完全是您輸入的內容。一份法文履歷 意味著手動撰寫法文內容。

YAMLResume 則在地化內容。設定 locale 鍵即可切換章節標題、國家名稱、教 育學位、技能等級、語言流利度等級、慣用的日期與地址格式、語系適當的標點符號,以 及 LaTeX babel 設定,涵蓋 12 種語系代碼的 10 種語言。單一 原始檔案可以按語言編譯,而 yamlresume ai translate 會產生保留結構的翻譯——因此維護英文與中文履歷只需要一個檔案加上一次翻譯步驟, 而非兩份漸行漸遠的平行文件。

對於 CJK 與複雜文字,YAMLResume 的 LaTeX 引擎還帶來數十年成熟的排版支援——中 文的 ctex、日文的 luatexja、韓文的 kotex,以及 XeLaTeX 的 xeCJK——能處理字型後 備、全形標點壓縮、CJK-Latin 間距,以及語系感知的斷行。

AI 工作流程

兩個專案都擁抱了 AI,但方式各有特色。

Reactive Resume 將 AI 嵌入應用程式中:帶上您自己的 API 金鑰,支援的提供 商包括 OpenAI、Anthropic、Google Gemini、OpenRouter 與 Ollama(以及任何相容 OpenAI 的端點),應用程式內的 agent 即可修改內容、修正文法並調整語氣,並附帶可 還原的操作歷史。其 ATS 檢查刻意設計為確定性的——基於證據的回饋,加上可選的 AI 第二意見,且 AI 不會給出自己的分數。AI 也為履歷從 PDF 或 DOCX 匯入提供 動力,從現有文件中重建結構化資料。透過 MCP server,agent 可以端對端地管理履歷、 求職信與申請追蹤器。

YAMLResume 則將 AI 嵌入管線中:

  • yamlresume ai generate:從職稱與語系啟動一份完整、通過結構驗證的履歷
  • yamlresume ai translate:翻譯履歷,同時保留其結構與版面配置

兩者都從終端機或 CI 執行,不在伺服器端儲存任何資料,並將結果送回相同的驗證檔 案工作流程。搭配 Markdown 引擎,YAMLResume 檔案 也是目前對 LLM 最友善的履歷格式之一——可作為任何編碼 agent 的可讀上下文,無需 專用的整合。

API 與自動化

Reactive Resume 暴露的是遠端 API 層:一份以 OpenAPI 記錄的 REST API、具備 OAuth 的 MCP server、通行金鑰(passkeys)與雙因素驗證。這是一種伺服器整合—— 您需要對某個實例進行驗證。

YAMLResume 暴露的是本機 API:@yamlresume/node 可從任何 Node.js 應用程式讀取、驗證、建置、監看、產生與翻譯檔案,再加上 create-yamlresume 來建立專案骨架。搭配 GitHub Action、Docker 映像檔與純文字檔案,它無需架設任何服務即可實現自動化。

生態系統與社群

自行架設對上本機優先

Reactive Resume 可自行架設:一個 一體式 Docker 映像檔 (Docker Hub amruthpillai/reactive-resume,GHCR ghcr.io/reactive-resume/reactive-resume),以及一鍵部署至 Vercel 的功能,會自動 佈建 Neon PostgreSQL、Upstash Redis 與 Vercel Blob 儲存。自行架設讓您完全掌 控,但您需要營運一個應用程式:資料庫遷移、儲存、驗證與備份都由您負責。

YAMLResume 則是本機優先:所有東西都在您的電腦上執行, 官方 Docker 映像檔僅用於提供預先設定的建置環 境(Node.js、XeTeX、字型)。沒有伺服器需要營運,沒有資料庫需要備份,也沒有帳號 需要保護。

分發

YAMLResume 在開發者工作的地方與他們會合:

  • npm/pnpm/yarn/bun:npm install -g yamlresume
  • Homebrew:在 macOS 與 Linux 上 brew install yamlresume
  • GitHub Action:在 CI/CD 中建置履歷
  • Docker:在任何地方一鍵建置

Reactive Resume 以託管應用程式加上容器映像檔與原始碼的形式分發;沒有 CLI、Homebrew formula 或 CI 整合。

JSON Resume 互操作

兩個工具都可以匯入 JSON Resume 檔案,這 降低了朝任一方向切換的成本。YAMLResume 則更進一步:其編譯器原生接受 JSON Resume,結構保持一致,而 json2yamlresume 可轉換包含版面配置的 完整專案。

Web 介面

YAMLResume 提供一個互動式網頁 playground,完全在瀏覽器中 執行,沒有伺服器端渲染——適合在不安裝任何東西的情況下試用此格式。

Reactive Resume 的「playground」就是產品本身:rxresu.me 上精緻的託管應用程式,基本使用免帳號、免費。

總結

Reactive Resume 適合以下需求:

  • 零設定、無建置步驟的視覺化 WYSIWYG 履歷建構器
  • 15 個精緻模板,具備深度的視覺自訂,包括 Semantic CSS 編輯器與拖放版面控制
  • 每個欄位皆支援 WYSIWYG 富文字編輯
  • 附瀏覽次數的公開分享連結
  • 內建求職信,以及具備流程階段的求職申請追蹤器
  • 支援 OpenAI、Anthropic、Google、OpenRouter 與 Ollama 的應用程式內 AI agent,AI 從 PDF/DOCX 匯入,以及 ATS 檢查
  • 透過託管的 MCP server 與 OpenAPI REST API 實現 agent 與自動化整合
  • 可一鍵部署至 Vercel 或透過 Docker 部署的自行架設 Web 應用程式

YAMLResume 適合以下需求:

  • 履歷作為 Git 中的純文字 YAML 檔案,具備原生差異比較、分支與程式碼審查
  • 從單一原始檔案產生四個渲染引擎(DOCX、HTML、Markdown、LaTeX/PDF)
  • 深度的內容國際化:12 種語系代碼的 10 種語言,具備翻譯詞彙、慣用日期與地 址格式,以及 CJK 就緒的 LaTeX 排版
  • CLI 優先的開發者體驗,具備監看模式、結構感知的診斷訊息與確定性建置
  • 在本機終端機或 CI 中執行的 AI 產生與翻譯
  • 為自動化打造的生態系統工具:Homebrew、Docker、GitHub Action、Node.js API,以及可嵌入的瀏覽器 playground
  • 無帳號、無伺服器、無資料庫——只有檔案

如果您偏好一個能在一個地方管理履歷、求職信與求職過程的精緻視覺化應用程式, 並且想要最豐富的模板與 AI agent 體驗而無需接觸命令列,請選擇 Reactive Resume。

如果您將履歷視為原始碼——可版本化、可審查、可編譯、可自動化——並希望一個檔案 能產生像素級精準的 PDF、Word 文件、網頁與 LLM 友善的文字版本,涵蓋十餘種語系, 並在每次提交時完成,請選擇 YAMLResume。

Edit on GitHub

Last updated on

On this page