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 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

Stas Persiianenko

Maintained by Community

Actor 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

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 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:

  1. Add the Apify MCP server with the command or JSON config above.
  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.

Verified public, non-deprecated actors that pair with this workflow:

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.