Global Jobs API & Scraper
The Global Jobs API returns job listings from major non-US job boards — Naukri (India), Gupy and Catho (Brazil) and more — as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary jobs/search endpoint returns jobs with title, company, location and URL plus the platform searched, with personal data redacted, and you can pull a jobs/detail. It is built for global recruiting tools, labor-market analysts and job boards that need international listings from one endpoint. One ReefAPI key, one shared credit pool, the standard envelope.
What each board actually returns, measured field by field
The four platforms are four different scrapers behind one response shape, and they do not return the same columns. meta.completeness_pct on every response tells you which case you are in before you inspect a single row. The counts below come from live searches run on the same day.
| platform | Board and country | What a jobs/search row carries |
|---|---|---|
| gupy | Gupy company career pages, Brazil | The full record: company_name, company_logo_url, location_city/state/country, remote, employment_type, description_text, skills[], industry, salary_source and posted_at. completeness_pct 100 on 'desenvolvedor'. |
| stepstone | StepStone, Germany and Europe | job_id, title, company_name, location_raw (often several cities) plus location_city, apply_url and source_url. completeness_pct 83.33. No posted_at and no salary until jobs/detail. |
| catho | Catho, Brazil | job_id, title, apply_url, source_url and source_platform, and nothing else, on 20 of 20 rows. completeness_pct 50. Company, location and salary exist only in jobs/detail. |
| naukri | Naukri, India | Nothing. The call returns ok false with error code TARGET_BLOCKED and retryable false. Do not build a retry loop around it. |
job_id is the board's own id and is not namespaced across boards: catho 38113979, gupy 12282277 and stepstone 14338941 are all bare integers from three unrelated systems. Key your storage on the pair (source_platform, job_id), which is exactly why source_platform rides on every single job object.
Real request and response JSON
Captured from the indexed primary action, jobs/search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/global-jobs/v1/jobs/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"platform": "naukri",
"keyword": "software engineer",
"location": "bangalore",
"max_pages": 3
}
}{
"ok": true,
"meta": {
"api": "global-jobs",
"endpoint": "jobs/search",
"mode": "live",
"latency_ms": 6621,
"record_count": 60,
"bytes": 0,
"cache_hit": false,
"completeness_pct": 100,
"platform": "naukri",
"sid": "[redacted-phone]",
"total_unique": 60,
"stopped_reason": "max_pages",
"duplicates_skipped": 0,
"completeness_basis": {
"jobs": 60,
"checks": [
"job_id",
"title",
"company_name"
]
}
},
"data": {
"jobs": [
{
"job_id": "[redacted-phone]",
"title": "Software Engineer",
"company_name": "Siemens",
"company_logo_url": "https://img.naukimg.com/logo_images/v2/mobile/73816.gif",
"company_description": "Siemens Information Systems Ltd. (SISL) was incorporated in 1992. It has grown on to become a leading system integrator and total solution provider to a host of Global Clientele and its business has grown over 100% in the last three years through consistently delivering higher value for the customers. That makes SISL among the leading and fastest growing IT-services company in India. Deloitte has recognized SISL’s outstanding growth by giving the ‘India Fast 50’ and ‘Asia Pacific Fast 500’ awards to SISL for excellent performance over the last three years.<br /><br />Innovation & Quality have ",
"location_city": "Bengaluru",
"location_state": "Karnataka",
"location_country": "India",
"location_raw": "Bengaluru, Karnataka, India",
"employment_type": "Full Time, Permanent",
"experience_level": "0-5",
"description_text": "Required Skills Qualifications . You have an educational background as Software Engineer or similar,combined with a thorough knowledge of web programming. 5-8 years of work experience with the Java 8+ (JEE preferential). 5-8 years of work experience with the Angular. .",
"industry": "Information Technology",
"posted_at": "[redacted-phone]:27:11.0",
"apply_url": "https://www.naukri.com/job-listings-[redacted-phone]",
"source_platform": "naukri",
"source_url": "https://www.naukri.com/job-listings-software-engineer-siemens-limited-bengaluru-0-to-5-years-[redacted-phone]?xp=1",
"remote": false,
"application_count": null,
"skills": [
"Java",
"Business Process Management",
"Programming"
],
"salary_source": "unpublished"
},
{
"job_id": "[redacted-phone]",
"title": "Software Engineer",
"company_name": "Capgemini",
"company_logo_url": null,
"company_description": "Capgemini Technology Services India Limited",
"location_city": "Bengaluru",
"location_state": "Karnataka",
"location_country": "India",
"location_raw": "Bengaluru, Karnataka, India",
"employment_type": "Full Time, Permanent",
"experience_level": "0-5",
"description_text": "Job Description Works in the area of Software Engineering, which encompasses the development, maintenance and optimization of software solutions/applications.1. Applies scientific methods to analyse and solve software engineering problems.2. He/she is responsible for the development and application of software engineering practice and knowledge, in research, design, development and maintenance.3. His/her work requires the exercise of original thought and judgement and the ability to supervise the technical and administrative work of other software engineers.4. The software engineer builds skil",
"industry": "Information Technology",
"posted_at": "[redacted-phone]:34:07.0",
"apply_url": "https://www.naukri.com/job-listings-[redacted-phone]",
"source_platform": "naukri",
"source_url": "https://www.naukri.com/job-listings-software-engineer-capgemini-technology-services-india-limited-bengaluru-0-to-5-years-[redacted-phone]?xp=2",
"remote": false,
"application_count": null,
"skills": [
"Design",
"Software Development",
"Software Engineering"
],
"salary_source": "unpublished"
},
{
"job_id": "[redacted-phone]",
"title": "Software Engineer",
"company_name": "Applied Materials",
"company_logo_url": "https://img.naukimg.com/logo_images/v2/mobile/41172.gif",
"company_description": "Applied Materials (Nasdaq: AMAT), the world's largest supplier of products and services to the global semiconductor industry, is one of the leading information infrastructure providers.As a core information infrastructure company, Applied Materials innovates and commercializes the processing and manufacturing technology that helps semiconductor manufacturers produce the world's most advanced chips.To support customers around the world, Applied Materials employs approximately 12,000 people in over 65 locations throughout China; Europe and Israel; India, Malaysia and Singapore; Japan; Korea; Tai",
"location_city": "Bengaluru",
"location_state": "Karnataka",
"location_country": "India",
"location_raw": "Bengaluru, Karnataka, India",
"employment_type": "Full Time, Permanent",
"experience_level": "0-5",
"description_text": "Additional Information . Time Type: Full time Experience with cloud platforms,APIs,microservices,DevOps / CI-CD,and modern web technologies. . Strong communication,collaboration,and stakeholder management skills",
"industry": "Information Technology",
"posted_at": "[redacted-phone]:30:42.0",
"apply_url": "https://www.naukri.com/job-listings-[redacted-phone]",
"source_platform": "naukri",
"source_url": "https://www.naukri.com/job-listings-software-engineer-applied-materials-india-private-limited-bengaluru-0-to-5-years-[redacted-phone]?xp=3",
"remote": false,
"application_count": null,
"skills": [
"Enterprise Applications",
"Automation",
"Materials Science"
],
"salary_source": "unpublished"
}
],
"platform": "naukri",
"sid": "[redacted-phone]"
}
}What the Global Jobs API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| jobs/search | Search live job listings on Naukri (India), Gupy and Catho (Brazil), or StepStone (Germany & Europe) by job title, keyword and city. Returns each job's title, company, location and link. | Recruiting teams call jobs/search to search live job listings on Naukri (India), Gupy and Catho (Brazil), or StepStone (Germany &…. | platform, keyword, query, location, max_pages, ... |
| jobs/detail | Get the full details of a single job posting from Naukri, Gupy, Catho or StepStone — job title, company, full description, salary, location and how to apply. | Labor-market analysts call jobs/detail to get the full details of a single job posting from Naukri, Gupy, Catho or StepStone. | platform, job_id, job_url, apply_url |
Call jobs/search from your stack
curl -X POST https://api.reefapi.com/global-jobs/v1/jobs/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"platform":"naukri","keyword":"software engineer","location":"bangalore","max_pages":3}'import requests
r = requests.post(
"https://api.reefapi.com/global-jobs/v1/jobs/search",
headers={"x-api-key": REEF_KEY},
json={
"platform": "naukri",
"keyword": "software engineer",
"location": "bangalore",
"max_pages": 3
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/global-jobs/v1/jobs/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"platform": "naukri",
"keyword": "software engineer",
"location": "bangalore",
"max_pages": 3
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.global-jobs.jobs/search with {"platform":"naukri","keyword":"software engineer","location":"bangalore","max_pages":3}.Who uses this API and why
- Global job boards call jobs/search to aggregate listings from India and Brazil in one schema.
- Labor-market analysts use jobs/search to measure hiring demand in emerging markets.
- Recruiting tools use jobs/detail to enrich a listing sourced from a regional platform.
Questions developers ask before integrating
Why does a Catho search return only a title and a link?
Because Catho's result page carries nothing else. A measured search for 'analista' returned 20 rows, every one of them exactly job_id, title, apply_url, source_url and source_platform, with meta.completeness_pct 50. The rest is one call away: jobs/detail with platform catho and that row's job_url returned company_name 'LIFE RECURSOS HUMANOS', location Parana/PR/Brasil, employment_type 'CLT (Efetivo)', a 1124-character description and a salary band. Search to shortlist, detail to enrich.
Is salary normalized across countries?
No, and nothing is converted. salary_min and salary_max are the board's own numbers in whatever salary_currency says: a Catho posting returned 2001 and 3000 with salary_currency BRL and salary_text '2001-3000 BRL', while a StepStone posting returned salary_currency EUR with both bounds null. salary_source tells you why: 'detail_ld' means it was read from the posting's own structured data, 'unpublished' means the board shows no pay at all. There is no FX layer anywhere in this API.
What format is posted_at, and which platform has it in search results?
ISO-8601 in UTC with a Z suffix, at a fractional-second precision that varies by board: gupy '2026-08-26T21:27:20.632Z', stepstone '2026-08-13T15:03:19.66Z', catho '2026-08-25T23:59:59Z'. Catho stamps end-of-day rather than a real posting time, so do not use it to order postings within a day. Only Gupy carries posted_at on search rows; on Catho and StepStone it appears in jobs/detail.
Which identifier does jobs/detail need for each board?
It differs by platform, which is why both parameters are optional. Gupy accepts job_id: platform gupy with job_id 12282277 returned the full posting. Catho and StepStone need job_url, the full posting link. The simplest rule that works everywhere is to keep apply_url from the search row and pass it back as job_url, since every working board returns one.
Does an English keyword work on the Brazilian boards?
Poorly. The listings are in Portuguese, so 'desenvolvedor' finds far more than 'developer'. Gupy also matches the phrase against the job title literally, so a multi-word query can match nothing where a single word matches plenty. The engine retries such a query with its most distinctive single word, which is why 'python' and 'python developer' both reported source_total 37 on the same run.
How do paging and deduplication work?
max_pages (default 10) times page_size (default 20), with max_results as an optional hard cap on the total. The response reports what actually happened: total_unique, duplicates_skipped and stopped_reason. A measured Catho search with max_pages 1 returned total_unique 20, duplicates_skipped 0 and stopped_reason 'max_pages'; the same settings on StepStone returned 25 rows, because StepStone's own page is larger than the page_size we ask for.
What does TARGET_BLOCKED on Naukri mean for my code?
It means Naukri refuses automated clients outright, and the response says so: retryable false, record_count 0. The other three platforms are unaffected. If you fan out across boards, treat naukri as a permanently degraded source rather than a transient failure, and do not let it fail the whole batch.
What is the Global Jobs API?
Global Jobs API is a ReefAPI endpoint group for job listings aggregated across many sources. It returns live JSON through POST requests under /global-jobs/v1.
Is the Global Jobs API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Global Jobs calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Global Jobs login or account?
No login to Global Jobs is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Global Jobs data?
The page example is captured from a live jobs/search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Global Jobs API use?
Global Jobs actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Global Jobs from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call global-jobs actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Global Jobs API a Global Jobs scraper?
It is the managed alternative to a DIY Global Jobs scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same job listings aggregated across many sources back as clean JSON.