India Medical Jobs API — Official Healthcare Vacancies
Pricing
from $1.00 / 1,000 results
India Medical Jobs API — Official Healthcare Vacancies
Fetch current medical and healthcare vacancies from supported official Indian hospital, government, and medical institute recruitment sources. Filter by role, location, recency, and source, then export recruiter-ready results to JSON, CSV, or Excel.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Inus Grobler
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Security
Limited permissionsShare
Collect official Indian medical and healthcare recruitment notices as source-linked job data for recruiters, staffing teams and job boards. Reuse an optional watchlist to see newly observed vacancies and corrections such as application deadlines. Official source links stay with every record. This covers the listed Indian sources, not every national vacancy or eligibility for overseas employment.
Try five notices from one official source
{"rolePreset": "allMedical","sourceIds": ["DMER_TEACHING"],"maxItems": 5}
Five delivered records cost $0.010 in Actor events at the default 256 MB: $0.005 startup plus five × $0.001. Any separately billed platform usage is additional. A result cap limits output, not the work of all selected source/PDF adapters. The Console starter selects one source; the existing all-source runtime default and explicit saved source selections remain available.
Return for new or corrected notices
{"rolePreset": "allMedical","sourceIds": ["DMER_TEACHING"],"maxItems": 5,"historyName": "recruiter-watchlist","changePolicy": "newOrChanged"}
Reuse the same unique historyName and filters. The first run returns a baseline as new observations; unchanged repeats return no notice rows. A deadline correction stays linked through recordKey even if the legacy jobId changes. New optional fields show changeType, changedFields, previousValues, firstSeenAt and lastSeenAt. Ordinary exports with no history name keep their existing row shape. A repeat can still incur startup/platform costs even with no new records.
History is separated by sources, role, location and recency filters, and keeps up to 10,000 entries for 90 days, pruned on later runs. Missing/expired notices, unavailable sources and reduced extraction quality are not deletion evidence. Only confirmed deliveries and intentionally suppressed unchanged observations advance history. Use one active run per watchlist; delivery and history are not atomic, and a retry after an uncertain write can duplicate output. Source health remains visible in the run summary. No OCR subscription, AI key or additional paid service is required.
Full source and export guide
Collect fresh medical and healthcare vacancies from supported official Indian recruitment websites. Built for healthcare recruiters, staffing teams, talent researchers, and job-data workflows that need traceable public-source data rather than copied job-board listings.
Use this Actor to turn current official recruitment notices into structured, source-linked job records ready for review, export, and monitoring.
Each run visits the selected official websites at run time, normalizes the current notices, removes duplicates, and writes results to an Apify Dataset. Export JSON, CSV, or Excel, or use the Dataset directly in your recruiting workflow.
What this Actor is for
- Build a current pipeline of doctors, residents, nursing, medical faculty, pathology, laboratory, and healthcare vacancies.
- Search official hospital, government, medical-institute, and research recruitment notices by role, location, and recency.
- Keep the official notice and any explicit application link with every result.
- See source health in each run, so a missing website is never mistaken for "no jobs found".
Ordinary exports fetch fresh notices. Optional named watchlists compare those fresh notices across runs; the Actor does not create schedules or run in the background.
Quick start
- Choose a role or specialty.
- Optionally add cities or states.
- Keep the recommended official-source selection or choose specific sources.
- Set the maximum number of records and start the Actor.
- Review the Dataset and open the official notice before contacting candidates or applying.
Example: pathology and faculty search
{"rolePreset": "pathology","locations": ["Maharashtra", "Delhi"],"postedWithinDays": 90,"maxItems": 100}
Example: custom specialty search
{"rolePreset": "custom","roleKeywords": ["blood bank medical officer", "clinical psychologist"],"locations": ["Pune", "Mumbai"],"sourceIds": ["DMER_TEACHING", "DMER_NON_TEACHING"],"postedWithinDays": 60,"maxItems": 50}
Inputs
| Input | Description |
|---|---|
rolePreset | All medical roles, pathology, residents, medical officer, nursing, medical faculty, or custom roles. |
roleKeywords | Your own role or specialty terms when rolePreset is custom. |
locations | Optional cities or states. |
postedWithinDays | Notice age to include. A future application deadline keeps an older notice eligible. |
sourceIds | Official recruitment sources to search. Supply one or more IDs; omit the field to use the documented recommended set. |
maxItems | Maximum normalized job or notice records returned. |
An empty sourceIds array is intentionally rejected. Choose at least one source so a paid run never expands unexpectedly.
Cost control
This is a pay-per-event Actor: a run may include a start charge and charges for returned Dataset records. Keep searches focused by selecting the sources, role, and locations you need, and set maxItems to the smallest useful result limit. A run always fetches live official pages; it does not charge for a background daily monitor.
Official coverage
The current verified 12-source set includes:
- VMMC & Safdarjung Hospital, New Delhi: regular, contractual, project, and resident recruitment.
- Directorate of Medical Education & Research, Maharashtra: teaching, non-teaching, and nursing recruitment.
- AIIMS New Delhi recruitment notices.
- Delhi Health & Family Welfare hospital vacancies.
- AIIMS Bilaspur, Bhubaneswar, and Rishikesh recruitment notices.
- Indian Council of Medical Research recruitment notices.
Coverage is transparent and source-specific. This Actor searches supported official sources from selected Indian regions and national authorities; it does not claim to capture every medical vacancy in the country.
Output
Every Dataset row includes the official source URL. Important fields include:
recordType:jobfor a safely normalized individual role, ornoticewhen an official notice contains multiple roles that cannot be split reliably.jobTitle,rolesMentioned,employerName,location,department,specialty, andemploymentType.vacancyCount,salaryText,qualificationRequired, andexperienceRequiredwhen the official notice exposes them.datePosted,applicationDeadline,dateStatus, andisOpen.applyUrlonly when the official source explicitly provides one; otherwise usesourceUrl.extractionQuality:full,listingOnly, orpdfUnavailable.sourceUrl,sourceUrls,attachmentUrls, andscrapedAtfor traceability.
Open Run summary and source health after each run to see which sources succeeded, which were unavailable, and how filtering affected the results.
Example Output
{"recordType": "job","jobTitle": "Senior Resident - Pathology","employerName": "Example Government Medical College","location": "Delhi","specialty": "Pathology","vacancyCount": 3,"datePosted": "2026-08-01","applicationDeadline": "2026-08-31","isOpen": true,"sourceUrl": "https://example.gov.in/recruitment/notice.pdf","extractionQuality": "full","scrapedAt": "2026-08-22T12:00:00.000Z"}
Data quality and limitations
- The Actor uses direct, low-rate HTTP requests to public official websites. It does not use login automation, CAPTCHA bypassing, or residential proxies.
- Some official PDFs are scanned or unavailable as machine-readable text. Those records retain their official attachment and are marked with an extraction-quality value.
- A future deadline takes priority over the selected notice age. Expired and undated notices are excluded.
- Always confirm eligibility, deadline, and application instructions in the official notice before acting on a result.
Use from Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("thescrapelab/india-medical-jobs-aggregator").call(run_input={"rolePreset": "medicalFaculty","locations": ["Delhi", "Maharashtra"],"postedWithinDays": 90,"maxItems": 100,})if run is None:raise RuntimeError("Actor call returned no run or storage metadata")items = client.dataset((run["defaultDatasetId"] if isinstance(run, dict) else run.default_dataset_id)).list_items().itemsfor item in items:print(item["jobTitle"], item["employerName"], item["sourceUrl"])
Troubleshooting
No results? Broaden postedWithinDays, remove the location filter, choose a broader role preset, or select different sources.
A source is missing? Check the run summary. A degraded run returns data from available sources and reports the unavailable source separately.
Need to apply? Use applyUrl only when present. Otherwise use the linked official notice, which is the authoritative source for the application route.
Python: a recurring recruiter watchlist
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("thescrapelab/india-medical-jobs-aggregator").call(run_input={"rolePreset": "allMedical", "sourceIds": ["DMER_TEACHING"], "maxItems": 5,"historyName": "recruiter-watchlist", "changePolicy": "newOrChanged",})if run is None:raise RuntimeError("No run metadata returned")for row in client.dataset((run["defaultDatasetId"] if isinstance(run, dict) else run.default_dataset_id)).iterate_items():print(row["jobTitle"], row.get("changedFields"), row["sourceUrl"])
Collection sources
Collection uses public pages, published documents or rendered page content. Optional AI features use OpenRouter. Source API fallbacks and calls to other Actors are unavailable. A source that cannot provide usable page content may fail or return explicitly incomplete coverage; an older successful run does not guarantee current availability.