AI/ML Jobs Scraper — Recruiter Sourcing Tool
Pricing
Pay per event
AI/ML Jobs Scraper — Recruiter Sourcing Tool
Source AI/ML candidates from aijobs.net. Extract job titles, salaries, skills, seniority, company pages, and apply links.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
3
Monthly active users
20 days ago
Last modified
Categories
Share
AI/ML Jobs Scraper — Sourcing Tool for Technical Recruiters
Extract structured job listing data from aijobs.net — the dedicated job board with 50,000+ AI-focused positions worldwide. Get job titles, companies, salaries, required skills, perks, seniority levels, and direct apply links. Built for technical recruiters, staffing agencies, and talent acquisition teams who source ML/AI candidates.
What does it do?
AI/ML Jobs Scraper retrieves job listings from aijobs.net and fetches full detail pages to give you comprehensive, structured data on every open position. Filter by keyword (e.g., Python, LLM, machine learning), experience level (Entry / Mid / Senior / Expert), and remote status. The scraper paginates automatically and returns up to your specified limit.
For each job listing, the actor extracts:
- Job title and company name with company profile URL
- Salary range (when disclosed — e.g., "USD 160K–300K")
- Location and remote flag
- Seniority level (Entry-level, Mid-level, Senior-level, Expert)
- Skills / tech stack (Python, LLM, AWS, FastAPI, etc.)
- Perks and benefits (Remote work, Mentoring, Flexible hours, etc.)
- Job responsibilities / tasks from the detail page
- Education requirements
- Direct apply URL (ready for candidate submissions)
- Posted time (e.g., "8h ago", "20d ago")
Who is this scraper for?
Recruiters and staffing agencies
Build your AI/ML talent pipeline with structured job market data. Monitor which companies are hiring, what salaries they offer, and what skills they require — all without manually browsing job boards. Use salary data and skill requirements to benchmark your client's offers against the market and close candidates faster.
Talent acquisition and HR teams
Track the competitive landscape for AI hiring. Know when competitors post new roles, what compensation packages they're offering, and which skills are trending. Feed structured job data into your ATS to enrich candidate profiles and inform sourcing strategy.
Recruitment marketing and employer branding
Understand how companies position their AI roles — what perks they highlight, how they describe seniority expectations, and what salary ranges they disclose. Use this data to craft more competitive job descriptions for your own postings.
Labor market researchers and workforce analysts
Track AI job market trends over time. Compare seniority distributions, remote vs on-site ratios, salary ranges by location, and in-demand skills across thousands of listings.
Job aggregator and HR tech developers
Feed structured AI job data into your own job board, HR platform, or recommendation engine. The output is clean JSON — no HTML parsing required on your side.
Why use this scraper?
- No authentication required — scrapes publicly accessible listings
- No browser needed — pure HTTP + HTML parsing (fast and cheap)
- Keyword + seniority + remote filters — server-side filtering means you get only the roles you need
- Full detail pages included — company, tasks, education, apply URL (not just list data)
- Handles pagination automatically — get up to thousands of listings in one run
- Clean structured output — flat JSON ready for spreadsheets, ATS imports, or API integrations
What data does it extract?
| Field | Description | Example |
|---|---|---|
url | Job detail page URL | https://aijobs.net/job/ai-engineer-mts-remote-107552/ |
title | Job title | AI Engineer (MTS) |
company | Company name | micro1 |
companyUrl | Company profile on aijobs.net | https://aijobs.net/company/micro1-12373/ |
salaryRange | Disclosed salary range | USD 160K-300K |
seniority | Experience level | Mid-level |
jobType | Full Time / Part Time | Full Time |
location | Location text | Remote, San Francisco, CA |
isRemote | Remote job flag | true |
isFeatured | Featured/sponsored listing | false |
skills | Tech stack tags | ["Python", "LLM", "FastAPI"] |
perks | Benefits and perks | ["Remote work", "Mentoring"] |
postedAt | Relative post time | 8h ago |
tasks | Job responsibilities | ["Build LLM pipelines", ...] |
education | Required education | ["Bachelor of Science"] |
roles | Role tags | ["AI Engineer", "ML Engineer"] |
applyUrl | Direct apply link | https://aijobs.net/job/VhH.../apply/ |
description | Meta description | "Architect and develop..." |
How much does it cost?
This actor uses pay-per-result (PPE) pricing — you only pay for data you actually extract.
| Plan | Start fee | Cost per 1,000 jobs |
|---|---|---|
| FREE | $0.005 | $0.067 |
| BRONZE | $0.005 | $0.058 |
| SILVER | $0.005 | $0.046 |
| GOLD | $0.005 | $0.035 |
| PLATINUM | $0.005 | $0.023 |
| DIAMOND | $0.005 | $0.016 |
Typical run costs (BRONZE plan):
- 10 jobs with detail pages: ~$0.006 total (start fee $0.005 + 10 x $0.000058)
- 50 jobs with detail pages: ~$0.008 total
- 100 jobs with detail pages: ~$0.011 total
Free plan estimate: Apify's free plan gives $5/month in platform credits, which covers roughly 85,000+ job extractions per month at BRONZE pricing.
How to use it
Step 1 — Open the actor
Go to apify.com/automation-lab/aijobs-scraper and click Try for free.
Step 2 — Configure your search
Fill in the input fields:
- Search keyword — the skill, technology, or role to filter by (e.g.,
LLM,PyTorch,MLOps). Leave empty for all AI/ML jobs. - Experience level — Entry-level, Mid-level, Senior-level, or Expert.
- Remote jobs only — toggle on to get only remote listings.
- Max results — how many jobs to extract (default: 50).
- Include job details — enable to fetch company names, tasks, and apply URLs.
Step 3 — Run
Click Save & Run. Results appear in the Dataset tab.
Step 4 — Export
Download as JSON, CSV, Excel, or XML from the dataset view, or connect via API.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchKeyword | String | — | Keyword filter (e.g., Python, LLM) |
experienceLevel | String | — | EN = Entry, MI = Mid, SE = Senior, EX = Expert |
remoteOnly | Boolean | false | Filter for remote jobs only |
maxResults | Integer | 50 | Max job listings to return |
includeJobDetails | Boolean | true | Fetch full detail page (company, tasks, apply URL) |
maxRequestRetries | Integer | 3 | Retries per failed request |
Output example
{"url": "https://aijobs.net/job/ai-engineer-mts-remote-107552/","title": "AI Engineer (MTS)","company": "micro1","companyUrl": "https://aijobs.net/company/micro1-12373/","salaryRange": "USD 160K-300K","seniority": "Mid-level","jobType": "","location": "Remote","isRemote": true,"isFeatured": true,"skills": ["API Development", "AWS", "FastAPI", "LLM", "Python"],"perks": ["Mentoring", "Open source contributions", "Remote work"],"postedAt": "8h ago","tasks": ["Architect and develop scalable AI systems","Build APIs for AI platforms","Develop and integrate LLMs and multimodal AI systems"],"education": ["Bachelor of Science", "Master of Science"],"roles": ["AI Engineer", "Machine Learning Engineer"],"applyUrl": "https://aijobs.net/job/VhHQynwS4G3fRGH/apply/","description": "Architect and develop scalable AI systems; Build APIs for AI platforms..."}
Tips for recruiters
- Use specific skill keywords like
LLM,Kubernetes, orPyTorchto match the roles you're sourcing for. Broad searches return 50k+ jobs — narrow it down to your niche. - Set
includeJobDetails: falsefor faster, cheaper runs when you only need title, salary, location, and skills from list pages. - Combine filters —
experienceLevel: SE+remoteOnly: truefor senior remote roles. Great for sourcing in hot segments. - Run daily with a small
maxResultsto monitor new postings. Combine with webhooks to get Slack or email alerts when fresh roles match your search. - Salary data is not always disclosed — some companies hide it; the
salaryRangefield will be empty for those listings. - Company names may be truncated — some companies display partially on the site. The
companyUrlalways resolves to the correct company page.
Integrations
Talent pipeline in Google Sheets
Use Apify's Google Sheets integration to stream extracted jobs directly into a spreadsheet for your recruiting team to review, assign, and track candidates against.
ATS/CRM enrichment
Use companyUrl + company name to enrich your applicant tracking system with companies actively hiring in AI. Useful for targeted outreach, business development, and pipeline generation at staffing agencies.
Candidate matching engine
Use the structured skills and roles arrays to match job listings against candidate profiles in your internal database or ATS. Automate the initial sourcing step.
Daily job alert pipeline
Schedule this actor to run every morning with your target keyword. Combine with the Send Email actor or a Slack webhook to receive new listings before most recruiters see them.
Salary benchmarking dashboard
Export monthly snapshots of salaryRange + location + seniority to build a live AI salary benchmark tool. Present to clients during compensation discussions or use to calibrate your own offers.
API usage
Node.js (Apify Client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('automation-lab/aijobs-scraper').call({searchKeyword: 'LLM',experienceLevel: 'MI',remoteOnly: true,maxResults: 100,includeJobDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python (Apify Client)
from apify_client import ApifyClientclient = ApifyClient(token="YOUR_APIFY_TOKEN")run = client.actor("automation-lab/aijobs-scraper").call(run_input={"searchKeyword": "LLM","experienceLevel": "MI","remoteOnly": True,"maxResults": 100,"includeJobDetails": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~aijobs-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchKeyword": "LLM","experienceLevel": "MI","remoteOnly": true,"maxResults": 100,"includeJobDetails": true}'
MCP integration (Claude AI)
Use this actor directly from Claude Code, Claude Desktop, Cursor, or VS Code via the Apify MCP server.
Claude Code (terminal)
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/aijobs-scraper"
Then in Claude:
"Use the aijobs-scraper to find remote senior Python ML engineer jobs and summarize the salary ranges and top required skills."
"Scrape 50 LLM engineer job listings and tell me which companies are hiring the most."
"Get entry-level AI jobs posted today and export them to a CSV for my recruiting team."
Claude Desktop / Cursor / VS Code
Add to your MCP config file (claude_desktop_config.json or .cursor/mcp.json):
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/aijobs-scraper","headers": {"Authorization": "Bearer YOUR_APIFY_TOKEN"}}}}
Legality
This actor scrapes publicly accessible job listings from aijobs.net — the same data visible to any browser visitor without logging in. It respects normal HTTP request patterns and does not bypass authentication.
Before use, review aijobs.net's Terms of Service. Use responsibly:
- Do not flood the site with excessive concurrent requests
- Cache data locally rather than re-scraping the same listings repeatedly
- Do not use scraped data to misrepresent job postings or contact companies without permission
FAQ
Does this require an aijobs.net account? No. All scraped data is publicly accessible without authentication.
How many jobs can I extract?
The site lists 50,000+ jobs. Pagination supports all available pages. Set maxResults to your desired limit.
How fresh is the data? Each run fetches live data — as fresh as aijobs.net's current listings. Jobs posted "8h ago" will reflect the actual posting time.
Why are some salary fields empty?
Many companies on aijobs.net do not disclose salary ranges. The salaryRange field will be an empty string for those listings.
The filter returned some jobs outside my experience level — why? aijobs.net's server-side filter returns the closest matches. Some borderline listings may appear.
My run succeeded but returned fewer items than maxResults — why?
The site may have fewer matching listings than your requested limit. Try a broader keyword or remove the experience level filter.
Can I skip detail page fetches?
Set includeJobDetails: false to skip detail page visits. You'll get list-only data (title, salary, skills, location, seniority) at roughly half the request cost.
Related scrapers
Looking for more recruiting and job data tools? Check out these other automation-lab actors:
- LinkedIn Jobs Scraper — Scrape LinkedIn job postings at scale
- Indeed Scraper — Extract job listings from Indeed
- Glassdoor Jobs Scraper — Glassdoor job and salary data