The Muse Jobs Scraper avatar

The Muse Jobs Scraper

Pricing

Pay per event

Go to Apify Store
The Muse Jobs Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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

FieldDescription
idThe Muse job ID
nameJob title
urlPublic job page URL
publicationDatePublication timestamp
companyNameCompany name
companyIdCompany ID from The Muse
locationsListing locations
categoriesJob categories
levelsCareer levels
contentsTextPlain-text job description
contentsHtmlOptional HTML job description
refsSource 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

  1. Open the actor on Apify.
  2. Enter optional filters such as location, company, category, or level.
  3. Set maxItems to the number of job listings you need.
  4. Set maxPages high enough when using a keyword filter.
  5. Start the run.
  6. 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 ApifyClient
import os
client = 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:

  1. Add the Apify MCP server.
  2. Enable automation-lab/the-muse-jobs-scraper.
  3. Ask for a filtered The Muse jobs dataset.
  4. 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.

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.