# Instahyre Jobs Scraper: India Tech Jobs & Hiring Monitor (`getascraper/instahyre-jobs-scraper`) Actor

Search and monitor Instahyre public India tech jobs by function, skill, location, company size, and job type. Optional enrichment adds descriptions, experience ranges, and employer email lookup. Change tracking flags new, updated, and removed listings. Export to JSON, CSV, or Excel. $0.001/job.

- **URL**: https://apify.com/getascraper/instahyre-jobs-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** Jobs, Lead generation, Automation
- **Features:** Limited permissions
- **Stats:** 1,023 total users, 346 monthly users, 99.1% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.79 / 1,000 job postings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 💼 Instahyre Jobs Scraper: India Tech Jobs & Hiring Monitor

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;margin-bottom:0">
<tr>
<td colspan="4" style="padding:14px 18px;background:#EEF6FF;border:none;border-top:3px solid #1769AA;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;color:#1C1917;border-radius:10px 10px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">Track which India tech companies are actually hiring, and how that changes week to week.</span> <span style="font-size:15px;color:#57534E">Search Instahyre jobs, or watch a list of companies and get real hiring deltas since your last run.</span>
</td>
</tr>
<tr>
<td colspan="4" style="padding:10px 14px;background:#1769AA;border:none;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;color:#FFFFFF">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">INDIA JOBS SOURCES AND INVENTORY</span>
<span style="color:#FFFFFF;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Apna, CutShort, Internshala, Instahyre, and the combined India job feed</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border:none;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-Bqf3sZlaZvWnVZbe1-X4r5SBrUub-CompressJPEG.Online_img%28512x512%29_%2813%29.jpg" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/apna-co-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Apna.co Jobs</a></span><br>
<span style="color:#57534E;font-size:11px">Blue and grey collar roles</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-hgMCIk2Sb7HnSumQC-vaaBV31jet-ChatGPT_Image_Sep_4__2026__07_42_37_AM.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/cutshort-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">CutShort Jobs</a></span><br>
<span style="color:#57534E;font-size:11px">Technology and startup roles</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25.0%;background:#EEF6FF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-M5Myh7i6WMTmfwMlw-NCEUGam6gM-logo_200_200.webp" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/instahyre-jobs-scraper" style="color:#1769AA;text-decoration:none;font-weight:700;font-size:13px">Instahyre Jobs</a></span><br>
<span style="color:#1769AA;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #D6D3D1;border-right:1px solid #D6D3D1;border-bottom:1px solid #D6D3D1;vertical-align:top;width:25.0%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-8hG15V7QtjKUpwAt3-GucaVgd5Jo-s11728_indian_flag_logo_isolated_on_white_background_-styliz_104" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/india-job-inventory-feed" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">India Job Feed</a></span><br>
<span style="color:#57534E;font-size:11px">Combined multi-source job inventory</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;margin-top:0;margin-bottom:0"><tr><td style="padding:24px 28px;background:#EEF6FF;border:1px solid #B8D9F5;border-top:none;color:#1C1917"><span style="font-size:23px;font-weight:800;color:#102A43">See which companies are hiring for what, and watch that change over time.</span><br><span style="font-size:15px;color:#486581">Search Instahyre jobs by role, skill, or company, or switch to tracker mode and get a hiring profile for any company on your watchlist, with real changes since your last run.</span></td></tr></table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;margin-top:0"><tbody><tr style="width:100%"><td width="25%" style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8D9F5;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 0 10px"><b style="color:#102A43">📈 Company hiring tracker</b><br><span style="color:#486581">Open-role count, function mix, and location mix for any company, with deltas across runs.</span></td><td width="25%" style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8D9F5;border-left:none;vertical-align:top;border-top:none;color:#1C1917"><b style="color:#102A43">📊 Free market snapshot</b><br><span style="color:#486581">Total matching jobs, top hiring companies, and top locations on every search, at no extra cost.</span></td><td width="25%" style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8D9F5;border-left:none;vertical-align:top;border-top:none;color:#1C1917"><b style="color:#102A43">🧑‍💼 Recruiter and agency signal</b><br><span style="color:#486581">Recruiter name and designation, plus whether a listing came from an agency or the employer directly.</span></td><td width="25%" style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #B8D9F5;border-left:none;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 10px 0"><b style="color:#102A43">🛡️ Built to keep running</b><br><span style="color:#486581">Proxy-backed, retries anti-bot challenges, and never loses rows already collected.</span></td></tr></tbody></table>

