ATS Engine

io.github.VeriWorkly由 GitHub 帳號 VeriWorkly 發布v0.15.1更新於 Oct 30, 2026

Read your own resume the way an ATS does and score it with a published, deterministic rubric.

概覽

AI 產生的概覽

依照 ATS(招募管理系統)的讀取方式為你自己的履歷評分,採用公開且確定性的評分規則,並說明每一項未通過的檢查。

可以做什麼
  • 檢查履歷檔案或貼上的文字,給出 0–100 的就緒分數、結論、各類別分數,以及每項未通過檢查的證據與修正建議
  • 將履歷與職缺描述比對,給出符合度、逐項要求的判定結果,以及缺少的關鍵字與技能
  • 查詢單一評分規則,了解它檢查什麼、配分多少、如何修正,並可依國家調整權重
  • 依 ATS 讀取順序逐行顯示文字,並提供量測到的版面資訊,例如分欄、表格與隱藏文字
  • 以 JSON 資源形式讀取完整評分規則
適用情境
適合在投遞前確認自己的履歷能否被正確解析與閱讀,或釐清某項檢查為何未通過。也適合針對特定職缺評估履歷的符合程度。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 22.12 以上版本。不需要帳號、API 金鑰或環境變數。履歷須為 PDF、DOCX、HTML、TXT、MD 或 JSON Resume;職缺須為 TXT、MD、PDF、DOCX 或已儲存的 HTML。建議使用絕對路徑;超過 20 MB 的檔案與沒有文字層的 PDF 會被拒絕。
安裝前請注意
履歷與職缺文字會作為工具結果回傳給助理,因此會送到你使用的模型供應商,儘管伺服器本身不發出網路請求。它只讀取你在請求中指定的檔案,但這些檔案可能含有個人資料。此工具僅供求職者檢查自己的履歷;用它篩選或排序他人可能受自動化就業決策工具相關法規規範。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 ATS Engine,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

ATS Engine MCP server

An MCP server that lets an AI assistant (Claude, Cursor, VS Code Copilot and others) read your own resume the way an applicant tracking system (ATS) does, and score it with @veriworkly/ats-engine's published, deterministic rubric.

Setup for each client, every tool and its inputs, and example prompts: docs.veriworkly.com/ats-engine/tools/mcp.

Ask your assistant things like "check my resume at ~/Documents/cv.pdf", "how well does it match this job posting?", "why did it fail the date check?" or "show me how an ATS reads my resume".

The score comes from the rubric (RUBRIC.md), not from a model. The same file always gets the same score. The assistant explains the result and helps you fix what failed.

Install

You need Node.js 22.12 or later. Every client below runs the server with npx -y @veriworkly/ats-engine-mcp.

Claude Code

sh
claude mcp add ats-engine -- npx -y @veriworkly/ats-engine-mcp

On native Windows (not WSL), wrap npx in cmd /c:

sh
claude mcp add ats-engine -- cmd /c npx -y @veriworkly/ats-engine-mcp

Claude Desktop

Open Settings → Developer → Edit Config, add the server to claude_desktop_config.json, and restart Claude Desktop:

json
{  "mcpServers": {    "ats-engine": {      "command": "npx",      "args": ["-y", "@veriworkly/ats-engine-mcp"]    }  }}

Cursor

Add it to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project):

json
{  "mcpServers": {    "ats-engine": {      "command": "npx",      "args": ["-y", "@veriworkly/ats-engine-mcp"]    }  }}

VS Code

Add it to .vscode/mcp.json in your workspace, or run MCP: Add Server from the Command Palette:

json
{  "servers": {    "ats-engine": {      "type": "stdio",      "command": "npx",      "args": ["-y", "@veriworkly/ats-engine-mcp"]    }  }}

Tools

