OCC Mundial Jobs Scraper
Pricing
from $10.00 / 1,000 jobs
OCC Mundial Jobs Scraper
Every job on OCC Mundial, Mexico's biggest job board, in one run: salary ranges in MXN, category, contract, work model, education, benefits, skills and full descriptions. Recruiters, HR teams and analysts get 1,000 jobs in under a minute.

💼 OCC Mundial Jobs Scraper
Extract job listings from OCC Mundial, Mexico's biggest job board: title, company, salary (as shown and as numbers in MXN), city, state, category, contract, schedule, work model, education, benefits, skills, screening questions and the full description. Search by keyword, state or city, and filter by category, work model, contract, education, salary range and posting date. About 1,000 jobs with full details in under a minute.
OCC lists more than 55,000 open jobs. The site itself stops paging a search at about 10,000 results; this Actor splits bigger searches by category and state, so a run with no filters can return the whole board.
🎯 Who uses it?
🧑💼 Recruiters and staffing agencies
See who is hiring for a role, in which city and at what salary, and spot companies hiring many people at once.
💰 HR and compensation teams
Benchmark pay by job title, category, state and contract with real published salaries, already parsed into numbers with the pay period.
📈 Labor market analysts and journalists
Track demand by category, work model (remote, hybrid, on-site), education level and contract type across Mexico, on a schedule.
🛠️ Job board and HR tech builders
Feed an aggregator, alert service or matching model with fresh, structured Mexican jobs, including skills and benefits.
✨ What it does
- Search by one or more keywords, in one or more states or cities, or across all of Mexico.
- Every OCC filter as a real input: category (23), work model, contract type, education level, minimum and maximum salary, posting date, and sort order.
- No result cap: searches over 10,000 jobs are split automatically, so nothing is cut off.
- Full details on every row: full description, benefits, required skills, screening questions, schedule, education, posting and expiry dates.
- Salary as numbers: "$15,000 - $18,000 Mensual" becomes
salaryMin,salaryMax,salaryCurrencyandsalaryPeriod. Hidden salaries stay empty instead of guessed. - Paste a search link: reuse a search you already filtered on occ.com.mx.
🏆 Why this scraper
- Fast without shortcuts. About 1,000 jobs with full details in under a minute (14 seconds in our tests), with no browser and no proxy.
- Every filter, not just a keyword box. Category, work model, contract, education, salary and date are inputs you pick from a list.
- The whole board when you need it. Big searches are split into pieces OCC can page through completely, newest first, with no duplicates.
- Honest about what OCC shows. Confidential companies stay confidential (
companyis empty andconfidentialCompanyis true). Recruiter names, phones and emails are never collected.
⚖️ How it compares
| Capability | This actor | unfenced-group | corvuslab | gio21 | stilled_stalagmite |
|---|---|---|---|---|---|
| Several keywords and locations in one run | yes | no | no | no | no |
| Category filter | several | one | no | no | no |
| Work model, education, salary filters | yes | no | no | no | no |
| Contract filter | several | one | no | no | no |
| Posting date filter and newest-first sort | yes | no | no | no | no |
| Past OCC's 10,000-job paging limit | yes | no | no | no | no |
| Full description | yes | optional | yes | yes | yes |
| Skills and screening questions | yes | no | no | no | no |
| Benefits list | yes | no | no | no | no |
| Salary min/max numbers and pay period | yes | yes | partial | no | no |
| Proxy | none needed | not stated | not stated | not stated | not stated |
corvuslab adds incremental mode and Telegram, Slack or Discord alerts, and corvuslab and unfenced-group can return the description as HTML or markdown. Here the description is clean plain text with bullet points kept.
📦 What data you get
| Field | Description |
|---|---|
jobId, url | OCC's job ID and the job page. |
title, company, confidentialCompany, verifiedCompany | Job title and hiring company; confidential listings have no company name. Verified means OCC checked the employer. |
city, state | Where the job is. |
salary, salaryMin, salaryMax, salaryCurrency, salaryPeriod | The salary exactly as shown, the same as numbers in MXN, and the period (monthly, biweekly, weekly, daily, hourly, yearly). Empty when the company hides it. |
category, subcategory | OCC's job category and subcategory. |
employmentType, workSchedule, workModel | Contract (permanent, temporary...), schedule (full time, part time...) and onsite, hybrid or remote. |
education | Minimum education asked for. |
benefits, skills, screeningQuestions | Lists of benefits, required skills and the questions applicants must answer. |
description | Full job description as plain text. |
companyLogo, companyJobsUrl | Company logo and the page with all its jobs. |
postedAt, expiresAt | Posting and expiry dates (YYYY-MM-DD). |
scrapedAt | When the row was collected (UTC). |
error | Only present when a job's details didn't load. |
💡 Use cases
💰 Salary benchmark for sales roles in Jalisco
{ "maxItems": 1000, "keywords": ["vendedor"], "locations": ["Jalisco"], "minSalary": 10000 }
🏠 Remote IT jobs posted this week
{ "maxItems": 500, "categories": ["tecnologias-de-la-informacion-sistemas"], "workModels": ["remote"], "postedWithin": "7" }
🎓 Internships for students in Monterrey and CDMX
{ "maxItems": 300, "locations": ["Monterrey", "Ciudad de México"], "contractTypes": ["becario-practicas"] }
🗺️ The whole board, every job (leave Maximum jobs empty)
{ "keywords": [] }
🔗 Reuse a search you built on the site
{ "maxItems": 200, "pageUrl": "https://www.occ.com.mx/empleos/de-contador/en-nuevo-leon/?smin=20000" }
⚙️ How the input is organised
| Section | What it's for |
|---|---|
| Maximum jobs | Always first, caps the whole run. Empty means no limit. |
| Search | Keywords, locations, or a pasted OCC search link. |
| Job filters | Category, work model, contract type, education, minimum and maximum salary, posting date, sort order. |
💰 Pricing
Pay-per-event: a one-time $0.003 when the run starts, plus a price per job saved to your dataset. The price depends on your Apify plan tier:
| Your Apify plan | Price per job |
|---|---|
| Free | $0.014 |
| Bronze | $0.0125 |
| Silver | $0.011 |
| Gold / Platinum / Diamond | $0.01 |
Approximate total cost (includes the $0.003 start fee):
| Jobs collected | Free | Bronze | Silver | Gold+ |
|---|---|---|---|---|
| 100 | $1.40 | $1.25 | $1.10 | $1.00 |
| 1,000 | $14.00 | $12.50 | $11.00 | $10.00 |
| 10,000 | $140.00 | $125.00 | $110.00 | $100.00 |
New Apify accounts start with $5 in free credit. On the Free plan a run saves up to 10 jobs.
🚀 Run it
- Create a free Apify account with $5 in credit.
- Open the OCC Mundial Jobs Scraper.
- Type a keyword (or keep the prefilled one), add locations or filters if you like, set Maximum jobs, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python, and schedule it with Apify's built-in Scheduler.
🤖 Use with AI agents (MCP)
Give an AI agent live access to OCC jobs through the Model Context Protocol:
claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/occ-scraper"
Then prompt it in plain language to run the scraper and read back the results.
🔧 Troubleshooting
A location was skipped. Use a state ("Jalisco", "Nuevo León") or a city ("Guadalajara", "Monterrey"). Accents are optional. If every location you gave is unrecognizable, the run stops with 0 results instead of searching all of Mexico.
Salary fields are empty. The company chose to hide the salary ("Si el reclutador te contacta podrás conocer el sueldo"). The salary filters still work on those jobs because OCC applies them on its side.
company is empty.
The employer posted it as confidential (confidentialCompany is true).
A row has an error field.
That job's details didn't load; the row keeps its ID, link and search info.
Fewer jobs than OCC's counter. A few jobs close between the search and the detail request; closed jobs are dropped instead of saved half empty.
❓ FAQ
| Question | Answer |
|---|---|
| Do I need an OCC account? | No. Only public job data is read. |
| Does it need a proxy? | No. |
| Is there a limit on results? | No. Searches bigger than OCC's 10,000-job paging limit are split, so you can collect the whole board. |
| Can I search several keywords and cities in one run? | Yes. Each combination runs its own search, results are shared fairly and duplicates removed. |
| Are salaries numbers? | Yes, salaryMin and salaryMax in MXN with salaryPeriod, plus the original text in salary. |
| Does it include recruiter contact details? | No. Recruiter names, phones and emails are personal data and are left out on purpose. |
| Is the data live? | Yes, read fresh on every run. |
| Can I schedule it? | Yes, with Apify's built-in Scheduler, for example daily with Posted within set to Today. |
🛡️ Limits & responsible use
This Actor reads only OCC's public job data. It never signs in and never applies to jobs. It does not collect recruiter personal data. Use the data in line with OCC's terms and applicable law (LFPDPPP).
📧 Contact
Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com
🧪 Local development
bun installbun run typecheckbun test/qa.mjsapify run
Local results are stored in storage/datasets/default.