naukri-job-scraper-mcp
🚀 Скрейпер вакансий Naukri.com для Apify
Профессиональный скрейпер вакансий для 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 |
| 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
🤖 Примеры интеграции с ИИ
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. Идеально подходит для создания интеллектуальных помощников по поиску работы! 🚀
Сделано с ❤️ для сообщества автоматизации ИИ
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