ToolInputReturns
check_resumepath or text; optional job_path or job_text; optional region; optional target_atsReadiness score (0–100), verdict, category scores (writing style included), every failed check with its evidence and fix, and the fields an ATS stores (name, contact, roles, education, skills; the structured parsed also holds certifications and spoken languages with their CEFR level). With a posting: job match, requirements and keywords too. Then advice, which is not scored.
match_jobpath or text; job_path or job_text (required); optional regionJob match score, each requirement judged met / partial / missing / unverifiable with evidence, and the missing keywords, hard skills and soft skills apart (soft skills weigh less).
explain_rulerule_id; optional regionOne rubric rule: category, severity, what it checks, points, how to fix it. With a region, as that country weighs it (a photo is worth 6 points in the US and is not scored in Germany). An unknown id lists the valid ones.
extract_textpath or text; optional regionThe text in the order an ATS reads it, line by line, plus what the layout measured (columns, tables, hidden text). For "why did it read my resume like this?"

Every tool returns readable text for the assistant and its result as structured JSON (structuredContent, described by each tool's outputSchema).

The resource rubric://default is the whole rubric as JSON.

Inputs.

  • Resume files: .pdf, .docx, .html, .txt, .md, or a .json JSON Resume or ats-resume document. Postings: .txt, .md, .pdf, .docx, or a saved .html page; a job_path of any other type is refused, since a posting's words come back in the answer.
  • Give absolute paths. ~/ is read as your home folder; any other relative path is read from the folder the server was started in.
  • Pasted text and job_text may be up to 200 000 characters. A posting, pasted or read from job_path, is scored on its first 20 000 characters; a longer one is cut there, and check_resume's parsingWarnings says so.
  • Files over 20 MB are refused, and so are folders, pipes, devices and network paths (\\host\share\…; on Windows also //host/share/…). So is a PDF with no text layer: an ATS cannot read a scan either.
  • language (check_resume, match_job) is en, de, fr, hi, es or pt; en reads English only. Without it, the language is detected from the resume and from the posting. It sets the language of both, so give it only when the resume was read in the wrong one: en with a German posting reads the posting as English too.
  • region is US, GB, DE, FR, IN, ES, BR, PT, MX, AR, CO or CL. Without it, the region is inferred from the resume.
  • target_ats is greenhouse, lever or taleo. It adds what that vendor documents publicly, each note with a link to the vendor's page. It never changes the score.

Advice. check_resume ends with advice, a list that is never scored. For a file (not pasted text) it covers the name (Resume_final_v3 (2).pdf reads as a draft; a Firstname-Lastname-Resume.pdf name is suggested), a size over 2 MB, a password, and tracked changes or comments left in a Word document. For a US resume it also covers details that can invite age bias. With target_ats it adds the vendor's notes.

Privacy

The server runs on your computer, over stdio. It makes no network requests and calls no AI model. It reads only the files you name in a request, a PDF, DOCX or HTML file in a separate process that is stopped after 60 seconds or when the request is cancelled, as many at once as your computer has CPU cores, and nothing leaves your machine except what your assistant itself sends to its model provider: the tool results it reads, which include text from your resume.

Intended use

[!IMPORTANT] This is a tool for candidates to check their own resume. Do not use it to screen, rank or reject other people. Using it that way may make it an automated employment decision tool under laws such as New York City Local Law 144 and the EU AI Act, which carry duties this package does not meet for you. See Intended use.

A score measures how well a resume parses and reads. It says nothing about the person.

From source

sh
git clone https://github.com/VeriWorkly/ats-engine.gitcd ats-enginenpm cinpm run buildclaude mcp add ats-engine -- node "$PWD/packages/mcp/dist/index.js"

License

MIT

來源:packages/mcp/README.md,提交 80ae160

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

15
  1. v0.15.1最新Oct 29, 2026
  2. v0.15.0Oct 24, 2026
  3. v0.14.0Oct 23, 2026
  4. v0.13.0Oct 23, 2026
  5. v0.12.0Oct 23, 2026
  6. v0.11.0Oct 23, 2026
  7. v0.10.0Oct 21, 2026
  8. v0.9.0Oct 21, 2026
  9. v0.8.0Oct 20, 2026
  10. v0.6.0Oct 19, 2026
  11. v0.5.0Oct 15, 2026
  12. v0.4.1Oct 14, 2026
  13. v0.4.0Oct 12, 2026
  14. v0.3.4Oct 11, 2026
  15. v0.3.3Oct 10, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分