Instahyre Jobs Scraper
Pricing
Pay per event
Instahyre Jobs Scraper
Extract public Instahyre jobs with employer profiles, locations, skills, supported facets, and India hiring-market counts. No login or browser required.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
11 days ago
Last modified
Categories
Share
Extract Instahyre jobs from the platform's public India hiring feed without a login. The Actor returns stable job and employer IDs, titles, employer profiles, locations, skills, supported search facets, canonical URLs, and current hiring-market counts.
Use the results for vacancy tracking, recruiting research, employer hiring signals, skill-demand analysis, or a scheduled new-job feed. The Actor uses Instahyre's public JSON search API rather than challenged HTML pages.
What does Instahyre Jobs Scraper do?
The Actor resolves public Instahyre job-function slugs, applies the source's genuine server-side filters, walks the search feed, and saves one normalized dataset row per vacancy.
It supports:
- one or several job functions, such as backend development or data science;
- full-time and internship filtering;
- small, medium, or large company facets;
- bounded pagination up to your requested job limit;
- monitor mode for recurring new-vacancy collection;
- aggregate counts for company sizes, job types, top locations, and job functions.
It does not scrape login-only candidate or recruiter information.
Who is it for?
- Recruiting teams can identify companies hiring for specific technical functions.
- Talent intelligence analysts can compare vacancy and skill demand over time.
- Job-market researchers can track India technology hiring by location and company size.
- Data engineers can feed normalized job rows into a warehouse, spreadsheet, or BI tool.
- Automation builders can schedule the Actor and process only newly observed listings.
Why use this Actor?
The main Instahyre search and detail HTML pages are protected by a browser challenge. The public search JSON feed is not: it provides structured listings without a browser, residential proxy, account, or fragile selectors.
The Actor validates filter values instead of silently accepting unsupported searches. Instahyre's public feed does not implement reliable keyword or location query parameters, so this Actor does not claim those filters. It exposes only source-supported job function, job type, and company-size facets.
What Instahyre job data can I extract?
| Field | Meaning |
|---|---|
jobId | Stable Instahyre vacancy ID |
title, candidateTitle | Public job titles |
companyId, companyName | Stable employer ID and name |
companyTagline, companyAbout | Public employer profile summary |
companyFounded, employeeCount | Employer context when available |
companyLogoUrl | Public company logo URL |
locations, locationsRaw | Normalized and source location values |
skills | Skills and technology keywords |
acceptsOutstationCandidates | Whether outstation candidates are accepted |
url, resourceUri | Canonical page and API resource references |
jobFunctionSlugs, jobType, companySize | Filters used for the row |
marketCounts | Total and facet counts for the same search |
scrapedAt | Collection timestamp in ISO 8601 format |
Fields may be null or empty when Instahyre does not provide a value.
How to scrape Instahyre jobs
- Open the Actor in Apify Console.
- Enter one or more supported
jobFunctionSlugs, or use an empty list for the full feed. - Choose a job type and company-size facet if needed.
- Set
maxItemsto the maximum number of jobs to save. - Turn on
monitorModeonly for a recurring schedule that should deliver newly observed jobs. - Click Start and open the default dataset when the run finishes.
The default prefill collects current backend-development jobs and produces useful output immediately.
Input parameters
| Input | Type | Default | Description |
|---|---|---|---|
jobFunctionSlugs | string array | ['backend-development'] | Public Instahyre job-function slugs. Empty means all functions. |
jobType | string | any | any, full_time, or internship |
companySize | string | any | any, small, medium, or large |
maxItems | integer | 100 | Maximum saved jobs, from 1 to 5,000 |
monitorMode | boolean | false | On later runs with the same filters, stop at the previously observed feed head |
Unknown or inactive function slugs fail clearly rather than returning misleading unfiltered data.
Example input
{"jobFunctionSlugs": ["backend-development"],"jobType": "full_time","companySize": "any","maxItems": 25,"monitorMode": false}
For internships across all functions, use an empty jobFunctionSlugs array and set jobType to internship.
Example output
{"jobId": 430341,"title": "Senior Software Engineer - Care & Onboarding","candidateTitle": "Senior Software Engineer - Care & Onboarding","companyId": 36883,"companyName": "Toast","companyTagline": "Be there","companyFounded": 2011,"employeeCount": 1000,"companyAbout": "Toast provides cloud-based restaurant software and customer support.","companyLogoUrl": "https://media.instahyre.com/images/profile/base/employer/36883/sample.webp","locations": ["Bangalore"],"locationsRaw": "Bangalore","skills": ["Java"],"acceptsOutstationCandidates": false,"url": "https://www.instahyre.com/job-430341-senior-software-engineer-care-onboarding-at-toast-bangalore/","resourceUri": "/api/v1/job_search/430341","jobFunctionSlugs": ["backend-development"],"jobType": "full_time","companySize": "any","marketCounts": {"totalJobs": 3952,"byCompanySize": { "small": 1105, "medium": 626, "large": 2227 },"byJobType": { "full_time": 3952, "internship": 6 },"topLocations": [{ "name": "Bangalore", "count": 2348 }],"topJobFunctions": [{ "id": 10, "name": "Backend Development", "count": 3958 }]},"scrapedAt": "2026-08-12T20:16:58.452Z"}
The example reflects the current output shape. Source values and counts change as Instahyre's feed changes.
How does monitor mode work?
With monitorMode: true, the Actor stores a small feed-head state for the exact combination of job functions, job type, and company size. A first run returns current jobs up to maxItems. Later scheduled runs read newest-first pages and stop when they reach an ID saved at the previous feed head.
Use a separate Apify Task for each monitored filter combination. Changing filters intentionally creates a separate state key. Monitor mode detects newly appearing feed records; it is not an alert delivery service by itself. Connect the dataset to a webhook, Make, Zapier, Slack, email workflow, or your own system for notifications.
How much does it cost to scrape Instahyre jobs?
Pricing uses one start event per run plus one item event per delivered job. Empty pages and duplicate jobs do not create item charges.
At the BRONZE tier, the run fee is $0.001 and each delivered job is $0.001056:
- 10 jobs: about $0.01156;
- 100 jobs: about $0.1066;
- 1,000 jobs: about $1.057.
Apify subscription tiers apply decreasing per-job prices. The Console shows the active price before you start a paid run. Platform compute is included in Store PPE pricing for users of the published Actor.
Limits and source coverage
- Instahyre returns 35 records per search page even when a different page size is requested.
- The source search index limits deep offset pagination to approximately 10,000 jobs per filter combination.
maxItemsis capped at 5,000 to bound runtime and output.- Public search results include employer summaries and skills, but not full job descriptions or per-job salary ranges.
- Keyword and location parameters are not exposed because observed public API parameters for them are ignored.
- Individual detail pages may require a browser challenge or account and are outside this Actor's scope.
- The public API can change. A changed or non-JSON response causes a failed run rather than silent empty output.
Reliability and troubleshooting
Requests time out after 30 seconds and retry transient network errors, HTTP 429 responses, and temporary server failures up to three attempts. Invalid input and deterministic source errors are not retried blindly.
If a run fails with Unknown or inactive job function slug, check the spelling and use a current Instahyre slug such as backend-development, full-stack-development, or data-science-machine-learning.
If a narrow combination returns no rows, try companySize: 'any' or an empty job-function list. A genuine zero-result query completes without fabricated records or item charges.
Export and integration workflows
Dataset rows can be downloaded as JSON, CSV, Excel, XML, or RSS from Apify. Common workflows include:
- schedule a data-science monitor every morning;
- send each resulting dataset to Google Sheets or a warehouse;
- group rows by
companyName,locations, orskills; - compare
marketCounts.totalJobsacross scheduled snapshots; - trigger recruiting outreach research when a target employer begins hiring.
For stable incremental processing, deduplicate downstream records by jobId.
Use the API with cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~instahyre-jobs-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"jobFunctionSlugs":["backend-development"],"maxItems":25}'
To wait for completion and receive dataset items directly, use the synchronous dataset-items endpoint documented in Apify Console.
Use the API with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/instahyre-jobs-scraper').call({jobFunctionSlugs: ['data-science-machine-learning'],jobType: 'full_time',maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Use the API with Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/instahyre-jobs-scraper').call(run_input={'jobFunctionSlugs': ['backend-development'],'companySize': 'small','maxItems': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
Use Instahyre Jobs Scraper with MCP
Add the Actor to Claude Code through Apify MCP:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/instahyre-jobs-scraper"
Claude Desktop, Cursor, and VS Code setup: add this JSON MCP server configuration in the client's MCP settings.
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/instahyre-jobs-scraper"}}}
Example prompts:
- "Collect 50 current backend-development jobs from Instahyre and summarize the most common skills."
- "Export Instahyre internships and group them by location."
- "Run my Instahyre data-science monitor and list newly observed employers."
Responsible use and legality
This Actor accesses publicly returned job-search data. You are responsible for complying with applicable laws, Instahyre's terms, privacy requirements, and your downstream use case. Do not use the data for discrimination, harassment, spam, or attempts to identify private candidates or recruiters.
Store only what your workflow needs, apply suitable retention controls, and respect deletion or correction obligations. This documentation is operational guidance, not legal advice.
Frequently asked questions
Does the Actor require an Instahyre login?
No. It uses the public unauthenticated job-search and job-function JSON endpoints.
Does it scrape full descriptions or salary?
No. Those fields are not available in the accepted public search feed, and this Actor does not bypass challenged or account-dependent detail pages.
Can I search by arbitrary keyword or city?
Not server-side. Instahyre's observed public feed ignores plausible keyword and location parameters. Use supported job-function facets, then filter the returned skills or locations downstream.
Why did a monitor run return zero jobs?
That normally means no records appeared ahead of the saved feed head for those exact filters. It does not mean the existing search feed is empty.
Can I use several job functions together?
Yes. Provide up to 20 valid slugs. Instahyre combines repeated job-function filters in one search.
Related automation-lab Actors
- Cutshort Jobs Scraper for another India-focused technology hiring source.
- Internshala Scraper for public internship and early-career listings.
- Company Career Page Jobs Scraper for normalized listings from supplied employer career pages.
Combining source-specific Actors can broaden market coverage while preserving each source's stable identifiers and supported filters.