ninehire-mcp-server

SUNGMYEONGGI/ninehire-mcp-server

3.2

If you are the rightful owner of ninehire-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The NineHire MCP server is designed to automate HR workflows using natural language processing.

Tools
  1. ninehire_get_jobs

    Retrieve a list of job postings with various filtering options.

  2. ninehire_get_job_detail

    Fetch detailed information about a specific job posting.

  3. ninehire_search_jobs

    Search job postings using keywords and other criteria.

λ‚˜μΈν•˜μ΄μ–΄ MCP μ„œλ²„

λ‚˜μΈν•˜μ΄μ–΄(NineHire) HR μžλ™ν™” ν”Œλž«νΌμ„ μœ„ν•œ MCP(Model Context Protocol) μ„œλ²„μž…λ‹ˆλ‹€. 이 μ„œλ²„λ₯Ό 톡해 μžμ—°μ–΄λ‘œ μ±„μš© μ›Œν¬ν”Œλ‘œμš°λ₯Ό μžλ™ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸš€ μ£Όμš” κΈ°λŠ₯

  • μ±„μš© 곡고 관리: μ±„μš© 곡고 λͺ©λ‘ 쑰회, 검색, 상세 정보 쑰회
  • μžμ—°μ–΄ μΈν„°νŽ˜μ΄μŠ€: MCPλ₯Ό ν†΅ν•œ μžμ—°μ–΄ 기반 μƒν˜Έμž‘μš©
  • μ‹€μ‹œκ°„ API 연동: λ‚˜μΈν•˜μ΄μ–΄ 곡식 API와 μ‹€μ‹œκ°„ 연동
  • μœ μ—°ν•œ 필터링: 직ꡰ, κ³ μš©ν˜•νƒœ, νƒœκ·Έ λ“± λ‹€μ–‘ν•œ 쑰건으둜 검색
  • 비동기 처리: κ³ μ„±λŠ₯ 비동기 API 호좜

πŸ“‹ μš”κ΅¬μ‚¬ν•­

  • Python: 3.8 이상
  • λ‚˜μΈν•˜μ΄μ–΄ API ν‚€: μ—”ν„°ν”„λΌμ΄μ¦ˆ μš”κΈˆμ œ ν•„μš”
  • 운영체제: Windows, macOS, Linux 지원

πŸ› οΈ μ„€μΉ˜ 및 μ„€μ •

1. ν”„λ‘œμ νŠΈ 클둠

git clone <repository-url>
cd ninehire-mcp

2. νŒ¨ν‚€μ§€ μ„€μΉ˜

# pip μ‚¬μš©
pip install -e .

# λ˜λŠ” 개발 μ˜μ‘΄μ„±κΉŒμ§€ μ„€μΉ˜
pip install -e ".[dev]"

3. ν™˜κ²½ λ³€μˆ˜ μ„€μ •

.env νŒŒμΌμ„ μƒμ„±ν•˜κ³  λ‚˜μΈν•˜μ΄μ–΄ API ν‚€λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€:

cp env.example .env

.env 파일 λ‚΄μš©:

# λ‚˜μΈν•˜μ΄μ–΄ API μ„€μ • (ν•„μˆ˜)
NINEHIRE_API_KEY=your_ninehire_api_key_here
NINEHIRE_API_BASE_URL=https://api.ninehire.com/api/v1

# MCP μ„œλ²„ μ„€μ • (선택사항)
MCP_SERVER_NAME=ninehire-mcp-server
MCP_SERVER_VERSION=1.0.0

# λ‘œκΉ… μ„€μ • (선택사항)
LOG_LEVEL=INFO
DEBUG=False

4. API μ—°κ²° ν…ŒμŠ€νŠΈ

python test_client.py

성곡 μ‹œ λ‹€μŒκ³Ό 같은 좜λ ₯을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€:

πŸš€ λ‚˜μΈν•˜μ΄μ–΄ MCP μ„œλ²„ ν…ŒμŠ€νŠΈ μ‹œμž‘

