Instahyre Jobs Scraper | India Tech Jobs API with Descriptions
Pricing
from $0.56 / 1,000 jobs
Instahyre Jobs Scraper | India Tech Jobs API with Descriptions
$0.80 per 1,000 jobs, full description included | Scrape Instahyre India tech jobs by skill, city, experience, company and company size. Only-new mode + skipJobIds for daily schedules. JSON API, no login, no proxy.
Pricing
from $0.56 / 1,000 jobs
Rating
0.0
(0)
Developer
Daemon Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Instahyre Jobs Scraper | India Tech Jobs API with Full Descriptions
Instahyre Jobs Scraper is a pay-per-result Apify Actor that returns Instahyre job listings (the hiring platform Indian product companies and startups use for engineering, data, product and design roles) as JSON, CSV or Excel. It is for tech recruiters and staffing agencies, job aggregators, B2B sales teams that track startup hiring, workforce analysts and job-alert builders. Each row has the full job description (HTML and plain text), experience range, skills, job functions, posting date and the company profile (headcount, founding year, tagline, website, logo); filters cover skill or role, city, experience, company and company size. Price: $0.80 per 1,000 jobs with the description included, plus $0.001 per run; no login, cookies, proxy or browser. On 21 October 2026 Instahyre listed 12,743 open tech jobs, 6,764 of them in Bangalore and 1,095 work from home; python matched 4,300.
$0.80 per 1,000 jobs, full description included, plus $0.001 per run. No login, cookies, proxy or browser: the Actor reads the JSON API behind the Instahyre website and the public job pages. Apify's free plan ($5 credit every month) covers about 6,000 jobs with full descriptions. Built for schedules: switch on Only new jobs since the last run and a daily run returns, and charges for, only the jobs you have not received before. Jobs you already have can also be passed in skipJobIds.
Live check, 21 Oct 2026:
pythonmatched 4,300 open Instahyre jobs (2,600 in Bangalore),react1,600,data science8,000 (title and skill-tag matching is broad),devopswork-from-home 134. A 50-job run with descriptions takes well under a minute on the Apify platform and costs $0.04 plus the $0.001 start fee.
Who buys Instahyre data, and what for
| You are | What this Actor gives you |
|---|---|
| Tech recruiters and staffing agencies | A daily list of new openings by skill, city, experience band and company size, with the hiring company's headcount and founding year, so you know which startups and product companies are hiring right now. |
| Job aggregators and HR-tech products | Instahyre as a source with stable job IDs (dedupKey), full JD text, de-duplication across keywords and runs, and an API you can call on a schedule. Same conventions as the IIMJobs, Hirist and Foundit Actors by the same publisher. |
| B2B sales and lead generation | A company hiring five backend engineers is buying cloud, tooling and services. Each row carries the company name, size, tagline, website and logo. |
| Workforce and market analysts | Demand by skill, city, experience band and company size over time; share of remote roles; which skills large companies ask for versus startups. |
| Candidates and job-alert builders | Your own alert for golang jobs at small companies in Bangalore, delivered to a sheet, Slack or email the moment they appear. |
| AI agents (MCP) | Ask Claude or ChatGPT "new Python jobs in Hyderabad at startups posted this week" and let it call this Actor through Apify's MCP server. |
Quick start (about a minute)
- Click Try for free. The form is pre-filled with
python. - Optionally add skills or roles (
react,data science,product management), cities (Bangalore,Hyderabad,Work From Home), a company size and Posted within (days) =30. - Click Start. 50 jobs with full descriptions take well under a minute and cost $0.04.
- Download the results as JSON, CSV or Excel, or save the input as a task, tick Only new jobs since the last run and schedule it daily to get a fresh feed in Google Sheets, a webhook, Make, Zapier or n8n.
From code (returns the jobs in one call):
curl -X POST "https://api.apify.com/v2/acts/data_daemon~instahyre-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries": ["python"], "locations": ["Bangalore"], "companySizes": ["small", "medium"], "maxJobs": 100}'
From an AI assistant: add the MCP connector https://mcp.apify.com/?tools=data_daemon/instahyre-jobs-scraper in Claude, ChatGPT, Cursor or VS Code.
Need other India boards too? IIMJobs Jobs Scraper, Hirist.tech Jobs Scraper and Foundit Jobs Scraper by the same publisher use the same queries / locations / onlyNewSinceLastRun / skipJobIds / RUN-SUMMARY conventions, so one pipeline handles all four boards.
Input
{"queries": ["python", "golang"],"locations": ["Bangalore", "Work From Home"],"companySizes": ["small", "medium"],"minExperience": 2,"maxExperience": 6,"postedWithinDays": 30,"includeDescription": true,"maxJobsPerQuery": 50}
| Field | Type | Description |
|---|---|---|
queries | array | Skills or roles, one Instahyre search per item, matched against job titles and skill tags (python, react, data science, java developer). A job found by two keywords is saved and charged once. Required; skills, query, keywords and search are accepted as aliases. |
locations | array | Optional cities as Instahyre lists them: Bangalore, Mumbai, Delhi, Gurgaon, Noida, Hyderabad, Chennai, Pune, Kolkata, Ahmedabad, Work From Home; regions (South India) and about 300 smaller cities also work. Several cities = any of them. Applied by the site. Bengaluru, Gurugram, Bombay, New Delhi and Remote are mapped; an unknown name is ignored and reported in the status message. |
companySizes | array | Any of small (under 100 employees), medium (100-1,000), large (over 1,000). Applied by the site. |
companies | array | Only jobs posted by these companies (Amazon, Deutsche Telekom Digital Labs). With an empty keyword list this watches everything a company posts. |
jobType | string | all (default), full-time or internship. |
experienceYears | integer | Instahyre's own filter: jobs open to a candidate with exactly this many years. Applied by the site, so nothing outside it is fetched. |
minExperience / maxExperience | integer | Experience band in years (0-30), overlap semantics: a 3-6 year job matches minExperience: 5. Read from each job page; jobs that state no range are kept. |
postedWithinDays | integer | Only jobs posted in the last N days (1-365). Instahyre keeps jobs open for months and its search has no date filter, so the Actor reads the posting date from each job page and leaves out older jobs without charging; in only-new mode those are remembered too, so later runs do not re-check them. |
includeDescription | boolean | Fetch the public job page for each job (default true, one extra request per job, same price): full description, posting date, experience range, employment type, job functions and company website. Off = listing fields only (title, company profile, cities, skills, URL), about three times as fast. |
maxJobsPerQuery | integer | Stop a keyword after this many new jobs (default 50). The site serves 35 jobs per page, so 1,000 jobs are about 29 search requests. |
maxJobs | integer | Hard cap on saved jobs for the whole run (0 = no cap). |
onlyNewSinceLastRun | boolean | Deliver only jobs that an earlier run with the same stateName has not delivered; skipped jobs are not charged (default false). |
stateName | string | Name of this saved search's memory for onlyNewSinceLastRun. Derived from the keywords, cities and filters when empty. Use a new name to start over. |
skipJobIds | array | Job ids you already have, as an array of strings or numbers. Skipped before any page fetch and never charged. Large arrays are fine. |
proxyConfiguration | object | Optional (Advanced). Instahyre answers Apify's datacenter IPs directly, so none is needed. |
Bad input never fails the run: unknown fields are ignored with a warning, a reversed experience range is swapped, an unknown city is dropped and named in the status message, a keyword with no matches ends with Saved 0 jobs, and an empty keyword list with a city, company or size filter still searches that filter.
Output
One record per job. Example from a real run on 21 Oct 2026 (description shortened):
{"id": 446412,"dedupKey": "instahyre:446412","url": "https://www.instahyre.com/job-446412-python-engineer-at-nineleaps-2-bangalore-hyderabad/","applyUrl": "https://www.instahyre.com/job-446412-python-engineer-at-nineleaps-2-bangalore-hyderabad/","title": "Python Engineer","company": {"id": 5003,"name": "Nineleaps","tagline": "We build high performance solutions","about": "Nineleaps are enablers of Digital Transformation across industries, helping partner companies become future ready…","founded": 2014,"employeeCount": 200,"size": "medium","logo": "https://media.instahyre.com/images/profile/base/employer/5003/dcac758458/nineleaps.webp","website": "https://www.nineleaps.com/","featured": false,"diversityEmployer": false},"locations": ["Bangalore", "Hyderabad"],"remote": false,"acceptsOutstation": true,"experienceMinYears": 2,"experienceMaxYears": 4,"employmentType": "FULL_TIME","skills": ["FastAPI", "MySQL", "PostgreSQL", "Python", "SQL"],"functions": ["Backend Development", "Full-Stack Development", "Other Software Development"],"postedAt": "2026-10-09T00:00:00.000Z","descriptionHtml": "<p><strong>Responsibilities: </strong></p><ul><li>Backend Development: Design, develop, and maintain robust, scalable…","description": "Responsibilities:\nBackend Development: Design, develop, and maintain robust, scalable, and high-performance backend systems using Python and FastAPI…","query": "python","scrapedAt": "2026-10-21T05:42:36.132Z"}
| Field | Notes |
|---|---|
id, dedupKey, url, applyUrl | Instahyre job id, a stable instahyre:<id> key for your own de-duplication, and the public job page (applications go through Instahyre, so applyUrl is the same page). |
title, skills | As tagged by the employer; skills is Instahyre's skill-tag list for the job. |
company.* | name, tagline, about (Instahyre's own note on the company), founded, employeeCount with a size band (small under 100, medium 100-1,000, large over 1,000), logo, website, and the site's featured / diversityEmployer badges. |
locations, remote, acceptsOutstation | City names as Instahyre spells them (Work From Home for remote roles, with remote: true), and whether the employer considers candidates from other cities. |
experienceMinYears, experienceMaxYears, employmentType, functions | From the job page: the stated experience band, FULL_TIME or INTERN, and Instahyre's job-function tags (Backend Development, Data Science / Machine Learning, …). |
postedAt | Posting date from the job page (day precision, as ISO midnight UTC). null when includeDescription is off. |
descriptionHtml, description | Full JD as HTML and plain text (includeDescription: true); null when the page has none. |
query, scrapedAt | The keyword that found the job and the collection time. |
Recruiter names shown on job pages are not output. Download as JSON, CSV, Excel, or push to Google Sheets, webhooks and other Apify integrations. Field names are stable; new fields are only added, so your Sheets, Zapier or Make mappings keep working.
Scheduling & automation
The heavy users of this Actor run it on a schedule with a short keyword list and a city or company-size filter, and let the Actor remember what it has already delivered.
Recipe: skills × cities, only new jobs, every morning
{"queries": ["python", "golang", "node.js"],"locations": ["Bangalore", "Hyderabad", "Work From Home"],"companySizes": ["small", "medium"],"onlyNewSinceLastRun": true,"stateName": "backend-startups-daily","maxJobsPerQuery": 500}
- Paste the input, click Save as task, then Schedules → Create schedule → Daily (for example
0 8 * * *, 08:00 IST) and add the task. - The first run delivers every matching job (set
maxJobsPerQueryhigh enough to take the whole list, or addpostedWithinDaysto start from recent postings only). Every later run delivers only the jobs that were not delivered before, and skipped jobs are not charged. The memory lives in a key-value store namedinstahyre-jobs-statein your own Apify account, one record perstateName, and forgets ids after 120 days. - Give each saved search its own
stateName(or leave it empty and the Actor derives one from the keywords, cities and filters). Change the name to start over. - Already de-duplicating on your side? Pass the
ids you have inskipJobIdsinstead; they are skipped before any page fetch and never charged.
Where the results go
- Integrations tab of the task: Google Sheets (append rows), Slack or email (a message per run), or a webhook to your backend when the run finishes.
- Make, Zapier, n8n: use the Apify module/node with the task id, or poll the dataset with the API call below.
- Every run writes a
RUN-SUMMARYrecord to its key-value store: keywords, jobs found, new, filtered, skipped (already delivered /skipJobIds) and charged counts, so a webhook consumer can decide what to do without opening the dataset.
Synchronous API call (waits for the run and returns the new jobs):
curl -X POST "https://api.apify.com/v2/acts/data_daemon~instahyre-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"queries": ["python"], "locations": ["Bangalore"], "onlyNewSinceLastRun": true, "stateName": "python-blr-daily", "maxJobsPerQuery": 500}'
Pricing and what a month costs
Pay per event. Platform compute is included; the Actor runs in 512 MB, so the start fee is always a single event.
| Event | Price | When it is charged |
|---|---|---|
| Job | $0.0008 | Each job saved to your dataset, full description included |
| Actor start | $0.001 | Once per run |
That is $0.80 per 1,000 jobs with full descriptions. Jobs skipped by Only new jobs since the last run, skipJobIds, de-duplication across keywords or your date and experience filters are never charged.
Plan discounts: prices above are for the Free and Starter plans; Scale plans pay 15% less ($0.68 per 1,000) and Business plans 30% less ($0.56 per 1,000).
| How teams use it | Volume (measured 21 Oct 2026) | Cost |
|---|---|---|
Quick look: 50 python jobs with descriptions | 50 jobs, 1 run | $0.041 |
One-off export: every open react job in Bangalore | about 900 jobs, 1 run | $0.72 |
Full export of one skill: all open python jobs in India | about 4,300 jobs, 1 run | $3.44 |
Daily feed, only new jobs: golang at small companies | about 200 jobs on the first run, then a few a day | about $0.25 a month after the first run |
| Daily feed, only new jobs: 10 skills × 3 cities, about 60 new jobs a day | 1,800 jobs, 30 runs | about $1.50 a month |
Apify's free plan includes $5 of usage a month: about 6,000 jobs with descriptions, enough for a trial and several small daily feeds.
Tips
- Keyword matching is broad (titles and skill tags), so
data sciencealso returns data-engineering roles; addcompanySizes,experienceYearsor a city to narrow it before you raisemaxJobsPerQuery. experienceYears,companySizes,companies,jobTypeandlocationsare applied by the site before anything is fetched, so they make runs fast and cheap;postedWithinDaysand the experience band are checked on each job page.- Set
includeDescription: falsewhen you only need titles, companies, cities and skills; it makes a run about three times as fast. maxExperience: 1is a good early-career filter;jobType: "internship"lists the internships (a few dozen at any time).- Set a maximum cost per run on the task; the Actor stops cleanly at the limit and says so in the status message.
FAQ
How much does it cost to scrape Instahyre?
$0.0008 per job with its full description plus $0.001 per run, so 100 jobs cost about $0.08 and a 50-jobs-a-day feed about $1.25 a month.
Is there an official Instahyre API?
No public one. This Actor reads the JSON that the Instahyre website itself loads for its job search, plus the public job pages, and exposes them as a REST API with schedules, webhooks and only-new-jobs runs.
Does it return the full job description?
Yes, as HTML and plain text, plus the experience range, posting date, job functions, skills and the company profile with headcount, founding year and website.
Why is the posting date old on many jobs?
Instahyre keeps a job open until the employer closes it, so a feed without postedWithinDays includes jobs posted months ago. Use postedWithinDays for recent postings, or only-new mode, which after the first run delivers only jobs that are new on the site.
Does it include salaries or applicant counts?
No. Instahyre does not publish salary ranges or applicant counts on public job pages, and this Actor only reads public data.
Why does a city return nothing?
The site only accepts the location names it lists; the Actor maps the common alternative spellings and names any location it had to ignore in the status message. Use Bangalore, Delhi, Gurgaon, Noida, Mumbai, Hyderabad, Chennai, Pune, Kolkata, Ahmedabad or Work From Home.
Do I need a proxy or login?
No.
Related Actors by Daemon Data
- Hirist.tech Jobs Scraper – India IT and tech jobs with full descriptions, same scheduling conventions as this Actor
- IIMJobs Jobs Scraper – India's MBA, finance, consulting and management jobs with full descriptions and only-new mode
- Foundit Jobs Scraper – foundit.in (Monster India) jobs with full descriptions, only-new mode for daily feeds
- Oracle Jobs Scraper – every job on any Oracle Recruiting Cloud (Oracle HCM) career site
- India IPO Tracker – live IPO GMP, subscription and listing data for India
- Tickertape India Stocks Scraper – NSE/BSE fundamentals, shareholding and screener
- Dubai Property Transactions – Dubai Land Department sales, mortgages and gifts
- UK Gazette Insolvency Notices – winding-up petitions, administrations and liquidations
- Luma Events Scraper – lu.ma events by city, topic or organiser calendar, with hosts and ticket info
Support
Found a bug or need another field or filter? Open an issue on the Issues tab; issues are usually answered within a day. Custom variants of this Actor are available on request.
A quick review on the actor page helps other users find it.
Disclaimer
This Actor collects publicly available job listings for informational purposes and deliberately leaves out recruiters' personal details. Respect the source website's terms of use and applicable data-protection laws when using the data.