Skip to main content
Glama
roshtarg-cpu

naukri-job-scraper-mcp

by roshtarg-cpu

🚀 Scraper de empleos de Naukri.com para Apify

Apify Actor Python 3.11+ License: MIT

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 (null para 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

jobId

string

Identificador único del empleo

"290524001234"

title

string

Título del empleo

"Senior Software Engineer"

companyName

string

Nombre de la empresa

"Tech Corp India"

salary

string|null

Información de salario

"15-25 Lacs P.A."

experienceMin

integer|null

Experiencia mínima (años)

3

experienceMax

integer|null

Experiencia máxima (años)

5

location

string|null

Ubicación del empleo

"Bangalore, Pune"

skills

array|null

Habilidades requeridas

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

jobDescription

string|null

Descripción del empleo

"We are looking for..."

jobUrl

string|null

Enlace directo a la oferta

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

scrapedAt

string

Marca de tiempo de extracción (ISO 8601)

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

🚀 Inicio rápido

Ejecución en la plataforma Apify

  1. Crea un nuevo Actor a partir de este repositorio

  2. 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 ubicaciones

    • maxResults: Número de empleos a extraer (1-500)

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

Integració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 src

Pruebas 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 null para campos faltantes en lugar de detenerse

  • Reemplazo 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

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