naukri-job-scraper-mcp
🚀 Apify용 Naukri.com 채용 정보 스크래퍼
Naukri.com 전문 채용 정보 스크래퍼 - 고급 브라우저 자동화와 리지덴셜 프록시를 통해 포괄적인 채용 정보를 추출합니다. AI 에이전트, ChatGPT 플러그인, Claude 통합, MCP 기반 자동화 워크플로우에 완벽합니다! 🤖
🎯 주요 기능
✨ 포괄적인 데이터 추출
채용 ID, 제목, 회사명
급여 범위 및 보상 정보
경력 요구 사항(최소/최대 연차)
근무지 및 근무 형태 정보
필요 기술 및 기술 스택
전체 채용 공고 설명
채용 공고 직접 URL
🔒 안티봇 보호
현실적인 핑거프린팅을 갖춘 Camoufox 브라우저 자동화
Apify를 통한 리지덴셜 프록시 지원
인간과 유사한 행동 시뮬레이션
프록시 신뢰성을 위한 GeoIP 매칭
🛡️ 프로덕션 준비 완료
재시도 기능을 갖춘 견고한 오류 처리
우아한 폴백(누락된 필드는 null 처리)
Apify 데이터셋으로 실시간 데이터 푸시
포괄적인 로깅 및 모니터링
🤖 AI 친화적
Claude, ChatGPT, MCP 에이전트용으로 설계
깔끔하고 구조화된 JSON 출력
데이터 신선도를 위한 타임스탬프 추적
AI 워크플로우와 쉬운 통합
Related MCP server: iCIMS Careers API
📊 출력 스키마
각 채용 공고에는 다음 필드가 포함됩니다:
필드 | 유형 | 설명 | 예시 |
| string | 고유 채용 식별자 |
|
| string | 채용 제목 |
|
| string | 회사명 |
|
| string|null | 급여 정보 |
|
| integer|null | 최소 경력(년) |
|
| integer|null | 최대 경력(년) |
|
| string|null | 근무지 |
|
| array|null | 필요 기술 |
|
| string|null | 채용 공고 설명 |
|
| string|null | 채용 공고 직접 링크 |
|
| string | 스크래핑 타임스탬프(ISO 8601) |
|
🚀 빠른 시작
Apify 플랫폼에서 실행
이 저장소에서 새 Actor 생성
입력 매개변수 구성:
searchQuery: 채용 제목 또는 키워드(예: "software engineer")location: 도시 이름(예: "bangalore") 또는 전체 지역을 원하면 비워 둠maxResults: 스크래핑할 채용 건수(1-500)
Actor 실행 후 데이터셋에서 결과 확인
입력 예시
{
"searchQuery": "data scientist",
"location": "bangalore",
"maxResults": 100
}프리필 사용
일반적인 검색을 위한 편리한 프리필을 제공합니다:
🔧 Software Engineer - Bangalore
📊 Data Scientist - All India
📱 Product Manager - Mumbai
⚙️ DevOps Engineer - Pune
💻 Full Stack Developer - Hyderabad
🤖 AI 통합 예시
Claude Desktop (MCP)
Apify MCP 서버를 통해 Claude Desktop에서 이 actor를 직접 사용하세요:
{
"apify": {
"actorId": "your-actor-id",
"input": {
"searchQuery": "machine learning engineer",
"location": "bangalore",
"maxResults": 50
}
}
}ChatGPT Actions
Apify의 API를 사용하여 ChatGPT와 통합:
openapi: 3.0.0
paths:
/v2/acts/{actorId}/runs:
post:
summary: Scrape Naukri.com jobs
parameters:
- name: actorId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
properties:
searchQuery:
type: string
location:
type: string
maxResults:
type: integerPython 통합
from apify_client import ApifyClient
client = ApifyClient('your-apify-token')
# Start the actor
run = client.actor('your-actor-id').call(run_input={
'searchQuery': 'python developer',
'location': 'mumbai',
'maxResults': 100
})
# Fetch results
dataset_items = client.dataset(run['defaultDatasetId']).list_items().items
for job in dataset_items:
print(f"{job['title']} at {job['companyName']}")
print(f"Location: {job['location']}")
print(f"Salary: {job['salary']}")
print(f"Skills: {', '.join(job['skills'] or [])}")
print(f"URL: {job['jobUrl']}\n")Node.js 통합
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'your-apify-token' });
// Start the actor
const run = await client.actor('your-actor-id').call({
searchQuery: 'react developer',
location: 'bangalore',
maxResults: 50
});
// Fetch results
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(job => {
console.log(`${job.title} at ${job.companyName}`);
console.log(`Location: ${job.location}`);
console.log(`Skills: ${job.skills?.join(', ')}`);
});🔧 로컬 개발
사전 요구 사항
Python 3.11+
Docker(컨테이너화된 테스트용)
설정
# Clone the repository
git clone <your-repo-url>
cd naukri-job-scraper-mcp
# Install dependencies
pip install -r requirements.txt
# Set environment variables
export APIFY_TOKEN=your_apify_token
# Run locally
python -m srcApify CLI로 테스트
# Install Apify CLI
npm install -g apify-cli
# Login to Apify
apify login
# Run the actor locally
apify run📋 기술 세부 사항
기술 스택
언어: Python 3.11
브라우저 자동화: Camoufox(Firefox 기반 스텔스 브라우저)
HTML 파싱: BeautifulSoup4 + lxml
플랫폼: Apify Actor Framework
프록시: Apify Residential Proxies
아키텍처
┌─────────────────┐
│ Apify Platform │
└────────┬────────┘
│
┌────▼─────┐
│ Actor │
└────┬─────┘
│
┌────▼────────┐
│ Camoufox │ ◄──── Residential Proxy
│ Browser │
└────┬────────┘
│
┌────▼──────────┐
│ Naukri.com │
│ (Next.js SPA)│
└────┬──────────┘
│
┌────▼─────────┐
│ BeautifulSoup│
│ Parser │
└────┬─────────┘
│
┌────▼─────────┐
│ Apify Dataset│
└──────────────┘오류 처리
재시도 로직: 지수 백오프를 사용한 3회 시도
우아한 실패: 크래시 대신 누락된 필드에
null반환프록시 폴백: 리지덴셜 프록시 실패 시 프록시 없이 계속 진행
로깅: 디버깅을 위한 포괄적인 오류 로깅
🌟 사용 사례
🎯 채용 시장 조사: 급여 트렌드와 기술 수요 분석
🤖 AI 기반 채용 매칭: 개인 맞춤 추천을 위해 LLM에 데이터 공급
📈 채용 분석: 채용 트렌드 및 기업 활동 추적
🔔 채용 알림: 자동 알림 시스템 구축
💼 경력 설계: 업계별 경력 요구 사항 이해
🛠️ 커스터마이징
검색 매개변수 수정
src/main.py를 편집하여 사용자 정의 필터 추가:
# Add custom filters
experience_filter = actor_input.get('experienceRange', '')
salary_filter = actor_input.get('salaryMin', '')데이터 추출 확장
src/parser.py를 편집하여 추가 필드 추출:
# Add new field extraction
posted_date = _clean_text(job_card.select_one('.posted-date').get_text())
job_data['postedDate'] = posted_date📝 라이선스
MIT License - 상업용 또는 개인 프로젝트에 자유롭게 사용하세요.
🤝 기여
기여를 환영합니다! Pull Request를 자유롭게 제출해 주세요.
💬 지원
📧 이슈: GitHub에서 이슈를 열어주세요
💡 기능 요청: GitHub Issues를 통해 제출
📚 문서: Apify Documentation
🎉 AI로 제작됨
이 actor는 Claude AI의 도움으로 제작되었으며 AI 에이전트 워크플로우, MCP 통합, ChatGPT 자동화에 최적화되어 있습니다. 지능형 채용 검색 어시스턴트 구축에 완벽합니다! 🚀
AI 자동화 커뮤니티를 위해 ❤️로 제작됨
This server cannot be deployed
Maintenance
Related MCP Connectors
Scrape job listings from Greenhouse, Workable, Reed, RemoteOK and other boards. Pay per row.
AI salary, seniority, remote, visa and skills fields for LinkedIn, Indeed or any jobs dataset.
Scrape jobs from Greenhouse, Lever, Ashby, Workable, Recruitee, SmartRecruiters, Personio…
Search job postings across Indeed, LinkedIn, and more from one request - titles, companies
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search, filter, and extract job listings from LinkedIn using an automated headless browser with semantic AI filtering and deduplication.10 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables users to retrieve live job postings from any iCIMS career site, providing structured data including title, requisition ID, employer, locations, employment type, dates, salary, and apply links.-
- FlicenseNot gradedqualityBmaintenanceEnables automating job search and applications on Naukri.com, including bulk applying, profile management, application tracking, company research, and recruiter activity monitoring.-
- AlicenseNot gradedqualityBmaintenanceEnables natural-language job search and aggregation from multiple recruitment websites with zero configuration, providing filtered results and standardized output for AI assistants.64 npmISC