πŸ”§ μ„€μ • 정보:
  - API 베이슀 URL: https://api.ninehire.com/api/v1
  - 디버그 λͺ¨λ“œ: False

▢️  API μ—°κ²° ν…ŒμŠ€νŠΈ μ‹œμž‘
πŸ” λ‚˜μΈν•˜μ΄μ–΄ API μ—°κ²° ν…ŒμŠ€νŠΈ 쀑...
βœ… API μ—°κ²° 성곡!
βœ… API μ—°κ²° ν…ŒμŠ€νŠΈ μ™„λ£Œ

πŸ“Š ν…ŒμŠ€νŠΈ κ²°κ³Ό: 4/4 톡과
πŸŽ‰ λͺ¨λ“  ν…ŒμŠ€νŠΈκ°€ μ„±κ³΅ν–ˆμŠ΅λ‹ˆλ‹€!

🎯 MCP μ„œλ²„ μ‹€ν–‰

직접 μ‹€ν–‰

python -m ninehire_mcp.server

CLI λͺ…λ Ήμ–΄ μ‹€ν–‰

ninehire-mcp-server

슀크립트 μ‹€ν–‰

# 개발 λͺ¨λ“œλ‘œ μ‹€ν–‰
DEBUG=True python -m ninehire_mcp.server

# 둜그 레벨 λ³€κ²½ν•˜μ—¬ μ‹€ν–‰
LOG_LEVEL=DEBUG python -m ninehire_mcp.server

μ„œλ²„κ°€ μ„±κ³΅μ μœΌλ‘œ μ‹œμž‘λ˜λ©΄ λ‹€μŒκ³Ό 같은 λ©”μ‹œμ§€κ°€ 좜λ ₯λ©λ‹ˆλ‹€:

INFO - λ‚˜μΈν•˜μ΄μ–΄ MCP μ„œλ²„ μ΄ˆκΈ°ν™” μ‹œμž‘
INFO - λ‚˜μΈν•˜μ΄μ–΄ API μ—°κ²° ν…ŒμŠ€νŠΈ 성곡
INFO - λ‚˜μΈν•˜μ΄μ–΄ MCP μ„œλ²„ μ΄ˆκΈ°ν™” μ™„λ£Œ
INFO - λ‚˜μΈν•˜μ΄μ–΄ MCP μ„œλ²„ μ‹œμž‘: ninehire-mcp-server v1.0.0

πŸ”§ μ‚¬μš© κ°€λŠ₯ν•œ MCP 도ꡬ

1. ninehire_get_jobs - μ±„μš© 곡고 λͺ©λ‘ 쑰회

μ±„μš© 곡고 λͺ©λ‘μ„ μ‘°νšŒν•©λ‹ˆλ‹€.

νŒŒλΌλ―Έν„°:

  • page (선택사항): νŽ˜μ΄μ§€ 번호 (κΈ°λ³Έκ°’: 1)
  • limit (선택사항): νŽ˜μ΄μ§€λ‹Ή κ²°κ³Ό 수 (κΈ°λ³Έκ°’: 10, μ΅œλŒ€: 100)
  • title (선택사항): μ±„μš© 곡고 제λͺ©μœΌλ‘œ 검색
  • tags (선택사항): νƒœκ·Έ λͺ©λ‘μœΌλ‘œ 필터링
  • job_group (선택사항): 직ꡰ으둜 필터링
  • employment_type (선택사항): 고용 ν˜•νƒœλ‘œ 필터링
  • include_unpublished (선택사항): 마감된 곡고 포함 μ—¬λΆ€
  • include_private (선택사항): λΉ„κ³΅κ°œ 곡고 포함 μ—¬λΆ€

μ‚¬μš© μ˜ˆμ‹œ:

{
  "page": 1,
  "limit": 20,
  "job_group": "개발",
  "employment_type": "full_time"
}

2. ninehire_get_job_detail - μ±„μš© 곡고 상세 쑰회

νŠΉμ • μ±„μš© 곡고의 상세 정보λ₯Ό μ‘°νšŒν•©λ‹ˆλ‹€.

