Computrabajo Jobs Scraper
Pricing
from $2.00 / 1,000 results
Computrabajo Jobs Scraper
Scrape job listings from Computrabajo Mexico: titles, companies, locations, salaries, and posting dates.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Danilo Frias
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrapes public job listings from Computrabajo Mexico (mx.computrabajo.com)
without any login. Each run returns structured job records: title, company,
location, salary text, canonical job URL, relative posted date, and a
description snippet field.
Who would use it: labor-market researchers, recruiters doing competitive
benchmarking, job aggregators, and analysts tracking salary ranges or hiring
volume by city/keyword in Mexico. The output is a clean, typed dataset pushed
to the Apify dataset via Actor.push_data.
Inputs
| Field | Type | Default | Description |
|---|---|---|---|
search_query | string | "" | Job keyword, e.g. "contador", "vendedor". When set, listing URLs are built as /trabajo-de-<query>[-en-<location>], mirroring the site's own search box. Accents and casing are normalized ("Atención a clientes" becomes atencion-a-clientes). |
location | string | "Mexico" | Place to search in, e.g. "Ciudad de Mexico", "Guadalajara". With no search query this builds /empleos-en-<location>. The generic value "Mexico" falls back to the default start_urls. |
start_urls | array of strings | 3 verified city pages (Ciudad de Mexico, Guadalajara, Monterrey) | Explicit Computrabajo listing pages to scrape. When empty, URLs are built from search_query/location as described above. |
max_items | integer | 50 | Maximum number of unique job listings to return (1-2000). The actor paginates each start URL (?p=2, ?p=3, ...) until this many is reached. |
Sample output record
{"title": "Auxiliar contable","company": "YUBZAVA SERVICIOS INTEGRALES","location": "Cuauhtémoc, Ciudad de México DF","salary_text": "$ 12,000.00 (Mensual)","job_url": "https://mx.computrabajo.com/ofertas-de-trabajo/oferta-de-trabajo-de-auxiliar-contable-presencial-en-cuauhtemoc-800D807A4C273BF561373E686DCF3405","posted_date": "Hace 1 hora","description_snippet": null}
Field notes:
salary_textisnullwhen the listing shows no salary (common).posted_dateis the site's relative label as shown (e.g."Hace 1 hora","Hace 3 días"), not normalized to a timestamp.description_snippetis currentlynull: listing cards carry no description text, and detail pages are not fetched. Listings that hide the employer show"Importante empresa del sector"ascompany.
Coverage and limits
- Pagination: ~20 cards per page. The actor follows the site's own
"Siguiente" link (
span.buildLink[data-path]), falling back to?p=N. Deduplication is byjob_url, so repeated/sponsored cards don't inflate counts. - Rate limiting: ~1 request/second between page fetches, with a normal desktop browser User-Agent and browser-like headers. No concurrency.
- Blocks: if a page redirects to a login wall, serves a CAPTCHA, or returns 401/403/429, the actor logs the URL, status code, and redirect target and moves on to the next start URL. It never attempts to solve CAPTCHAs or log in.
- Scope: Mexico site (
mx.computrabajo.com) listing pages only. The/ofertas-de-trabajo/bare path redirects to the homepage, and/empleos-en-mexicois a geolocation-gated SEO page with no cards, so neither is used as a default.
Data rules
- Public pages only. Logged-out scraping of public search-result pages. No login flows, no session cookies, no CAPTCHA solving, no proxy services.
- No personal data. Job listings show company names (businesses, fine), but the scraper deliberately never parses recruiter names, emails, or phone numbers, and it never opens job-detail or application pages where personal contacts could appear.
Local run
# write input, then run from this directorymkdir -p storage/key_value_stores/defaultcat > storage/key_value_stores/default/INPUT.json <<'EOF'{"search_query": "", "location": "Mexico", "start_urls": [], "max_items": 50}EOFpython main.py
Results land in storage/datasets/default/ (one JSON file per record).