naukri-job-scraper-mcp
🚀 Scraper de empleos de Naukri.com para Apify
Scraper de empleos profesional para Naukri.com - Extrae listados de empleo completos con automatización avanzada del navegador y proxies residenciales. Perfecto para agentes de IA, plugins de ChatGPT, integraciones con Claude y flujos de automatización impulsados por MCP. 🤖
🎯 Características
✨ Extracción completa de datos
Job ID, título del empleo, nombre de la empresa
Rangos salariales y compensación
Requisitos de experiencia (años mínimos y máximos)
Ubicación y detalles del lugar de trabajo
Habilidades y tecnologías requeridas
Descripciones completas del empleo
URLs directas de los empleos
🔒 Protección Anti-Bot
Automatización del navegador Camoufox con fingerprinting realista
Soporte de proxies residenciales a través de Apify
Simulación de comportamiento humano
Coincidencia GeoIP para la autenticidad del proxy
🛡️ Listo para producción
Manejo robusto de errores con reintentos
Fallos controlados (
nullpara campos faltantes)Envío de datos en tiempo real al dataset de Apify
Registro y monitoreo completos
🤖 Amigable con la IA
Diseñado para agentes de IA de Claude, ChatGPT y MCP
Salida JSON limpia y estructurada
Marca de tiempo para la frescura de los datos
Integración sencilla con flujos de trabajo de IA
Related MCP server: iCIMS Careers API
📊 Esquema de salida
Cada listado de empleo incluye los siguientes campos:
Almacenar | Tipo | Descripción | Ejemplo |
| string | Identificador único del empleo |
|
| string | Título del empleo |
|
| string | Nombre de la empresa |
|
| string|null | Información de salario |
|
| integer|null | Experiencia mínima (años) |
|
| integer|null | Experiencia máxima (años) |
|
| string|null | Ubicación del empleo |
|
| array|null | Habilidades requeridas |
|
| string|null | Descripción del empleo |
|
| string|null | Enlace directo a la oferta |
|
| string | Marca de tiempo de extracción (ISO 8601) |
|
🚀 Inicio rápido
Ejecución en la plataforma Apify
Crea un nuevo Actor a partir de este repositorio
Configura los parámetros de entrada:
searchQuery: Título del empleo o palabras clave (p. ej., "software engineer")location: Nombre de la ciudad (p. ej., "bangalore") o déjalo vacío para todas las ubicacionesmaxResults: Número de empleos a extraer (1-500)
Ejecuta el Actor y accede a los resultados desde el dataset
Ejemplo de entrada
{
"searchQuery": "data scientist",
"location": "bangalore",
"maxResults": 100
}Uso de prefills
Proporcionamos prefills convenientes para búsquedas comunes:
🔧 Software Engineer - Bangalore
📊 Data Scientist - All India
📱 Product Manager - Mumbai
⚙️ DevOps Engineer - Pune
💻 Full Stack Developer - Hyderabad
🤖 Ejemplos de integración con IA
Claude Desktop (MCP)
Usa este actor directamente desde Claude Desktop mediante el servidor MCP de Apify:
{
"apify": {
"actorId": "your-actor-id",
"input": {
"searchQuery": "machine learning engineer",
"location": "bangalore",
"maxResults": 50
}
}
}ChatGPT Actions
Incluye este actor en tus flujos de trabajo de IA con 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: integerIntegración con 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")Integración con 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(', ')}`);
});🔧 Desarrollo local
Requisitos previos
Python 3.11+
Docker (para pruebas en contenedores)
Configuración
# 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 srcPruebas con la CLI de Apify
# Install Apify CLI
npm install -g apify-cli
# Login to Apify
apify login
# Run the actor locally
apify run📋 Detalles técnicos
Stack tecnológico
Lenguaje: Python 3.11
Automatización del navegador: Camoufox (navegador de incógnito basado en Firefox)
Análisis de HTML: BeautifulSoup4 + lxml
Plataforma: Apify Actor Framework
Proxy: Apify Residential Proxies
Arquitectura
┌─────────────────┐
│ Apify Platform │
└────────┬────────┘
│
┌────▼─────┐
│ Actor │
└────┬─────┘
│
┌────▼────────┐
│ Camoufox │ ◄──── Residential Proxy
│ Browser │
└────┬────────┘
│
┌────▼──────────┐
│ Naukri.com │
│ (Next.js SPA)│
└────┬──────────┘
│
┌────▼─────────┐
│ BeautifulSoup│
│ Parser │
└────┬─────────┘
│
┌────▼─────────┐
│ Apify Dataset│
└──────────────┘Manejo de errores
Lógica de reintentos: 3 intentos con retroceso exponencial
Fallos controlados: Devuelve
nullpara campos faltantes en lugar de detenerseReemplazo de proxy: Continúa sin proxy si falla el proxy residencial
Registro: Registro de errores completo para depuración
🌟 Casos de uso
🎯 Investigación del mercado laboral: Analiza tendencias salariales y demandas de habilidades
🤖 Matching de empleos con IA: Alimenta los datos a los LLMs para recomendaciones personalizadas
📈 Analítica de reclutamiento: Haz seguimiento a las tendencias de contratación y la actividad de las empresas
🔔 Alertas de empleo: Crea sistemas de notificación automatizados
💼 Planificación profesional: Comprende los requisitos de experiencia en todas las industrias
🛠️ Personalización
Modificar los parámetros de búsqueda
Edita src/main.py para añadir filtros personalizados:
# Add custom filters
experience_filter = actor_input.get('experienceRange', '')
salary_filter = actor_input.get('salaryMin', '')Ampliar la extracción de datos
Edita src/parser.py para extraer campos adicionales:
# Add new field extraction
posted_date = _clean_text(job_card.select_one('.posted-date').get_text())
job_data['postedDate'] = posted_date📝 Licencia
Licencia MIT: siéntete libre de usar este Actor para proyectos comerciales o personales.
🤝 Contribuciones
¡Las contribuciones son bienvenidas! Siéntete libre de enviar un Pull Request.
💬 Soporte
📧 Incidencias: Abre un issue en GitHub
💡 Solicitudes de características: Envíalas a través de GitHub Issues
📚 Documentación: 📚 Documentación de Apify
🎉 Construido con IA
Este Actor fue construido con la ayuda de Claude y está optimizado para flujos de trabajo con agentes de IA, integraciones de MCP y automatización de ChatGPT. ¡Perfecto para construir asistentes inteligentes de búsqueda de empleo! 🚀
Hecho con ❤️ para la comunidad de automatización con IA
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