The Muse Jobs Scraper
Pricing
Pay per event
The Muse Jobs Scraper
Scrape public The Muse job listings by keyword, location, category, and company with structured job, company, location, and source fields.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Scrape public job listings from The Muse into a clean Apify dataset.
Best for
- Recruiters monitoring The Muse job postings by keyword, company, category, or location.
- Labor-market analysts collecting structured job, company, location, and source data.
- ATS/jobs bundles where The Muse is one source alongside LinkedIn, Google Jobs, Greenhouse, and other job boards.
First run recipe
Start with one keyword or company filter, set a small page limit, and cap results at 25-50. A healthy first run should return structured job rows with title, company, location, category/level fields when available, description, and canonical source URL.
When to use this instead of broader jobs actors
Use this actor when The Muse is the source you need or when you are building a multi-source jobs dataset. Use LinkedIn Jobs Scraper or Google Jobs Scraper for broader demand discovery, and Greenhouse or Multi-ATS jobs actors for company career-site coverage.
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 this actor through the Apify MCP server when you want Claude or another MCP client to collect The Muse job listings and then analyze the results in the same chat.
Claude Desktop quick add
claude mcp add apify-the-muse-jobs \--transport http \"https://mcp.apify.com?tools=automation-lab/the-muse-jobs-scraper"
Set your Apify token in Claude Desktop or your MCP client environment as APIFY_TOKEN.
JSON MCP configuration
{"mcpServers": {"apify-the-muse-jobs": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/the-muse-jobs-scraper","headers": {"Authorization": "Bearer ${APIFY_TOKEN}"}}}}
Example prompts
- "Find up to 50 remote data and analytics jobs from The Muse and summarize the companies hiring most often."
- "Search The Muse for product manager roles in New York, return 25 listings, and group them by company and seniority level."
- "Run the The Muse Jobs Scraper for engineering roles, then identify job titles that mention platform, backend, or infrastructure."
Example Claude Desktop workflow:
- Add the Apify MCP server with the command or JSON config above.
- 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 actors
Verified public, non-deprecated actors that pair with this workflow:
- LinkedIn Jobs Scraper — broader professional job-board coverage.
- Google Jobs Scraper — aggregate job-search coverage.
- Greenhouse Jobs Scraper — company career pages on Greenhouse.
- Multi-ATS Company Jobs Scraper — collect jobs across multiple ATS sources.
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.