# OCC Mexico Jobs, Salaries & Companies Scraper (`pmodinger/occ-mexico`) Actor

Extrae empleos de OCC México con cargo, empresa, ubicación, salario, fecha y compañía verificada. Scraper y API para recruiting, empleo y análisis laboral. Exporta en JSON, CSV o Excel e intégralo por API, webhooks y automatizaciones.

- **URL**: https://apify.com/pmodinger/occ-mexico.md
- **Developed by:** [Latin America Data](https://apify.com/pmodinger) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 1 total users, 0 monthly users, 90.9% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 empleo entregados

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

El **OCC Mexico Scraper** convierte datos públicos de [OCC México](https://www.occ.com.mx/) en registros estructurados y listos para análisis. Organiza vacantes publicadas por consulta para estudiar cargos, empleadores, ubicaciones, salarios, antigüedad y verificación de compañías.

Esta es una herramienta independiente y no oficial de **Latin America Data**. No está afiliada, patrocinada ni operada por OCC México.

### Qué puedes extraer con OCC Mexico Scraper

- ID, título de empleo y empresa contratante.
- Ubicación, salario y fecha relativa de publicación.
- Empresa verificada, logo y enlace corporativo.
- Posición, página y URL auditable de cada vacante.

Cada registro conserva `source_url` para comprobar la información. Los campos que la fuente no publique permanecen vacíos; el actor no inventa valores para completar el dataset.

### Casos de uso para datos de OCC México

- Mapear empresas contratando en México por profesión o ciudad.
- Comparar salarios y volumen de vacantes entre consultas.
- Crear alertas para candidatos, bolsas de trabajo y comunidades.
- Construir inteligencia de talento y generación de leads B2B.

### Qué preguntas puede responder este dataset

OCC aporta señales de empresa verificada, logo y perfil corporativo que ayudan a diferenciar empleadores dentro de una misma búsqueda. Puedes comparar salarios y ubicaciones, identificar compañías recurrentes y seguir la aparición de nuevas vacantes. El resultado es adecuado para inteligencia de talento, análisis sectorial y prospección B2B responsable.

### Cómo usar OCC Mexico Scraper

1. Abre la pestaña **Input** e indica la búsqueda, los filtros o las URLs necesarias.
2. Para una primera validación, usa un límite pequeño y revisa el formato de salida.
3. Pulsa **Start** y espera a que termine la ejecución en Apify Console.
4. Abre el dataset para revisar, descargar o integrar los resultados.

#### Principales campos de entrada

| Campo | Nombre en el formulario | Para qué sirve | Valor inicial |
| --- | --- | --- | --- |
| `query` | Término de búsqueda | Producto, marca, categoría, cargo o palabra clave que deseas buscar en OCC México. | `desarrollador` |
| `startPage` | Página inicial | Página desde la que comenzará la extracción. | `1` |
| `maxItems` | Máximo de resultados | Límite opcional de resultados. Déjalo vacío para continuar mientras existan registros nuevos. | opcional |
| `maxPages` | Máximo de páginas | Límite opcional de páginas. Déjalo vacío para recorrer toda la búsqueda disponible. | opcional |

Los límites de resultados y páginas sólo restringen la extracción cuando reciben un valor. Si quedan vacíos, el actor continúa mientras la fuente entregue registros nuevos dentro del alcance solicitado.

#### Ejemplo de entrada

```json
{
  "query": "desarrollador"
}
````

### Datos de salida de OCC Mexico Scraper

- Vacante: `job_id`, `title`, `company`, `company_url` y `logo_url`.
- Contexto: `location`, `salary`, `published_text` y `verified_company`.
- Búsqueda: `query`, `page` y `rank`.
- Auditoría: `source_url`, `search_url` y `scraped_at`.

Una fila usa `status=success` cuando contiene una vacante entregada. Una consulta válida sin coincidencias puede devolver `no_results`; una indisponibilidad controlada se identifica como `blocked` o `failed`. Estas filas operativas mantienen la ejecución auditable y no se cobran como resultado.

El dataset puede descargarse como **JSON, CSV o Excel**. También puedes consumir los registros desde la API de Apify sin cambiar el formato definido por el actor.

### API, integraciones y automatización para OCC México

Ejecuta este web scraper desde Python, JavaScript, cURL, MCP o la API de Apify. Para seguimiento continuo, guarda el input como tarea y conecta horarios o webhooks con tu base de datos, hoja de cálculo, CRM, BI o flujo de alertas.

### Precio de OCC Mexico Scraper

El precio actual es **USD 0.001 por vacante entregada**; 1.000 resultados exitosos representan USD 1.00 en eventos de resultado. Las filas `no_results`, `blocked` y `failed` no se cobran. El usuario asume el uso de la plataforma y puede definir límites para controlar volumen y costo.

### Preguntas frecuentes sobre OCC México

#### ¿OCC Mexico Scraper identifica empresas verificadas?

Sí, cuando OCC publica esa señal el campo `verified_company` la conserva para segmentar el dataset.

#### ¿Puedo programar un monitor de nuevas vacantes?

Sí. Ejecuta la misma consulta con un horario de Apify y compara IDs y fechas de publicación entre datasets.

### Otros scrapers y APIs de datos de México

- [Computrabajo Mexico Jobs & Salary Scraper](https://apify.com/pmodinger/computrabajo-mexico)
- [Autocosmos Mexico Used Cars & Price Scraper](https://apify.com/pmodinger/autocosmos-mexico)
- [Inmuebles24 Mexico Real Estate Data Scraper](https://apify.com/pmodinger/inmuebles24-mexico)

### Uso responsable

Usa los datos con una finalidad legítima, respeta la legislación y los términos aplicables, y valida decisiones importantes en los enlaces de origen. Las marcas y nombres comerciales pertenecen a sus respectivos titulares.

# Actor input Schema

## `query` (type: `string`):

Producto, marca, categoría, cargo o palabra clave que deseas buscar en OCC México.

## `maxItems` (type: `integer`):

Límite opcional de resultados. Déjalo vacío para continuar mientras existan registros nuevos.

## `maxPages` (type: `integer`):

Límite opcional de páginas. Déjalo vacío para recorrer toda la búsqueda disponible.

## `startPage` (type: `integer`):

Página desde la que comenzará la extracción.

## `requestTimeoutSecs` (type: `integer`):

Segundos máximos de espera antes de considerar fallida una solicitud.

## `retries` (type: `integer`):

Cantidad de intentos controlados ante una indisponibilidad temporal.

## `failOnNoResults` (type: `boolean`):

Si se activa, una búsqueda válida sin coincidencias finaliza como error.

## Actor input object example

```json
{
  "query": "desarrollador",
  "startPage": 1,
  "requestTimeoutSecs": 45,
  "retries": 3,
  "failOnNoResults": false
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("pmodinger/occ-mexico").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("pmodinger/occ-mexico").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call pmodinger/occ-mexico --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=pmodinger/occ-mexico",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "OCC Mexico Jobs, Salaries & Companies Scraper",
        "description": "Extrae empleos de OCC México con cargo, empresa, ubicación, salario, fecha y compañía verificada. Scraper y API para recruiting, empleo y análisis laboral. Exporta en JSON, CSV o Excel e intégralo por API, webhooks y automatizaciones.",
        "version": "0.1",
        "x-build-id": "6siGFAV27YIRAE6zA"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/pmodinger~occ-mexico/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-pmodinger-occ-mexico",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/pmodinger~occ-mexico/runs": {
            "post": {
                "operationId": "runs-sync-pmodinger-occ-mexico",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/pmodinger~occ-mexico/run-sync": {
            "post": {
                "operationId": "run-sync-pmodinger-occ-mexico",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "query"
                ],
                "properties": {
                    "query": {
                        "title": "Término de búsqueda",
                        "type": "string",
                        "description": "Producto, marca, categoría, cargo o palabra clave que deseas buscar en OCC México.",
                        "default": "desarrollador"
                    },
                    "maxItems": {
                        "title": "Máximo de resultados",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Límite opcional de resultados. Déjalo vacío para continuar mientras existan registros nuevos."
                    },
                    "maxPages": {
                        "title": "Máximo de páginas",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Límite opcional de páginas. Déjalo vacío para recorrer toda la búsqueda disponible."
                    },
                    "startPage": {
                        "title": "Página inicial",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Página desde la que comenzará la extracción.",
                        "default": 1
                    },
                    "requestTimeoutSecs": {
                        "title": "Tiempo máximo por solicitud",
                        "minimum": 15,
                        "maximum": 180,
                        "type": "integer",
                        "description": "Segundos máximos de espera antes de considerar fallida una solicitud.",
                        "default": 45
                    },
                    "retries": {
                        "title": "Reintentos automáticos",
                        "minimum": 1,
                        "maximum": 6,
                        "type": "integer",
                        "description": "Cantidad de intentos controlados ante una indisponibilidad temporal.",
                        "default": 3
                    },
                    "failOnNoResults": {
                        "title": "Fallar sin resultados",
                        "type": "boolean",
                        "description": "Si se activa, una búsqueda válida sin coincidencias finaliza como error.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