νŒŒλΌλ―Έν„°:

  • job_id (ν•„μˆ˜): μ‘°νšŒν•  μ±„μš© 곡고 ID
  • language (선택사항): μ–Έμ–΄ μ„€μ • ("korean" λ˜λŠ” "english")

μ‚¬μš© μ˜ˆμ‹œ:

{
  "job_id": "job_12345",
  "language": "korean"
}

3. ninehire_search_jobs - μ±„μš© 곡고 검색

ν‚€μ›Œλ“œμ™€ 쑰건으둜 μ±„μš© 곡고λ₯Ό κ²€μƒ‰ν•©λ‹ˆλ‹€.

νŒŒλΌλ―Έν„°:

  • keyword (선택사항): 검색 ν‚€μ›Œλ“œ
  • job_group (선택사항): 직ꡰ
  • employment_type (선택사항): 고용 ν˜•νƒœ
  • tags (선택사항): νƒœκ·Έ λͺ©λ‘
  • affiliation (선택사항): μ†Œμ†
  • page (선택사항): νŽ˜μ΄μ§€ 번호
  • limit (선택사항): κ²°κ³Ό 수 μ œν•œ

μ‚¬μš© μ˜ˆμ‹œ:

{
  "keyword": "λ°±μ—”λ“œ 개발자",
  "job_group": "개발",
  "employment_type": "full_time",
  "tags": ["Python", "Django"],
  "limit": 10
}

πŸŽͺ μžμ—°μ–΄ μ‚¬μš© μ˜ˆμ‹œ

MCP ν΄λΌμ΄μ–ΈνŠΈ(Claude, ChatGPT λ“±)μ—μ„œ λ‹€μŒκ³Ό 같이 μžμ—°μ–΄λ‘œ μš”μ²­ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

μ±„μš© 곡고 쑰회

  • "λ‚˜μΈν•˜μ΄μ–΄μ—μ„œ μ΅œμ‹  μ±„μš© 곡고 10개λ₯Ό λ³΄μ—¬μ€˜"
  • "개발 직ꡰ의 μ •κ·œμ§ μ±„μš© 곡고λ₯Ό μ°Ύμ•„μ€˜"
  • "Python νƒœκ·Έκ°€ μžˆλŠ” μ±„μš© 곡고λ₯Ό κ²€μƒ‰ν•΄μ€˜"

상세 정보 쑰회

  • "μ±„μš© 곡고 ID job_12345의 상세 정보λ₯Ό μ•Œλ €μ€˜"
  • "첫 번째 μ±„μš© 곡고의 μžμ„Έν•œ λ‚΄μš©μ„ λ³΄μ—¬μ€˜"

쑰건별 검색

  • "λ°±μ—”λ“œ 개발자 μ±„μš© 곡고λ₯Ό μ°Ύμ•„μ€˜"
  • "μŠ€νƒ€νŠΈμ—…μ—μ„œ ν”„λ¦¬λžœμ„œλ‘œ 일할 수 μžˆλŠ” 곡고가 μžˆλ‚˜?"
  • "마감일이 μž„λ°•ν•œ μ±„μš© 곡고λ₯Ό λ³΄μ—¬μ€˜"

πŸ› 문제 ν•΄κ²°

API ν‚€ κ΄€λ ¨ 였λ₯˜

❌ λ‚˜μΈν•˜μ΄μ–΄ API ν‚€κ°€ μ„€μ •λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

해결방법:

  1. .env νŒŒμΌμ— NINEHIRE_API_KEY μ„€μ • 확인
  2. λ‚˜μΈν•˜μ΄μ–΄ κ΄€λ¦¬μž νŽ˜μ΄μ§€μ—μ„œ API ν‚€ λ°œκΈ‰ 확인
  3. μ—”ν„°ν”„λΌμ΄μ¦ˆ μš”κΈˆμ œ κ°€μž… μ—¬λΆ€ 확인

API μ—°κ²° μ‹€νŒ¨

❌ λ‚˜μΈν•˜μ΄μ–΄ API μ—°κ²° μ‹€νŒ¨!

