# Computrabajo Scraper: Latin America Jobs & Salaries (`precious_bathmat/computrabajo-job-scraper`) Actor

Scrape jobs from Computrabajo in Mexico, Colombia, Argentina, Peru, Chile and 12 more countries: title, company and rating, city, salary and period, remote or hybrid, posted date, contract, plus a salary report per search. No login.

- **URL**: https://apify.com/precious_bathmat/computrabajo-job-scraper.md
- **Developed by:** [Mariam Ahmed](https://apify.com/precious_bathmat) (community)
- **Categories:** Jobs, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 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

## Computrabajo Scraper: Latin America Jobs & Salaries

Scrape **jobs from Computrabajo**, the biggest job site in Latin America, in **17 countries** (Mexico, Colombia, Argentina, Peru, Chile, Ecuador, Venezuela, Guatemala, Costa Rica, Panama, Uruguay, Paraguay, Bolivia, El Salvador, Honduras, Nicaragua, Dominican Republic) with no login, and get a **salary report for every search**:

- **Every job**: title, company and its rating, city and state, salary as a number with its period (monthly, fortnightly, weekly, daily, hourly) and a **monthly equivalent**, commission on top, remote / hybrid / on-site, posted date, featured and urgent flags, link
- **Salaries in every local format** read correctly ("$ 1.750.905,00", "S/. 4.000,00", "35,000.00 $"), in the country's currency; placeholder amounts like "$ 11.111" are flagged and left out of the report
- **Optional job details**: full description, contract type, schedule, minimum education, years of experience, exact posting date and expiry
- **Filters**: country, state or city, remote only, posted within (since yesterday to last month)
- **Report per search**: monthly salary (median and middle half), salary by city, commission share, remote and hybrid share, top companies with ratings, plus Computrabajo's counts over **every** job in the search by state, category, contract, schedule and experience

### What does this Computrabajo scraper do?

```
Computrabajo · "python" · Mexico · 1,315 jobs
 Salary shown in 61% of ads · median MXN 20,000 a month (16,000 to 35,000)
 25% hybrid, 6% remote · 13% of ads hide the employer
 Most jobs: Ciudad de México DF, Estado de México, Jalisco
```

1. Enter **keywords** and pick **countries**; optionally add **states or cities** ("Jalisco", "Monterrey", "Bogotá").
2. Choose filters: **remote only**, **posted within**, newest first.
3. You get **one row per job** and **one report per keyword, country and place**.

```mermaid
flowchart LR
    A[Keywords,<br/>countries,<br/>states or cities] --> B[Computrabajo<br/>search]
    B --> C[Jobs<br/>salary + period,<br/>company rating,<br/>remote or hybrid]
    C -. optional .-> D[Job pages<br/>contract, schedule,<br/>education, experience]
    C --> E[Report<br/>salary by city,<br/>remote share,<br/>companies, states]
```

### Who is it for?

- **Recruiters and staffing agencies** across Latin America: who is hiring, where, and what they pay
- **HR and compensation teams**: monthly salary benchmarks by role, country and city from live ads
- **Job seekers and career sites**: real advertised pay for a role before applying
- **Nearshoring and expansion teams**: compare developer, sales and nursing pay across Mexico, Colombia, Argentina, Peru and Chile
- **Analysts and researchers**: labour-market supply, remote share and contract types by country

### What data do you get?

**Jobs** (dataset, one row per job)

| Field | What it tells you |
|---|---|
| `id`, `title`, `url` | The job |
| `company`, `companyRating`, `companyUrl`, `isConfidentialCompany` | The employer, its Computrabajo rating, or a hidden employer ("Importante empresa del sector") |
| `location`, `city`, `region`, `country`, `countryCode` | Where |
| `salary`, `salaryPeriod`, `currency`, `monthlySalary`, `plusCommission`, `salaryText` | Pay as shown, its period, and the monthly equivalent |
| `salaryLooksPlaceholder` | True for amounts like "11.111" or far below the minimum wage |
| `workplace` | `remote`, `hybrid` or `on-site` |
| `postedAt`, `postedText`, `isFeatured`, `isUrgent` | When it was posted, and ad flags |
| With **job details**: `description`, `contract`, `schedule`, `education`, `experienceYears`, `employmentType`, `industry`, `validThrough`, `searchKeywords` | The full ad |

**Report** (`REPORTS`, one per keyword, country and place)

| Field | What it tells you |
|---|---|
| `totalOnComputrabajo`, `jobsRead` | Every job in the search, and how many were read |
| `salaryShownPercent`, `monthlySalary`, `monthlySalaryByCity`, `commissionPercent` | Pay: median and middle half, by city, and how often commission is added |
| `workplace`, `confidentialCompanyPercent`, `urgentPercent` | Remote and hybrid share, hidden employers, urgent ads |
| `topCompanies`, `topCities`, `freshness`, `highestPaid` | Among the jobs read |
| `allJobsByRegion`, `allJobsByCategory`, `allJobsByContract`, `allJobsBySchedule`, `allJobsByExperience`, `allJobsByWorkplace`, `allJobsByDate` | Computrabajo's counts over **every** job in the search |

### Example: 17 October 2026

Three roles in five countries, 300 jobs each: **4,500 jobs and 15 reports in 127 seconds**.

| Search | Jobs on Computrabajo | Salary shown | Median monthly salary (middle half) | Hybrid / remote |
|---|---|---|---|---|
| Vendedor, Mexico | 37,270 | 82% | MXN 9,740 (9,000 – 13,200) | 28% / 0.3% |
| Python, Mexico | 1,315 | 61% | MXN 20,000 (16,000 – 35,000) | 25% / 6% |
| Python, Colombia | 928 | 55% | COP 3,500,000 (2,460,250 – 5,000,000) | 25% / 6% |
| Enfermera, Colombia | 5,432 | 72% | COP 2,133,750 (1,750,905 – 3,000,000) | 1% / 0% |
| Python, Argentina | 342 | 33% | ARS 1,300,000 (1,100,000 – 1,359,122) | 28% / 8% |
| Vendedor, Peru | 17,168 | 39% | PEN 1,430 (1,230 – 2,000) | 9% / 4% |
| Python, Chile | 831 | 35% | CLP 1,500,000 (1,200,000 – 1,875,000) | 44% / 3% |

- **Mexico and Colombia show pay on most ads** (55% to 82%); Argentina, Peru and Chile on about a third.
- With **job details** on, a run of 402 jobs in Jalisco and Bogotá got the full ad for 401 of them in 219 seconds: contract type, schedule, education and years of experience on almost every job.

### Pricing

**$0.001 per job**, **$0.001 per job with details** (only when details are on) and **$0.02 per search report**.

- 300 jobs with a report: **$0.32**
- The run above (4,500 jobs, 15 reports): **$4.80**
- 300 jobs with details and a report: **$0.62**

### Good to know

- **Salaries** are one amount and a period, as the ad shows them, in the local currency. `monthlySalary` converts fortnightly, weekly, daily and hourly pay to a month. Many ads, especially in Argentina, Peru and Chile, show no salary.
- **Posting dates**: search cards say "Hace 3 días"; `postedAt` is the day that points to. With job details on, it is the exact date.
- **Places** must be a state, province or city Computrabajo knows in that country; searches it does not recognise are listed in `RUN_SUMMARY`.
- **Hidden employers**: some ads hide the company name; they are marked `isConfidentialCompany`.
- **No contact details**: emails and phone numbers in descriptions are hidden.
- Data comes from **Computrabajo's public job search**. **Not affiliated with Computrabajo.**

### Input

| Field | Meaning |
|---|---|
| **Keywords** | One search each (Spanish job titles work best: "vendedor", "contador", "desarrollador") |
| **Countries** | Any of the 17 (default Mexico) |
| **Locations** | States, provinces or cities; empty = the whole country |
| **Remote jobs only** | Only remote ads |
| **Posted within** | Since yesterday, 3 days, a week, 15 days, a month |
| **Sort** | Newest first or most relevant |
| **Jobs per search** | 1 to 5,000 (default 200) |
| **Job details** | Off by default |
| **Reports** | On by default |

### Integrations

Export to JSON, CSV, Excel or Google Sheets, or connect through the Apify API, webhooks, Make, Zapier and n8n. **Schedule it daily** with "Since yesterday" for a feed of new jobs in your countries.

# Actor input Schema

## `keywords` (type: `array`):

Job titles or skills, one search each, e.g. "vendedor", "python", "enfermera", "atención a clientes".

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

Each keyword is searched in each country.

## `locations` (type: `array`):

Optional states, provinces or cities, e.g. "Jalisco", "Monterrey", "Bogotá", "Lima". Each keyword is searched in each. Empty = the whole country.

## `remoteOnly` (type: `boolean`):

Only jobs Computrabajo lists as remote (locations are then ignored).

## `postedWithinDays` (type: `string`):

Only jobs posted in this period.

## `sort` (type: `string`):

Which jobs are read first when a search has more than the maximum.

## `maxJobsPerSearch` (type: `integer`):

Most jobs to read per keyword, country and location (1 to 5,000).

## `includeDetails` (type: `boolean`):

Open each job page for the full description, contract type, schedule, education, years of experience, exact posting date and expiry. Charged per job.

## `includeReports` (type: `boolean`):

One report per search: monthly salary (median and range), salary by city, commission share, remote and hybrid share, top companies and their ratings, plus Computrabajo's counts over every job in the search by region, category, contract, schedule and experience.

## Actor input object example

```json
{
  "keywords": [
    "vendedor"
  ],
  "countries": [
    "mx"
  ],
  "remoteOnly": false,
  "postedWithinDays": "any",
  "sort": "date",
  "maxJobsPerSearch": 200,
  "includeDetails": false,
  "includeReports": true
}
```

# Actor output Schema

## `jobs` (type: `string`):

One row per job: title, company and rating, city and region, salary, period and monthly equivalent, commission, remote/hybrid/on-site, posted date, link (plus contract, schedule and description with job details on).

## `reports` (type: `string`):

Per search: monthly salary, salary by city, remote share, top companies, and counts over every job by region, category, contract and experience.

## `reportsCsv` (type: `string`):

One flat row per search.

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

Requests, problems and the limits of the data.

# 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 = {
    "keywords": [
        "vendedor"
    ],
    "countries": [
        "mx"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("precious_bathmat/computrabajo-job-scraper").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 = {
    "keywords": ["vendedor"],
    "countries": ["mx"],
}

# Run the Actor and wait for it to finish
run = client.actor("precious_bathmat/computrabajo-job-scraper").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 '{
  "keywords": [
    "vendedor"
  ],
  "countries": [
    "mx"
  ]
}' |
apify call precious_bathmat/computrabajo-job-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,precious_bathmat/computrabajo-job-scraper"
        }
    }
}
```

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/lM4bBUmbc4aZot2mb/builds/sRr8nQX1LmZ1nA56M/openapi.json
