Skip to main content
Glama
roshtarg-cpu

naukri-job-scraper-mcp

by roshtarg-cpu

🚀 Скрейпер вакансий Naukri.com для Apify

Apify Actor Python 3.11+ License: MIT

Профессиональный скрейпер вакансий для Naukri.com — Извлекайте полные списки вакансий с помощью продвинутой автоматизации браузера и резидентных прокси. Идеально подходит для AI-агентов, плагинов ChatGPT, интеграций Claude и автоматизации на базе MCP! 🤖

🎯 Возможности

✨ Полное извлечение данных

  • ID вакансии, название, название компании

  • Диапазоны зарплат и компенсации

  • Требования к опыту (мин/макс лет)

  • Местоположение и детали рабочего места

  • Требуемые навыки и технологии

  • Полные описания вакансий

  • Прямые URL вакансий

🔒 Защита от ботов

  • Автоматизация браузера Camoufox с реалистичным фингерпринтингом

  • Поддержка резидентных прокси через Apify

  • Симуляция человеческого поведения

  • Сопоставление GeoIP для подлинности прокси

🛡️ Готовность к продакшену

  • Надёжная обработка ошибок с повторными попытками

  • Плавное снижение функциональности (null для отсутствующих полей)

  • Отправка данных в реальном времени в набор данных Apify

  • Полное логирование и мониторинг

🤖 Дружелюбность к ИИ

  • Создан для агентов Claude, ChatGPT и MCP

  • Чистый структурированный JSON-вывод

  • Отслеживание временных меток для свежести данных

  • Лёгкая интеграция с ИИ-процессами

Related MCP server: iCIMS Careers API

📊 Схема вывода

Каждое объявление о вакансии включает следующие поля:

Field

Type

Description

Example

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

🤖 Примеры интеграции с ИИ

Claude Desktop (MCP)

Используйте этот actor напрямую из Claude Desktop через сервер Apify MCP:

{
  "apify": {
    "actorId": "your-actor-id",
    "input": {
      "searchQuery": "machine learning engineer",
      "location": "bangalore",
      "maxResults": 50
    }
  }
}

Действия ChatGPT

Интегрируйте с ChatGPT с помощью API Apify:

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 для отсутствующих полей вместо сбоя

  • Запасной вариант прокси: Продолжает работу без прокси, если резидентный прокси не работает

  • Логирование: Полное логирование ошибок для отладки

🌟 Варианты использования

  • 🎯 Исследование рынка труда: Анализ тенденций зарплат и спроса на навыки

  • 🤖 Подбор вакансий с помощью ИИ: Передача данных в 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 — не стесняйтесь использовать этот actor для коммерческих или личных проектов.

🤝 Вклад

Вклад приветствуется! Пожалуйста, не стесняйтесь отправлять Pull Request.

💬 Поддержка

  • 📧 Проблемы: Откройте issue на GitHub

  • 💡 Запросы функций: Отправляйте через GitHub Issues

  • 📚 Документация: Документация Apify

🎉 Создано с помощью ИИ

Этот actor был создан с помощью Claude AI и оптимизирован для рабочих процессов ИИ-агентов, интеграций MCP и автоматизации ChatGPT. Идеально подходит для создания интеллектуальных помощников по поиску работы! 🚀


Сделано с ❤️ для сообщества автоматизации ИИ

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to search, filter, and extract job listings from LinkedIn using an automated headless browser with semantic AI filtering and deduplication.
    10 npm
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables 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.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables natural-language job search and aggregation from multiple recruitment websites with zero configuration, providing filtered results and standardized output for AI assistants.
    64 npm
    ISC