How to scrape jobs data from Instahyre using the Minexa API
- Minexa.ai

- Jul 2
- 4 min read
Job market data from Instahyre is genuinely useful: role titles, required skills, company profiles, founding years, and direct application links all sitting on a structured listing page. The challenge is getting it out in a form you can actually work with at scale.
This guide walks through how to extract that data programmatically using the Minexa API, covering the full workflow from training a scraper in the browser to calling the API and receiving clean, structured JSON.
What the two-phase workflow produces
The Minexa API workflow has two distinct phases. First, you train a scraper once using the Minexa Chrome extension — this is a visual, browser-based step that takes a few minutes. Second, you call the API programmatically with that scraper's ID to extract data from any number of Instahyre listing pages without repeating the setup.
The output of phase one is a stable scraper ID. The output of phase two is structured JSON, one object per job listing, ready to load into a database, spreadsheet, or downstream pipeline.
Training the scraper on Instahyre
Open the Minexa Chrome extension and navigate to the Instahyre sales and business development jobs page. The extension detects the page structure automatically.
Once the page has loaded, open the extension popup and confirm you are on the correct page by clicking the 'I'm on the right page' button.
The extension then detects pagination on the page and presents the options it found. Review the detected pagination and click Continue to proceed.
Next, choose whether to scrape just the list page or to also follow each listing link and extract detail page data. For most jobs pipeline use cases, the list page alone provides enough structured fields to be useful.
Select simple or advanced scraping mode on the next screen, then highlight the job listings container on the page so Minexa knows which repeating block to extract from.
After clicking 'Create scraper', all detected data points appear in a review panel. This is where you can see exactly which fields Minexa found before committing to the scraper.
Click 'API Request' to view the generated JSON and Python code samples. Your scraper ID is shown here — copy it, as you will use it in every subsequent API call.
What the extracted data looks like
Each job listing returns a structured object. Here are two representative records from the Instahyre output, with internal prefixes removed for clarity:
[
{
"job_title": "Salesforce Project Lead",
"job_link": "https://www.instahyre.com/job-414796-salesforce-project-lead-at-hytechpro-noida/",
"company_description": "HyTechPro is a globally recognized digital transformation company specializing in business intelligence, DevOps, and Salesforce consulting.",
"founded_year": "Founded in 2003",
"location": "Noida",
"department": "Sales / Business Development",
"skills": "Tableau",
"additional_skills": "Salesforce",
"job_categories": [
{"value": "Sales / Business Development", "tag": "li"},
{"value": "Agentic AI", "tag": "li"},
{"value": "CRM", "tag": "li"}
]
},
{
"job_title": "Business Development Associate",
"job_link": "https://www.instahyre.com/job-425247-business-development-associate-at-scaler-academy-bangalore-gurgaon/",
"company_description": "Scaler Academy is a 6-month online career accelerator helping people advance without educational or financial constraints.",
"founded_year": "Founded in 2019",
"location": "Bangalore, Gurgaon",
"department": "Sales / Business Development",
"skills": "",
"additional_skills": "+1",
"job_categories": [
{"value": "Sales / Business Development", "tag": "li"},
{"value": "Education Counselling", "tag": "li"},
{"value": "Business Development", "tag": "li"}
]
}
]The job_categories field returns a traversable array of objects, each with a tag type and text value. This lets you filter or group listings by skill category without any post-processing regex work. The skills_list_id field captures the DOM identifier for the expandable skills panel on each listing row, which is useful if you later want to target that element directly. The employee_type field surfaces the Angular scope class attached to each employer block, giving you a reliable structural anchor per row.
Calling the API from Python
Once your scraper is trained, use the scraper ID in a POST request to the Minexa API data endpoint. Pagination on Instahyre is not handled automatically via the API — you will need to pass each page URL explicitly or define a JS code scenario that clicks the next page control.
import requests
url = "https://api.minexa.ai/data"
headers = {"Content-Type": "application/json", "x-api-key": "YOUR_API_KEY"}
payload = {
"scraper_id": 6381,
"columns": "top_20",
"urls": [
"https://www.instahyre.com/sales-business-development-jobs-in-north-india/"
],
"scraping_params": {"js_render": True, "proxy": True},
"threads": 3
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())Set threads to control how many pages are processed in parallel. For recurring extractions across multiple Instahyre category pages, set up a cron job on your side and pass the relevant URLs in each scheduled run rather than relying on the extension scheduler.
Running the job and exporting results
Once the job runs, results appear in a structured table. Each row is one job listing, each column is one extracted field. Export options include Excel, Google Sheets, and JSON.
The scraper ID you created is reusable indefinitely. Any Instahyre page with the same listing structure can be processed with the same ID without repeating the training step.
For a related walkthrough covering a similar Indian jobs platform, see how to scrape HR and workforce data from Cutshort using the Minexa API.

Comments