Instahyre is a public India hiring source for technology and business roles, but it never publishes when a job was posted. This Actor turns that gap into an advantage: search its listings directly, or track a watchlist of companies over scheduled runs to see hiring momentum Instahyre itself doesn't show you. It does not collect private candidate profiles or private contact details.

### 🎯 Who is this for?

- **Recruiting and staffing teams** watching a focused set of companies for new roles and hiring momentum.
- **Job-data teams** adding India technology hiring coverage to a product.
- **Market and competitive-intelligence analysts** tracking which employers are scaling hiring, and where.
- **Talent researchers** comparing roles, skills, locations, and employer signals.

### 🚀 How it works

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed"><tbody><tr style="width:100%"><td width="33%" style="padding:16px 14px;width:33.333%;background:#EEF6FF;border:1px solid #B8D9F5;border-radius:10px 0 0 10px;vertical-align:top;color:#1C1917"><b style="color:#102A43">STEP 1</b><br><span style="color:#486581">Search by role, skill, or company, or list companies to track instead.</span></td><td width="33%" style="padding:16px 14px;width:33.333%;background:#EEF6FF;border:1px solid #B8D9F5;border-left:none;vertical-align:top;color:#1C1917"><b style="color:#102A43">STEP 2</b><br><span style="color:#486581">Add detail enrichment for recruiter names, agency signals, and descriptions.</span></td><td width="33%" style="padding:16px 14px;width:33.333%;background:#EEF6FF;border:1px solid #B8D9F5;border-left:none;border-radius:0 10px 10px 0;vertical-align:top;color:#1C1917"><b style="color:#102A43">STEP 3</b><br><span style="color:#486581">Export the results, or schedule the run to get a recurring hiring feed with real changes.</span></td></tr></tbody></table>

### ⚙️ Input

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `jobFunctionSlugs` | array of strings | No | Live Instahyre job-function slugs. Leave empty for the complete public feed. Unrecognized names are skipped with a warning that lists valid examples. |
| `jobType` | enum | No | Any, full-time, or internship roles. |
| `companySize` | enum | No | Any, small, medium, or large employers. |
| `skills` | array of strings | No | Skills such as Java, Python, SQL, or React. |
| `skillMatch` | enum | No | Match any requested skill or require all requested skills. |
| `keywords` | array of strings | No | Terms matched across the role, skills, company context, and location. |
| `keywordMatch` | enum | No | Match any keyword or require all keywords. |
| `locations` | array of strings | No | Location terms such as Bangalore, Pune, or Gurgaon. |
| `remoteOnly` | boolean | No | Keep roles whose published location explicitly indicates remote work. |
| `companyNames` | array of strings | No | Optional company filter. Tries an exact Instahyre match first, then falls back to partial matching if that name isn't recognized exactly. |
| `excludeKeywords` | array of strings | No | Terms that exclude a role from the output. |
| `excludeAgencyPosted` | boolean | No | Skip roles posted by a staffing agency rather than the employer directly. Requires `includeDetails`. |
| `diversityEmployersOnly` | boolean | No | Keep only roles from employers Instahyre flags with a diversity-hiring badge. |
| `includeDetails` | boolean | No | Add the public description, experience range, category, functions, open-or-closed status, recruiter name and designation, and the agency-vs-direct-employer signal. |
| `enrichEmails` | boolean | No | Optional add-on. Looks up the hiring company's own website and, if a contact email is published there, adds it to the row. Not sourced from Instahyre, and not found for every company. Billed only on rows where an email is actually found. |
| `monitorMode` | enum | No | Current snapshot or changes only. |
| `emitBaseline` | boolean | No | Emit the first monitoring baseline as new rows. |
| `includeUnchanged` | boolean | No | Include roles whose published fields did not change. |
| `stateName` | string | No | Stable name that keeps one monitoring search separate from another. |
| `maxItems` | integer | No | Maximum job rows saved in one run. |
| `maxPages` | integer | No | Maximum source pages scanned. One page contains up to 20 jobs. |
| `trackCompanies` | array of strings | No | Exact Instahyre company names to track as a hiring profile instead of searching jobs. When set, all other search filters above are ignored. |
| `proxyConfiguration` | object | No | Apify Proxy settings for the main search and tracker requests. |

### 📊 Data table

