Internshala Jobs Scraper: Applicants per Opening & Hiring Data
Pricing
from $0.98 / 1,000 job leads
Internshala Jobs Scraper: Applicants per Opening & Hiring Data
Scrape public Internshala internship and job listings with verified filters. Extract the applicants-per-opening ratio no competitor computes, employer hiring history, and application counts. Filter by keyword, city, type, and compensation. Emit change-only feeds on recurring runs.
Pricing
from $0.98 / 1,000 job leads
Rating
0.0
(0)
Developer
GetAScraper
Maintained by CommunityActor stats
0
Bookmarked
98
Total users
38
Monthly active users
10 days ago
Last modified
Categories
Share
๐ Internshala Jobs Scraper: Applicants per Opening & Hiring Data
| India jobs suite Public job-listing data for recurring hiring research. | |||
Blue and grey collar roles | โค You are here | Tech jobs and hiring alerts | Combined multi-source job inventory |
|
Apply where your odds are actually good, not just where there are openings Collect public Internshala listings with applicant counts, employer hiring history, and the applicants-per-opening ratio. The one metric none of the other Internshala scrapers on the Store compute. |
| รท Ratio that matters Applicants divided by openings: the number that reveals your real competition. | ๐
Employer track record Hiring since date and opportunities posted, so you know who actually hires. | โ Honest fields Missing values stay missing. No guessed or padded data. | โป Change-only feed New and changed listings only, on recurring scheduled runs. |
๐ What does Internshala Jobs Scraper do?
Internshala Jobs Scraper collects public internship and job listings from Internshala and, when you enable detail enrichment, adds the intelligence no other scraper provides: how many people applied, how many openings exist, and the ratio between them.
A listing with 32 applicants and 40 openings is a much better bet than one with 32 applicants and 2 openings. Raw counts alone do not tell you that. This Actor computes the ratio, and it is the only one in the Internshala category on Apify Store that does.
On top of the ratio, enrichment pulls employer hiring history (hiring-since date and total opportunities posted) and full listing details including description, perks, eligibility, and application deadline. Monitoring mode keeps a change-only feed across scheduled runs so repeat listings never fill your dataset.
๐ฏ Who is this for?
Students deciding where to send their next application. You have time to apply to maybe a handful of roles carefully. Sorting by applicants-per-opening shows which listings have genuine room for you and which are already crowded, before you spend the effort.
Hiring researchers and placement teams. Track which companies are actively posting, how long they have been hiring on the platform, and how quickly applicant counts rise across a scheduled feed, without manually checking each listing.
Recruiters and sourcing tools. Pull a structured, filter-narrowed feed of listings with company context, application pressure signals, and change tracking for downstream processing.
๐ How to collect Internshala listings
| STEP 1 Choose your source Pick internships or jobs. Add keyword, city, category, or badge filters to narrow the match window. | STEP 2 Turn on detail enrichment Enable Fetch public detail pages to get applicant counts, employer history, openings, and application deadline per listing. | STEP 3 Read the ratio Sort your dataset by applicantsPerOpening to find where competition is genuinely light. |
For recurring tracking, create an Apify schedule with the same input and select a monitoring mode. The first successful run saves a baseline; later runs emit only new or changed listings.
โ๏ธ Input
| Field | Type | Required | Description |
|---|---|---|---|
mode | enum | No | internships or jobs. Public startUrls derive their mode from the URL. Default: internships. |
startUrls | array of URLs | No | Public Internshala listing pages. Replace automatic source construction; record-level filters still apply. |
keyword | string | No | Matches listing title, company, summary, and skills. Also selects an Internshala keyword page for automatic sources. |
locations | array of strings | No | Keep only listings whose location contains one of these cities. Multiple cities use OR semantics. Work-from-home does not count as a city match. |
category | string | No | Internship category, e.g. Computer Science. Only for internships mode; cannot combine with startUrls. |
workFromHome | boolean | No | Keep only listings explicitly marked as work from home. Default: false. |
partTime | boolean | No | Keep only listings explicitly marked as part time. Default: false. |
minStipend | integer | No | Keep only internships whose published minimum monthly stipend is at least this amount (INR). Unpaid or undisclosed stipends do not pass a positive minimum. |
minSalary | integer | No | Keep only jobs whose published minimum annual salary is at least this amount (INR). |
maxDurationMonths | integer | No | Keep only internships with a published duration at or below this value. 0 disables the filter. |
maxExperienceYears | integer | No | Keep only jobs with a minimum experience requirement at or below this value. 0 disables the filter. |
datePosted | enum | No | Filter by relative posting age: all, 24h, 3d, 7d, or 30d. Records without a parseable age do not pass a selected window. |
specialFilters | array | No | Keep only listings with every selected badge: actively_hiring, early_applicant, job_offer. |
sortBy | enum | No | relevance (source order, default) or newest (by relative posting age). |
includeDetails | boolean | No | Fetch each listing's public detail page. Adds applicant counts, employer hiring history, openings, description, and more. Default: false. |
maxResults | integer | No | Stop after this many listings pass the filters. 0 means no limit. Default: 25. |
monitoringMode | enum | No | off (default), new_only, new_and_changed, or all_with_status. |
monitoringStoreName | string | No | Persistent named store for recurring run state. Default: internshala-monitor-state. |
monitorStateKey | string | No | auto derives a deterministic key from the source and filters. Set an explicit key to share history between workflows. |
proxyConfiguration | object | Yes | Apify proxy configuration for page requests. |
maxConcurrency | integer | No | Maximum parallel requests. Default: 10. |
Automatic source URLs use verified path-based Internshala patterns. URLs with query parameters, fragments, or from non-Internshala domains are rejected as startUrls.
๐ Output
Each record contains only fields present or verifiably derived from the public source. The Actor does not fill missing values with "Unknown", "N/A", or generic placeholders.
This example uses a real public listing:
{"id": "3220046","dedupeId": "internshala:internships:3220046","mode": "internships","title": "Supply Chain & Logistics Operations","company": "WeMee โ Corporate Gifting Company","url": "https://internshala.com/internship/detail/supply-chain-logistics-operations-internship-in-pune-at-wemee1784879458","location": "Pune","isWorkFromHome": false,"isPartTime": false,"stipendText": "โน 7,000 - 15,000 /month","stipendMin": 7000,"stipendMax": 15000,"durationMonths": 4,"skills": ["MS-Office", "Operations", "MS-Excel", "Google Sheets", "Logistics Management"],"isActivelyHiring": true,"badges": ["actively_hiring"],"postedAgo": "5 days ago","openings": 3,"applicantCount": 45,"isEarlyApplicant": false,"applicantsPerOpening": 15.0,"employerHiringSince": "April 2026","employerOpportunitiesPosted": 8,"detailsFetched": true}
You can download the dataset in JSON, CSV, HTML, or Excel format from Apify Console or via the API.
๐๏ธ Data fields
| Field | Type | Description |
|---|---|---|
id | string | Internshala's public listing ID. |
dedupeId | string | Stable internshala:<mode>:<id> identifier for downstream deduplication. |
mode | string | internships or jobs. |
title, company, url | string | Published listing identity and canonical public detail URL. |
companyLogo, location, summary | string | Public card values when present. Placeholder logos are omitted. |
isWorkFromHome, isPartTime | boolean | Derived from explicit public listing markers. |
stipendText, stipendMin, stipendMax | string / integer | Published monthly internship stipend text and parsed INR range. |
salaryText, salaryMin, salaryMax | string / integer | Published annual job salary text and parsed INR range, including LPA notation. |
durationMonths, experienceMin, experienceMax | integer | Published duration or required experience when parseable. |
skills, badges, isActivelyHiring | array / boolean | Public skills list and card badge markers. |
postedAgo, postedDate, scrapedAt | string | Relative card age, exact detail-page date when available, and extraction timestamp. |
detailsFetched | boolean | Whether optional detail enrichment succeeded for this listing. |
description, eligibility, perks, openings, applicationDeadline, aboutCompany | various | Public detail-page fields. Present only when includeDetails: true. |
applicantCount | integer | Number of applicants shown on the detail page. Absent when the listing shows "Be an early applicant" (genuinely low competition, not a data gap). Requires includeDetails: true. |
isEarlyApplicant | boolean | true when the listing shows "Be an early applicant" instead of a count. Requires includeDetails: true. |
applicantsPerOpening | number | applicantCount divided by openings, rounded to 2 decimal places. Present only when both values are available. Requires includeDetails: true. |
employerHiringSince | string | Month and year the employer first posted on Internshala, e.g. April 2026. Requires includeDetails: true. |
employerOpportunitiesPosted | integer | Total public opportunities this employer has posted. Requires includeDetails: true. |
employerCandidatesHired | integer | Candidates hired, when shown on the employer profile. Present on some listings only. Requires includeDetails: true. |
changeType, contentHash, firstSeenAt | string | Change status (new/changed/unchanged), fingerprint hash, and first-seen timestamp. Present when monitoring is enabled. |
applicantCountPrevious, applicantCountDelta, applicantsPerDay | integer / number | Prior applicant count, change since last run, and estimated daily velocity. Present starting the second scheduled run when both includeDetails: true and a monitoring mode are active. |
The default key-value store also contains run-summary with page, parser, filter, detail, warning, and monitoring counts.
๐ How recurring monitoring works
Monitoring stores compact fingerprints in a persistent store named by monitoringStoreName. With monitorStateKey: "auto", the source URL, filters, and enrichment setting produce a deterministic key, so different searches never overwrite one another's state.
State is only updated after a complete crawl. Partial runs (where some listing or detail requests fail) can still return available records but do not overwrite the prior baseline.
Monitoring reports new, changed, unchanged, and unseen counts. It does not emit removal events: a listing can leave a limited result window without being removed from Internshala.
When includeDetails: true and a monitoring mode are both active, the second run and later also compute applicant-count velocity fields (applicantCountDelta, applicantsPerDay), showing whether a listing is gaining applicants quickly (closing soon) or staying flat (still open and low-pressure).
๐ฐ Pricing
Pricing is pay per result with no subscription. Empty runs and runs that return no matching listings cost nothing. Enabling detail enrichment bills a small additional event per listing fetched. Check the Store pricing panel before a large run.
โญ Enjoying Internshala Jobs Scraper?
| โญ โญ โญ โญ โญ A review helps students and hiring teams find a smarter way to read the Internshala market. Tell us which field or workflow you found most useful. |
| โ ย ย Rate this Actor on Apify |
๐ก Tips and advanced options
- Start with
maxResults: 25while validating a new filter combination. - Enable
includeDetails: trueonly after confirming your filters return the right listings, to keep enrichment costs predictable. - Keep the same source, filters,
monitoringStoreName, and state key across scheduled monitor runs. - Use separate explicit state keys when two workflows need independent history for the same search.
- Inspect
run-summarywhen output unexpectedly drops. ThepagesWithoutListings,parseFailures, warning, and error counts are early drift signals. - Sort by
applicantsPerOpeningascending to find listings with the least competition first.
โ FAQ, disclaimer, and support
Does the Actor access private Internshala data?
No. It is scoped to public, logged-out listing and detail pages. It does not submit applications, access candidate or employer accounts, or collect private profile data.
Why did a requested filter return fewer records than expected?
Filters are strict. All selected filter groups use AND semantics, while multiple cities use OR within the city list. When a requested field is absent or unparseable, the listing is excluded rather than guessed.
What does "Be an early applicant" mean in the data?
It means genuinely low or zero competition on that listing. The Actor sets isEarlyApplicant: true and omits applicantCount rather than recording a zero, because zero implies measurement where there is none. In practice this is the most favorable signal the Actor can return.
How should I read the applicants-per-opening ratio?
Lower is better for applicants. A ratio of 2.5 means roughly 2.5 people applied per available seat. A ratio above 20 means the listing is heavily contested. The ratio is only computed when both applicantCount and openings are available from the detail page, so its absence on a record does not indicate high competition.
Why can a monitor run emit zero records?
new_only and new_and_changed suppress unchanged listings. Check run-summary.monitoring to distinguish "no changes found" from an incomplete crawl or a filter that matched nothing.
Are applicant velocity fields available on the first run?
No. applicantCountPrevious, applicantCountDelta, and applicantsPerDay are computed by comparing the current applicant count with the prior run's stored value. They appear starting the second scheduled run when both includeDetails: true and a monitoring mode are active against the same monitorStateKey.
Use the Actor's Issues tab to report a reproducible public URL, input, and run ID. Internshala is a trademark of Scholiverse Educare Private Limited. This independent Actor is not endorsed by or affiliated with Internshala. You are responsible for using public data in accordance with applicable laws and the website's terms.
๐ Other actors
- Apna.co Jobs Scraper โ - collects public blue and grey collar job listings in India.
- CutShort Jobs Scraper: India Tech Salaries โ - collects public Indian technology and startup jobs.
- MyCareersFuture Singapore Scraper โ - collects public Singapore job listings.
- Job Bank Scraper โ - collects public Canadian job listings.