Instahyre Jobs Scraper avatar

Instahyre Jobs Scraper

Pricing

Pay per event

Go to Apify Store
Instahyre Jobs Scraper

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

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

11 days ago

Last modified

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?

FieldMeaning
jobIdStable Instahyre vacancy ID
title, candidateTitlePublic job titles
companyId, companyNameStable employer ID and name
companyTagline, companyAboutPublic employer profile summary
companyFounded, employeeCountEmployer context when available
companyLogoUrlPublic company logo URL
locations, locationsRawNormalized and source location values
skillsSkills and technology keywords
acceptsOutstationCandidatesWhether outstation candidates are accepted
url, resourceUriCanonical page and API resource references
jobFunctionSlugs, jobType, companySizeFilters used for the row
marketCountsTotal and facet counts for the same search
scrapedAtCollection timestamp in ISO 8601 format

Fields may be null or empty when Instahyre does not provide a value.

How to scrape Instahyre jobs

  1. Open the Actor in Apify Console.
  2. Enter one or more supported jobFunctionSlugs, or use an empty list for the full feed.
  3. Choose a job type and company-size facet if needed.
  4. Set maxItems to the maximum number of jobs to save.
  5. Turn on monitorMode only for a recurring schedule that should deliver newly observed jobs.
  6. 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

InputTypeDefaultDescription
jobFunctionSlugsstring array['backend-development']Public Instahyre job-function slugs. Empty means all functions.
jobTypestringanyany, full_time, or internship
companySizestringanyany, small, medium, or large
maxItemsinteger100Maximum saved jobs, from 1 to 5,000
monitorModebooleanfalseOn 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.
  • maxItems is 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:

  1. schedule a data-science monitor every morning;
  2. send each resulting dataset to Google Sheets or a warehouse;
  3. group rows by companyName, locations, or skills;
  4. compare marketCounts.totalJobs across scheduled snapshots;
  5. 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 ApifyClient
client = 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().items
print(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.

Combining source-specific Actors can broaden market coverage while preserving each source's stable identifiers and supported filters.