해결방법:

  1. 인터넷 μ—°κ²° μƒνƒœ 확인
  2. API ν‚€ μœ νš¨μ„± 확인
  3. λ°©ν™”λ²½ μ„€μ • 확인
  4. API 베이슀 URL 확인 (https://api.ninehire.com/api/v1)

μ˜μ‘΄μ„± 였λ₯˜

ModuleNotFoundError: No module named 'mcp'

해결방법:

pip install -e ".[dev]"

πŸ“š 개발자 κ°€μ΄λ“œ

μ½”λ“œ ꡬ쑰

ninehire_mcp/
β”œβ”€β”€ __init__.py                 # νŒ¨ν‚€μ§€ μ΄ˆκΈ°ν™”
β”œβ”€β”€ config.py                   # μ„€μ • 관리
β”œβ”€β”€ server.py                   # MCP μ„œλ²„ 메인 μ½”λ“œ
β”œβ”€β”€ api/                        # API ν΄λΌμ΄μ–ΈνŠΈ
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ client.py              # λ‚˜μΈν•˜μ΄μ–΄ API ν΄λΌμ΄μ–ΈνŠΈ
β”‚   └── types.py               # API νƒ€μž… μ •μ˜
└── tools/                      # MCP 도ꡬ듀
    β”œβ”€β”€ __init__.py
    β”œβ”€β”€ base.py                # 도ꡬ 베이슀 클래슀
    └── jobs.py                # μ±„μš© 곡고 κ΄€λ ¨ 도ꡬ

μƒˆλ‘œμš΄ 도ꡬ μΆ”κ°€

  1. ninehire_mcp/tools/ 디렉토리에 μƒˆ 파일 생성
  2. BaseTool 클래슀λ₯Ό μƒμ†λ°›λŠ” 도ꡬ 클래슀 κ΅¬ν˜„
  3. schema 속성과 execute λ©”μ„œλ“œ κ΅¬ν˜„
  4. tools/__init__.py에 μƒˆ 도ꡬ μΆ”κ°€

ν…ŒμŠ€νŠΈ μ‹€ν–‰

# κΈ°λ³Έ ν…ŒμŠ€νŠΈ
python test_client.py

# νŠΉμ • κΈ°λŠ₯만 ν…ŒμŠ€νŠΈ
python -c "
import asyncio
from test_client import test_api_connection
asyncio.run(test_api_connection())
"

λ‘œκΉ… μ„€μ •

import logging

# 디버그 λͺ¨λ“œ ν™œμ„±ν™”
logging.getLogger('ninehire_mcp').setLevel(logging.DEBUG)

# λ˜λŠ” ν™˜κ²½λ³€μˆ˜λ‘œ μ„€μ •
DEBUG=True LOG_LEVEL=DEBUG python -m ninehire_mcp.server

πŸ”„ WebHook 연동 (ν–₯ν›„ μ˜ˆμ •)

λ‚˜μΈν•˜μ΄μ–΄ μ›Ήν›… 이벀트λ₯Ό μ²˜λ¦¬ν•˜μ—¬ μ‹€μ‹œκ°„ μ›Œν¬ν”Œλ‘œμš° μžλ™ν™”λ₯Ό 지원할 μ˜ˆμ •μž…λ‹ˆλ‹€.

지원 μ˜ˆμ • 이벀트:

  • μ§€μ›μž 합격/λΆˆν•©κ²© μƒνƒœ λ³€κ²½
  • μƒˆλ‘œμš΄ μ§€μ›μ„œ μ ‘μˆ˜
  • λ©΄μ ‘ 일정 λ³€κ²½
  • μ±„μš© 곡고 μƒνƒœ λ³€κ²½

πŸ“„ λΌμ΄μ„ μŠ€

MIT License

🀝 κΈ°μ—¬ν•˜κΈ°

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ž 지원

  • 이슈 리포트: GitHub Issues
  • λ¬Έμ˜μ‚¬ν•­: []
  • λ‚˜μΈν•˜μ΄μ–΄ λ¬Έμ„œ: https://guide.ninehire.com

Happy Hiring with NineHire MCP! πŸŽ‰