# LatAm Jobs Feed: Computrabajo, OCC Mundial and Gupy Jobs (`ceibadata/latam-jobs-feed`) Actor

Job postings from Computrabajo (17 Latin American countries), OCC Mundial (Mexico) and Gupy (Brazil) in one clean schema: title, company, city, region, salary range, work mode, posting date and URL. "Only new jobs" mode for daily monitoring. No candidate or recruiter personal data.

- **URL**: https://apify.com/ceibadata/latam-jobs-feed.md
- **Developed by:** [Ceiba Data](https://apify.com/ceibadata) (community)
- **Categories:** Jobs, Lead generation
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 1,000 jobs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## LatAm Jobs Feed: Computrabajo, OCC Mundial and Gupy job postings

Get job postings from **Computrabajo** (17 Latin American countries), **OCC Mundial** (Mexico's largest job board) and **Gupy** (Brazil) in **one clean schema**, ready for spreadsheets, dashboards, salary research, lead generation or AI agents.

### What you get

| Field | Example |
|---|---|
| `source` | `computrabajo`, `occ` or `gupy` |
| `title` | Analista Contable |
| `company` | SERDAN - MISION TEMPORAL (`null` when the employer is confidential) |
| `country`, `city`, `region` | CO, Bogotá, D.C., Bogotá, D.C. |
| `salary` | `{ "min": 2000000, "max": 2000000, "period": "month", "currency": "COP" }` |
| `workplaceType` | remote, hybrid or on-site |
| `employmentType` | full-time, contractor, temporary, internship… (Gupy) |
| `postedAt` | ISO date ("Hace 2 horas", "Ayer" and "Hoy" are converted) |
| `tags` | Badges and listed benefits (for example "Vales de despensa" on OCC) |
| `applicationDeadline` | ISO date (Gupy) |
| `description` | Full text for Gupy jobs, with e-mails and phone numbers masked |
| `url` | Link to the original posting |

### How to use

1. Type one or more **keywords** (for example `analista`, `desarrollador`, `contador`).
2. Pick the **job boards** and the **Computrabajo countries** (`co`, `mx`, `pe`, `ar`, `cl`, `ec`, `ve`, `bo`, `gt`, `cr`, `do`, `sv`, `hn`, `ni`, `pa`, `py`, `uy`).
3. Optionally filter by Computrabajo city or region, OCC state (for example `Nuevo León`), Brazilian state, or work mode.
4. Run. Results from every search are interleaved, so even a small limit covers all of them.

OCC Mundial is opt-in: add `occ` to **Job boards** to include it (an empty selection searches Computrabajo and Gupy).

Run it with no input to get a free-standing sample (20 jobs for "analista").

#### Daily alerts: "Only new jobs"

Turn on **Only new jobs** and schedule the Actor. Each run returns only postings it has not delivered before for the same searches, so you pay only for new jobs.

#### Example input (API / AI agents)

```json
{
  "queries": ["analista de datos", "data analyst"],
  "sources": ["computrabajo", "occ", "gupy"],
  "countries": ["co", "mx", "pe"],
  "maxItems": 500,
  "onlyNew": true
}
```

### Use cases

- **Job alert services**: schedule it with *Only new jobs* and pay only for new postings.
- **Salary and labor-market research**: compare offers and salaries across countries in one schema.
- **Recruiters and staffing agencies**: find companies hiring for the roles you place (B2B leads).
- **AI agents**: let an agent search jobs in several countries and summarize the results.

### Use with AI agents (MCP)

Every Apify Actor is also a tool for AI agents. Add this Actor to Claude, Cursor, VS Code or any MCP client with the Apify MCP server:

```text
https://mcp.apify.com?tools=ceibadata/latam-jobs-feed
```

Or run it locally:

```bash
npx -y @apify/actors-mcp-server --tools ceibadata/latam-jobs-feed
```

Then just ask, for example:

> Find data analyst jobs in Colombia, Mexico and Brazil posted this week and summarize salaries and remote options.

From code, one call returns the results:

```bash
curl -X POST "https://api.apify.com/v2/acts/ceibadata~latam-jobs-feed/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H 'Content-Type: application/json' -d @input.json
```

### Pricing

Pay per result: you are charged per job delivered. No charge for pages without new results.

### Responsible data

- Only public job postings, read without logging in.
- No candidate data, no CVs, no recruiter names or contacts (e-mails and phone numbers in descriptions are masked).
- Respects each site's robots.txt and keeps a polite request rate.

### Support

Questions or a job board you need? Open an issue on this Actor. Ceiba Data is an AI-operated data studio.

# Actor input Schema

## `queries` (type: `array`):

Job titles or keywords, one per line (for example "analista", "desarrollador", "contador", "vendedor"). Each keyword is searched on every selected source and country.

## `sources` (type: `array`):

computrabajo = Computrabajo in the countries below; gupy = Gupy (mostly Brazil); occ = OCC Mundial (Mexico's largest job board). Empty = Computrabajo and Gupy.

## `countries` (type: `array`):

Two-letter country codes for Computrabajo: co, mx, pe, ar, cl, ec, ve, bo, gt, cr, do, sv, hn, ni, pa, py, uy. Empty = co.

## `location` (type: `string`):

Optional, for example "Medellín", "Antioquia" or "Ciudad de México".

## `occLocation` (type: `string`):

Optional Mexican state for OCC, for example "Nuevo León", "Jalisco" or "Ciudad de México".

## `gupyState` (type: `string`):

Optional Brazilian state, written in full (for example "São Paulo", "Minas Gerais").

## `gupyCity` (type: `string`):

Optional city (for example "Curitiba").

## `workplaceType` (type: `string`):

Optional: remote, hybrid or on-site.

## `includeDescription` (type: `boolean`):

Gupy returns the full description (contacts are masked). Computrabajo results include list data only.

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

Stop after delivering this many jobs in total.

## `maxItemsPerSearch` (type: `integer`):

Optional cap for each keyword × source × country, so one big search does not use up the whole limit.

## `maxPagesPerSearch` (type: `integer`):

Computrabajo pages have 20 jobs, Gupy pages 50.

## `onlyNew` (type: `boolean`):

Remember what earlier runs delivered for the same searches and return only jobs not seen before. Ideal for scheduled daily runs and alerts.

## `delayMs` (type: `integer`):

Polite pause between page requests. Minimum 1000.

## Actor input object example

```json
{
  "queries": [
    "analista"
  ],
  "sources": [
    "computrabajo",
    "gupy"
  ],
  "countries": [
    "co"
  ],
  "includeDescription": true,
  "maxItems": 100,
  "maxPagesPerSearch": 10,
  "onlyNew": false,
  "delayMs": 1500
}
```

# Actor output Schema

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

One row per job: source, country, title, company, city, region, salary, work mode, contract type, posting date, deadline and URL.

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

JSON record with delivered, new, skippedSeen, pages, bySearch, totalsOnSite and errors.

# 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 = {
    "queries": [
        "analista"
    ],
    "countries": [
        "co"
    ],
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("ceibadata/latam-jobs-feed").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 = {
    "queries": ["analista"],
    "countries": ["co"],
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("ceibadata/latam-jobs-feed").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "queries": [
    "analista"
  ],
  "countries": [
    "co"
  ],
  "maxItems": 100
}' |
apify call ceibadata/latam-jobs-feed --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ceibadata/latam-jobs-feed"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hSP88lj7pcYN7zxaH/builds/FkiTUwkr2zpGYmaMP/openapi.json
