AI 어시스턴트가 결정론적 루브릭을 사용하여 이력서를 분석하고 점수를 매김으로써, 채용 관리 시스템(ATS)이 이력서를 읽는 방식을 시뮬레이션합니다.
다른 이름 VeriWorkly/ats-engine, ats-engine, @veriworkly/ats-engine-mcp
- 스타
- 3
- Tools
- 5
- 다운로드, 30일
- —
- 최신 버전
- 0.15.1
- 마지막 커밋
- 2026년 10월 28일
- 라이선스
- MIT
ATS Engine MCP란?
ATS Engine은(는) MCP server입니다. AI 어시스턴트가 결정론적 루브릭을 사용하여 이력서를 분석하고 점수를 매김으로써, 채용 관리 시스템(ATS)이 이력서를 읽는 방식을 시뮬레이션합니다. 5개 도구를 제공합니다. 예: check_resume, match_job, explain_rule.
프로젝트 README에서 생성된 요약
ATS Engine MCP server 정보
구직자는 Claude, Cursor, VS Code Copilot 또는 Claude Desktop을 통해 채용 관리 시스템이 문서를 처리하는 방식을 시뮬레이션하여 자신의 이력서를 평가할 수 있습니다. check_resume 및 match_job 도구를 사용하면 AI 모델의 주관적인 의견이 아닌 결정론적 루브릭을 기반으로 준비도 점수를 받을 수 있습니다. 이를 통해 동일한 파일에 대해 항상 동일한 점수가 부여되므로, 서식 오류나 누락된 키워드를 일관된 방식으로 식별할 수 있습니다.
서버는 npx를 통해 Node.js 22.12 이상의 환경에서 사용자의 로컬 머신에서 실행됩니다. PDF, DOCX, Markdown을 포함한 다양한 파일 형식을 처리하며, Greenhouse, Lever 또는 Taleo와 같은 특정 벤더의 동작을 시뮬레이션할 수도 있습니다. 서버는 stdio를 통해 작동하고 네트워크 요청을 하지 않으므로 파일은 사용자의 컴퓨터에 그대로 유지되며, 추출된 텍스트만 AI 어시스턴트의 모델 제공자에게 전송됩니다.
활용 사례
- 1이력서 파싱 정확도 검증어시스턴트에게 ATS가 이력서를 한 줄씩 어떻게 읽는지 보여달라고 요청하여 레이아웃 문제를 찾아냅니다.
- 2이력서와 직무 기술서 비교현재 CV가 특정 채용 공고와 얼마나 잘 일치하는지 확인하고 누락된 하드 스킬 또는 소프트 스킬을 식별합니다.
- 3점수 산정 실패 원인 디버깅이력서의 특정 부분이 왜 검사를 통과하지 못했는지 정확한 이유와 해결 방법을 알아냅니다.
- 4지역별 점수 산정 차이 이해국가별로 사진과 같은 특정 이력서 요소에 부여하는 가중치가 어떻게 다른지 학습합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
ATS Engine MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 ATS Engine MCP 설치
$ claude mcp add ats-engine -- npx -y @veriworkly/ats-engine-mcpCursor에 ATS Engine MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"ats-engine": {
"command": "npx",
"args": [
"-y",
"@veriworkly/ats-engine-mcp"
]
}
}
}VS Code에 ATS Engine MCP 설치
.vscode/mcp.json
{
"servers": {
"ats-engine": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@veriworkly/ats-engine-mcp"
]
}
}
}VS Code CLI에 ATS Engine MCP 설치
$ code --add-mcp '{"name":"ats-engine","type":"stdio","command":"npx","args":["-y","@veriworkly/ats-engine-mcp"]}'Claude Desktop에 ATS Engine MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"ats-engine": {
"command": "npx",
"args": [
"-y",
"@veriworkly/ats-engine-mcp"
]
}
}
}Codex에 ATS Engine MCP 설치
$ codex mcp add ats-engine -- npx -y @veriworkly/ats-engine-mcpCodex config.toml에 ATS Engine MCP 설치
~/.codex/config.toml
[mcp_servers.ats-engine] command = "npx" args = ["-y", "@veriworkly/ats-engine-mcp"]
Gemini CLI에 ATS Engine MCP 설치
$ gemini mcp add -s user ats-engine npx -- -y @veriworkly/ats-engine-mcpGemini settings.json에 ATS Engine MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"ats-engine": {
"command": "npx",
"args": [
"-y",
"@veriworkly/ats-engine-mcp"
]
}
}
}ATS Engine MCP 도구 5
README에서 감지됨check_resumematch_jobexplain_ruleextract_textlanguage
| check_resume | — | |
| match_job | — | |
| explain_rule | — | |
| extract_text | — | |
| language | — |
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨통과
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음통과
README
GitHub에서 보기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
claude mcp add ats-engine -- npx -y @veriworkly/ats-engine-mcp
On native Windows (not WSL), wrap npx in cmd /c:
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:
{
"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):
{
"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:
{
"servers": {
"ats-engine": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@veriworkly/ats-engine-mcp"]
}
}
}
Tools
| Tool | Input | Returns |
|---|---|---|
check_resume |
path or text; optional job_path or job_text; optional region; optional target_ats |
Readiness 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_job |
path or text; job_path or job_text (required); optional region |
Job 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_rule |
rule_id; optional region |
One 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_text |
path or text; optional region |
The 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.jsonJSON Resume or ats-resume document. Postings:.txt,.md,.pdf,.docx, or a saved.htmlpage; ajob_pathof 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
textandjob_textmay be up to 200 000 characters. A posting, pasted or read fromjob_path, is scored on its first 20 000 characters; a longer one is cut there, andcheck_resume'sparsingWarningssays 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) isen,de,fr,hi,esorpt;enreads 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:enwith a German posting reads the posting as English too.regionisUS,GB,DE,FR,IN,ES,BR,PT,MX,AR,COorCL. Without it, the region is inferred from the resume.target_atsisgreenhouse,leverortaleo. 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
git clone https://github.com/VeriWorkly/ats-engine.git
cd ats-engine
npm ci
npm run build
claude mcp add ats-engine -- node "$PWD/packages/mcp/dist/index.js"
License
MIT
ATS Engine MCP 질문
ATS Engine MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add ats-engine -- npx -y @veriworkly/ats-engine-mcp를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
ATS Engine MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
ATS Engine MCP는 어떤 도구를 제공하나요?
5개 도구를 제공합니다. 예: check_resume, match_job, explain_rule, extract_text, language.
데이터가 클라우드로 전송되나요?
아니요, 서버는 stdio를 통해 사용자의 컴퓨터에서 로컬로 실행되며 네트워크 요청을 수행하지 않습니다. 도구 결과값만 어시스턴트의 모델 제공자에게 전송됩니다.