The Muse Jobs Scraper
Pricing
Pay per event
The Muse Jobs Scraper
πΌ Scrape public The Muse job listings with roles, companies, locations, levels, categories, descriptions, and canonical job URLs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Scrape public job listings from The Muse into a clean Apify dataset.
What does The Muse Jobs Scraper do?
The Muse Jobs Scraper collects job listings from the public The Muse jobs API. It is built for users who need job titles, company names, locations, categories, career levels, publication dates, job URLs, and description text without manually copying data from search pages.
Who is it for?
Recruiting teams use it to monitor hiring activity at companies that list jobs on The Muse.
Talent intelligence analysts use it to compare role demand by category, seniority, or location.
Job-board operators use it to enrich curated feeds with public The Muse listings.
Sales and market-research teams use it to identify companies with active hiring needs.
Why use this scraper?
The actor uses The Muse's public JSON endpoint, so it is lightweight and does not require a browser.
It supports common filters such as company, location, category, and level.
It also includes an optional keyword filter that checks the title, company, location, category, level, tags, and description text.
Data you can collect
| Field | Description |
|---|---|
id | The Muse job ID |
name | Job title |
url | Public job page URL |
publicationDate | Publication timestamp |
companyName | Company name |
companyId | Company ID from The Muse |
locations | Listing locations |
categories | Job categories |
levels | Career levels |
contentsText | Plain-text job description |
contentsHtml | Optional HTML job description |
refs | Source reference URLs |
How much does it cost to scrape The Muse jobs?
The actor uses pay-per-event pricing with a small run-start event and a per-job result event.
The final published Store price is calculated from measured Apify cloud costs and competitor pricing checks.
Small test runs should use low maxItems and low maxPages values.
How to run it
- Open the actor on Apify.
- Enter optional filters such as
location,company,category, orlevel. - Set
maxItemsto the number of job listings you need. - Set
maxPageshigh enough when using a keyword filter. - Start the run.
- Export the dataset as JSON, CSV, Excel, or via the Apify API.
Input options
Keyword
Use keyword to match text inside the listing title, company, location, category, level, tags, or description.
The Muse API does not expose a keyword query parameter, so this actor applies keyword matching after fetching pages.
Location
Use values such as Remote, New York, NY, or San Francisco, CA.
Category
Use The Muse category names such as Data and Analytics, Sales, Marketing, or Engineering.
Company
Use the company name, for example SpaceX or DoorDash.
Level
Use levels such as Entry Level, Mid Level, or Senior Level.
Pagination limits
page sets the starting API page.
maxPages limits how many API pages the actor requests.
maxItems limits how many matching jobs are saved.
Example input
{"keyword": "engineer","location": "Remote","maxItems": 25,"maxPages": 3,"includeHtml": true,"includeRaw": false}
Example output
{"id": 123456,"name": "Senior Data Engineer","url": "https://www.themuse.com/jobs/example/senior-data-engineer","publicationDate": "2026-06-01T00:00:00Z","companyName": "Example Company","locations": ["Flexible / Remote"],"categories": ["Data and Analytics"],"levels": ["Senior Level"],"contentsText": "Example job description text..."}
Tips for better results
Use API-side filters first. Company, location, category, and level are passed directly to The Muse.
Use keyword filtering for refinement.
If your keyword is rare, increase maxPages so the actor has enough listings to inspect.
Start small.
For testing, use maxItems between 10 and 25.
Integrations
Connect the dataset to Google Sheets for weekly hiring reports.
Send results to a webhook when a company posts new roles.
Use Apify integrations to load job data into Airtable, Make, Zapier, or a data warehouse.
Combine this actor with company enrichment actors to add firmographic context.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/the-muse-jobs-scraper').call({location: 'Remote',keyword: 'engineer',maxItems: 25,});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientimport osclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/the-muse-jobs-scraper').call(run_input={'location': 'Remote','keyword': 'engineer','maxItems': 25,})print(run['defaultDatasetId'])
cURL
curl "https://api.apify.com/v2/acts/automation-lab~the-muse-jobs-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"location":"Remote","keyword":"engineer","maxItems":25}'
MCP usage
Use the Apify MCP server with this actor enabled:
https://mcp.apify.com?tools=automation-lab/the-muse-jobs-scraper
Claude Code setup
$claude mcp add apify https://mcp.apify.com?tools=automation-lab/the-muse-jobs-scraper
Claude Desktop setup
Add this server to your Claude Desktop MCP configuration:
{"mcpServers": {"apify-the-muse-jobs": {"url": "https://mcp.apify.com?tools=automation-lab/the-muse-jobs-scraper"}}}
Example prompts for MCP usage
Use these example prompts after connecting the Apify MCP server:
Using the Apify MCP tool
automation-lab/the-muse-jobs-scraper, find up to 50 remote data and analytics jobs from The Muse and summarize companies hiring most often.
Use MCP to scrape The Muse for senior engineering jobs in New York and return a table with company, title, URL, and publication date.
Run the The Muse Jobs Scraper MCP tool for marketing roles and identify companies with repeated new listings.
Example Claude Desktop workflow:
- Add the Apify MCP server.
- Enable
automation-lab/the-muse-jobs-scraper. - Ask for a filtered The Muse jobs dataset.
- Export or summarize the results.
Data freshness
The actor returns data from The Muse at run time. Run it on a schedule if you need recurring job-market monitoring.
Error handling
If The Muse returns an empty page, pagination stops.
If an API request returns an HTTP error, the actor fails with the exact status code.
Invalid or missing optional fields are saved as null or empty arrays.
Limitations
The actor scrapes public listings only. It does not apply to private applicant tracking systems behind login walls. The keyword filter is client-side because the sampled public API does not support keyword search.
Legality
This actor collects publicly available job listing data. You are responsible for using the data in accordance with applicable laws, The Muse terms, and your own compliance requirements. Do not use the output for prohibited discrimination, spam, or unauthorized profiling.
FAQ
Does it require a The Muse account?
No. The actor uses public job listing data.
Why did my keyword run return fewer items than requested?
Keyword matching happens after pages are fetched. Increase maxPages or use broader API-side filters.
Can I scrape one company?
Yes. Set the company input to the company name shown on The Muse.
Can I get raw API fields?
Yes. Enable includeRaw to include the source object.
Related scrapers
- https://apify.com/automation-lab/linkedin-jobs-scraper
- https://apify.com/automation-lab/indeed-jobs-scraper
- https://apify.com/automation-lab/google-jobs-scraper
- https://apify.com/automation-lab/company-enrichment-scraper
Support
If you need a new The Muse field or an additional filter, open an Apify issue with your desired input and an example listing URL.
Changelog
Initial version: HTTP-only public The Muse jobs scraper with filters, pagination, and clean job listing output.