| Field | Type | Description |
| --- | --- | --- |
| `jobId` | string | Stable public Instahyre job identifier. |
| `title`, `candidateTitle` | string | Published role title fields. |
| `companyName`, `companyId` | string, integer | Public employer identity. |
| `companyResourceUri`, `companyLogoUrl` | string | Employer source and logo links when published. |
| `companyTagline`, `companyFounded`, `employeeCount` | string, integer | Public employer context when published. |
| `isDiversityEmployer`, `isFeaturedEmployer` | boolean | Whether Instahyre flags the employer with a diversity or featured badge. |
| `locations`, `locationsRaw`, `isRemote` | array, string, boolean | Normalized locations and the remote label detected from them. |
| `skills` | array | Public role skill tags. |
| `acceptOutstation` | boolean | Whether the source accepts outstation applicants. |
| `publicUrl`, `resourceUri` | string | Public role page and source record links. |
| `description` | string | Public role description when detail enrichment is enabled. |
| `experienceMin`, `experienceMax` | number | Public experience range when detail enrichment is enabled. |
| `jobCategory`, `jobFunctions`, `jobType` | string, array, string | Public role classification fields. |
| `isActive`, `isClosed` | boolean | Whether the listing is still open or has closed, so you can drop stale roles, when detail enrichment is enabled. |
| `recruiterName`, `recruiterDesignation`, `recruiterProfileUrl` | string | The recruiter handling the role, when detail enrichment is enabled. |
| `recruiterCompanyName`, `isAgencyPosted` | string, boolean | The recruiter's own company, and whether it differs from the hiring company, when detail enrichment is enabled. |
| `detailStatus`, `detailError` | string | Whether optional details were fetched, with a short warning when not. |
| `employerEmail`, `employerEmailKind`, `employerEmailDomain` | string | Contact email found on the hiring company's own website, when email enrichment is enabled and one was found. |
| `emailEnrichmentStatus` | string | `found`, `not_found`, or `failed`, when email enrichment is enabled. |
| `changeType` | string | Snapshot, new, updated, unchanged, or safely confirmed removed. |
| `firstSeenAt`, `lastSeenAt`, `scrapedAt` | date-time | Collection and monitoring timestamps. |
| `source` | string | Source label for downstream joins. |

When `trackCompanies` is set, each row is a company hiring profile instead (`recordType: "company_profile"`): `companyName`, `found`, `openRoles`, `openRolesDelta`, `functionBreakdown`, `functionsStarted`, `functionsStopped`, `locationBreakdown`, `locationsOpened`, `locationsClosed`, `remoteShare`, `remoteShareDelta`, `firstTrackedAt`, and `lastTrackedAt`. Delta fields are only present from the second run onward for a given company. If a tracked name isn't recognized, `found` is `false` and a `warning` explains why. `agencyFunctionNames` lists the functions an agency recruiter covers, when a job is agency-posted.

Every run also writes a `MARKET_SNAPSHOT` to the key-value store: total matching jobs, top hiring companies, top locations, function and company-size breakdowns, for your exact search filters, at no extra cost.

### 🗂️ Choose the right data view

- **💼 Jobs & employer overview**: role, company, skills, locations, employer size and tagline, and the employer email when enrichment is enabled.
- **🔔 Hiring changes**: new, updated, unchanged, and safely confirmed removed roles.
- **📄 Job details & provenance**: descriptions, experience ranges, categories, functions, recruiter, and stable source identifiers for your database.
- **📈 Company hiring tracker**: open-role counts, deltas, and the functions and locations a tracked company started or stopped hiring for.

### 💰 Pricing

Pricing is pay per result. Only job rows and company-tracker rows saved to the dataset are chargeable. Empty searches and the run summary do not create result charges. There is no subscription. Optional employer-email discovery is a separate charge, billed only on rows where an email was actually found on the company's website.

### ⭐ Enjoying Instahyre Jobs Scraper?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0"><tr><td style="padding:20px 24px;background:#EEF6FF;border:1px solid #B8D9F5;border-left:5px solid #1769AA;border-radius:10px 10px 0 0;color:#1C1917"><span style="font-size:20px;letter-spacing:4px;color:#102A43">⭐ ⭐ ⭐ ⭐ ⭐</span><br><b style="color:#102A43">Found a hiring signal you couldn't get anywhere else?</b><br><span style="color:#486581">A rating helps other recruiters and analysts discover this Actor and guides the next improvements.</span></td></tr><tr><td style="padding:0;background:#1769AA;border:1px solid #1769AA;border-left:5px solid #1769AA;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#FFFFFF"><a href="https://apify.com/getascraper/instahyre-jobs-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800">★&nbsp;&nbsp;Rate this Actor on Apify</a></td></tr></table>

### ❓ FAQ

##### How does the company hiring tracker know what changed?

Instahyre never publishes when a job was posted, so there is no "new since yesterday" field to read. Instead, each tracked company's open-role count, function mix, and location mix are saved after every run and compared against the previous run, which is what produces real deltas like an open-role count moving up or a company starting to hire for a new function. Use the exact company name Instahyre shows, for example one from a prior `MARKET_SNAPSHOT`'s top companies.

