Skip to main content
Glama
roshtarg-cpu

naukri-job-scraper-mcp

by roshtarg-cpu

🚀 Apify용 Naukri.com 채용 정보 스크래퍼

Apify Actor Python 3.11+ License: MIT

Naukri.com 전문 채용 정보 스크래퍼 - 고급 브라우저 자동화와 리지덴셜 프록시를 통해 포괄적인 채용 정보를 추출합니다. AI 에이전트, ChatGPT 플러그인, Claude 통합, MCP 기반 자동화 워크플로우에 완벽합니다! 🤖

🎯 주요 기능

포괄적인 데이터 추출

  • 채용 ID, 제목, 회사명

  • 급여 범위 및 보상 정보

  • 경력 요구 사항(최소/최대 연차)

  • 근무지 및 근무 형태 정보

  • 필요 기술 및 기술 스택

  • 전체 채용 공고 설명

  • 채용 공고 직접 URL

🔒 안티봇 보호

  • 현실적인 핑거프린팅을 갖춘 Camoufox 브라우저 자동화

  • Apify를 통한 리지덴셜 프록시 지원

  • 인간과 유사한 행동 시뮬레이션

  • 프록시 신뢰성을 위한 GeoIP 매칭

🛡️ 프로덕션 준비 완료

  • 재시도 기능을 갖춘 견고한 오류 처리

  • 우아한 폴백(누락된 필드는 null 처리)

  • Apify 데이터셋으로 실시간 데이터 푸시

  • 포괄적인 로깅 및 모니터링

🤖 AI 친화적

  • Claude, ChatGPT, MCP 에이전트용으로 설계

  • 깔끔하고 구조화된 JSON 출력

  • 데이터 신선도를 위한 타임스탬프 추적

  • AI 워크플로우와 쉬운 통합

Related MCP server: JobSpy MCP Server

📊 출력 스키마

각 채용 공고에는 다음 필드가 포함됩니다:

필드

유형

설명

예시

jobId

string

고유 채용 식별자

"290524001234"

title

string

채용 제목

"Senior Software Engineer"

companyName

string

회사명

"Tech Corp India"

salary

string|null

급여 정보

"15-25 Lacs P.A."

experienceMin

integer|null

최소 경력(년)

3

experienceMax

integer|null

최대 경력(년)

5

location

string|null

근무지

"Bangalore, Pune"

skills

array|null

필요 기술

["Python", "AWS", "Docker"]

jobDescription

string|null

채용 공고 설명

"We are looking for..."

jobUrl

string|null

채용 공고 직접 링크

"https://www.naukri.com/..."

scrapedAt

string

스크래핑 타임스탬프(ISO 8601)

"2024-08-21T10:30:00.000Z"

🚀 빠른 시작

Apify 플랫폼에서 실행

  1. 이 저장소에서 새 Actor 생성

  2. 입력 매개변수 구성:

    • searchQuery: 채용 제목 또는 키워드(예: "software engineer")

    • location: 도시 이름(예: "bangalore") 또는 전체 지역을 원하면 비워 둠

    • maxResults: 스크래핑할 채용 건수(1-500)

  3. 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: integer

Python 통합

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 src

Apify 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 자동화 커뮤니티를 위해 ❤️로 제작됨

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search and retrieve real-time job listings from the Technopark job portal using Puppeteer web scraping. Users can search by role or keyword to obtain job details including company name, closing date, and posted date.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables job search and scraping across multiple job boards (LinkedIn, Indeed, Glassdoor, etc.) with advanced filtering, directly from Claude Desktop or other MCP clients.
    5
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to search, filter, and extract job listings from LinkedIn using an automated headless browser with semantic AI filtering and deduplication.
    15
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to search and analyze LinkedIn jobs with advanced filters, salary requirements, and market insights through natural language.
    21
    MIT

View all related MCP servers

Related MCP Connectors

  • AI-powered browser automation — navigate, click, fill forms, and extract data from any website.

  • Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.

  • Enable language models to perform advanced AI-powered web scraping with enterprise-grade reliabili…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/roshtarg-cpu/naukri-job-scraper-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server