##### Can I monitor new Instahyre jobs every day?

Yes. Choose Changes only, keep a stable state name, and schedule the Actor. The baseline advances only after a complete source scan.

##### Instahyre jobs data kaise export karen?

Run the Actor and export the saved public job rows from the Apify dataset in CSV, JSON, Excel, or another supported format.

##### Does the Actor include salary or private candidate information?

No. Those values are not promised by the public source, and private candidate profiles are outside this Actor's scope.

##### Can I get the recruiter or employer's email address?

Instahyre itself never publishes a recruiter email. With `includeDetails`, you do get the recruiter's public name and designation, plus a signal for whether the listing was posted by a staffing agency or the employer directly. With the separate optional `enrichEmails` add-on, the Actor checks the hiring company's own website for a published contact email and adds it when one is found and confirmed to belong to that company. Neither is found for every company, and email lookup is billed only on rows where an email is actually found.

##### Why can a detail row have a warning?

Public detail enrichment is optional. If one detail record is unavailable, the matching list row remains available and the warning explains what happened.

### 🔗 Other actors

- [Zhaopin Scraper 智联招聘: China Jobs & Salary API](https://apify.com/getascraper/zhaopin-jobs-scraper) ↗ - Monitor China jobs, skills, salary fields, and hiring changes.
- [51job Scraper 前程无忧: China Jobs, Salaries & Hiring Data](https://apify.com/getascraper/51job-scraper) ↗ - Collect public China roles and employer context.
- [Liepin Scraper 猎聘: China White-Collar Jobs & Salary Data](https://apify.com/getascraper/liepin-scraper) ↗ - Research professional hiring and salary signals.
- [CWJobs Scraper: UK Contract Tech Jobs](https://apify.com/getascraper/cwjobs-scraper) ↗ - Collect structured technology roles with detail enrichment.
- [NCSS Jobs Scraper: Singapore Graduate & Internship Jobs](https://apify.com/getascraper/ncss-jobs-scraper) ↗ - Track graduate and internship opportunities.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/instahyre-jobs-scraper/changelog.md

# Actor input Schema

## `jobFunctionSlugs` (type: `array`):

Optional live Instahyre function slugs such as backend-development, data-science-machine-learning, or frontend-development. Leave empty to search the complete public feed.

## `jobType` (type: `string`):

Filter by the type exposed in Instahyre's public feed.

## `companySize` (type: `string`):

Instahyre company-size groups: small, medium, or large.

## `skills` (type: `array`):

Optional skills matched against Instahyre's public jobs, for example Java, Python, SQL, or React.

## `skillMatch` (type: `string`):

Any keeps a row when one requested skill matches; all requires every requested skill to match.

## `keywords` (type: `array`):

Optional keywords matched against the title, candidate title, skills, company context, and locations.

## `keywordMatch` (type: `string`):

Any returns a row when one keyword matches; all requires every keyword to match.

## `locations` (type: `array`):

Optional location terms matched against Instahyre's public labels, such as Bangalore, Pune, or Gurgaon.

## `remoteOnly` (type: `boolean`):

Keep roles whose public location label explicitly indicates remote, work from home, WFH, or work from anywhere.

## `companyNames` (type: `array`):

Optional company-name filter. Tries an exact Instahyre company-name match first (fast, one request); if that name is not recognized exactly, results fall back to a broader case-insensitive partial match across scanned pages.

## `excludeKeywords` (type: `array`):

Skip rows containing any of these terms in their public title, skills, company context, or location.

## `includeDetails` (type: `boolean`):

Fetch the public detail record for each returned job to add description, experience range, job category, and job functions. Failed detail requests keep the list row.

## `enrichEmails` (type: `boolean`):

Optional add-on. For each row, this searches for the hiring company's own website, checks that the site actually matches the company name, then looks for a contact email on it (mailto links, contact/about pages). Instahyre itself never exposes a recruiter email, so any email found comes from the company's public website, not from Instahyre. Billed only on rows where an email is actually found. Increases run time and is not guaranteed to find an email for every company.

## `monitorMode` (type: `string`):

Snapshot returns the current matching rows. Changes only compares a named filter state and returns new, updated, unchanged when enabled, and safely removed rows.

## `emitBaseline` (type: `boolean`):

When changes_only is selected, emit the first complete baseline as NEW rows. Turn off to seed state without output.

## `includeUnchanged` (type: `boolean`):

Include rows whose public fields did not change in a monitoring run. Disabled by default to keep recurring runs small.

## `stateName` (type: `string`):

Optional stable name for the saved comparison state. Separate names keep different searches isolated.

## `maxItems` (type: `integer`):

Maximum rows written to the dataset. The Actor may scan additional pages to satisfy local filters or monitoring safety.

## `maxPages` (type: `integer`):

Safety cap on public API pages scanned. One page contains up to 20 jobs. A capped scan never marks missing jobs as removed. Raised from the original default so a typical filtered search reaches the end of its matches in one run.

## `excludeAgencyPosted` (type: `boolean`):

Skip jobs posted by a staffing agency rather than the hiring company directly. Requires "Fetch job details" to be enabled, since agency-vs-direct status is only known from the job detail page.

## `diversityEmployersOnly` (type: `boolean`):

Keep only jobs from employers Instahyre flags with a diversity-hiring badge.

## `trackCompanies` (type: `array`):

Exact Instahyre company names to track as a hiring profile instead of searching jobs. When this is non-empty, the Actor switches entirely to tracker mode: one row per company with open-role count, function and location mix, and (from the second scheduled run onward) deltas since the last run. Use exact names as Instahyre shows them, for example from a MARKET_SNAPSHOT's topCompanies. All other search filters above are ignored in this mode.

## `proxyConfiguration` (type: `object`):

Apify Proxy configuration for the main search and tracker requests. Datacenter proxy (the default) rotates the exit IP per request, which keeps the Actor working through occasional anti-bot challenges.

## Actor input object example

```json
{
  "jobFunctionSlugs": [
    "backend-development"
  ],
  "jobType": "any",
  "companySize": "any",
  "skills": [],
  "skillMatch": "any",
  "keywords": [],
  "keywordMatch": "any",
  "locations": [],
  "remoteOnly": false,
  "companyNames": [],
  "excludeKeywords": [],
  "includeDetails": false,
  "enrichEmails": false,
  "monitorMode": "snapshot",
  "emitBaseline": true,
  "includeUnchanged": false,
  "stateName": "",
  "maxItems": 50,
  "maxPages": 10,
  "excludeAgencyPosted": false,
  "diversityEmployersOnly": false,
  "trackCompanies": [],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

No description

## `runSummary` (type: `string`):

No description

## `monitorState` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "jobFunctionSlugs": [
        "backend-development"
    ],
    "jobType": "any",
    "companySize": "any",
    "skills": [],
    "skillMatch": "any",
    "keywords": [],
    "keywordMatch": "any",
    "locations": [],
    "remoteOnly": false,
    "companyNames": [],
    "excludeKeywords": [],
    "includeDetails": false,
    "enrichEmails": false,
    "monitorMode": "snapshot",
    "emitBaseline": true,
    "includeUnchanged": false,
    "stateName": "",
    "maxItems": 50,
    "maxPages": 10,
    "excludeAgencyPosted": false,
    "diversityEmployersOnly": false,
    "trackCompanies": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/instahyre-jobs-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "jobFunctionSlugs": ["backend-development"],
    "jobType": "any",
    "companySize": "any",
    "skills": [],
    "skillMatch": "any",
    "keywords": [],
    "keywordMatch": "any",
    "locations": [],
    "remoteOnly": False,
    "companyNames": [],
    "excludeKeywords": [],
    "includeDetails": False,
    "enrichEmails": False,
    "monitorMode": "snapshot",
    "emitBaseline": True,
    "includeUnchanged": False,
    "stateName": "",
    "maxItems": 50,
    "maxPages": 10,
    "excludeAgencyPosted": False,
    "diversityEmployersOnly": False,
    "trackCompanies": [],
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/instahyre-jobs-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "jobFunctionSlugs": [
    "backend-development"
  ],
  "jobType": "any",
  "companySize": "any",
  "skills": [],
  "skillMatch": "any",
  "keywords": [],
  "keywordMatch": "any",
  "locations": [],
  "remoteOnly": false,
  "companyNames": [],
  "excludeKeywords": [],
  "includeDetails": false,
  "enrichEmails": false,
  "monitorMode": "snapshot",
  "emitBaseline": true,
  "includeUnchanged": false,
  "stateName": "",
  "maxItems": 50,
  "maxPages": 10,
  "excludeAgencyPosted": false,
  "diversityEmployersOnly": false,
  "trackCompanies": []
}' |
apify call getascraper/instahyre-jobs-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/instahyre-jobs-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/M5Myh7i6WMTmfwMlw/builds/lb5ypkHR8d0aMh6wv/openapi.json
