The Muse Jobs Scraper avatar

The Muse Jobs Scraper

Pricing

from $0.03 / 1,000 item extracteds

Go to Apify Store
The Muse Jobs Scraper

The Muse Jobs Scraper

Extract public job listings from The Muse by category, location, company, level, and keywords. Export titles, companies, locations, links, and descriptions.

Pricing

from $0.03 / 1,000 item extracteds

Rating

0.0

(0)

Developer

Hanna Nosova

Hanna Nosova

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Scrape public job listings from The Muse into clean, export-ready datasets. Filter by keywords, locations, companies, job categories, seniority levels, date, page range, and result limit.

What does The Muse Jobs Scraper do?

The Muse Jobs Scraper collects public job listings from The Muse and saves each matching job as a structured dataset item. It is built for repeatable job-market monitoring, recruiting research, sales prospecting, and competitive hiring analysis.

You can use it to answer questions such as:

  • ๐Ÿ’ผ Which companies are hiring remote software engineers right now?
  • ๐Ÿ“ What roles are open in a specific city or region?
  • ๐Ÿข Which The Muse employers are expanding a department?
  • ๐Ÿ“ˆ How many new jobs match a category and seniority level?
  • ๐Ÿ”Ž What job descriptions mention a target keyword or technology?

Who is it for?

Recruiters can monitor roles by category, company, location, and seniority.

Job aggregators can collect public listings for indexing and enrichment workflows.

Labor-market analysts can track demand by role, category, geography, and employer.

Sales teams can identify companies currently hiring for relevant departments.

Job seekers and career coaches can build curated job lists for specific personas.

Why use this scraper?

The Muse is a useful source of employer-branded job listings, company names, role titles, levels, categories, and application links. This actor turns those listings into structured data that can be exported to CSV, JSON, Excel, Google Sheets, BI tools, CRMs, or automation workflows.

Common use cases

  • Build a remote jobs feed
  • Monitor hiring at target accounts
  • Track category-level hiring trends
  • Find companies hiring for specific skills
  • Collect application URLs for job aggregation
  • Compare job descriptions across companies
  • Enrich recruiting dashboards with public job data

Input settings

SettingJSON keyType / defaultDescription
Keywordskeywordsarray, default ["engineer"]Optional words to match in the job title, company, location, category, level, or job description. Matching is applied after The Muse returns jobs.
Locationslocationsarray, default ["Remote"]The Muse location names, for example Remote, New York, NY, London, United Kingdom, or Flexible / Remote.
CompaniescompaniesarrayCompany names to filter by, for example SpaceX, Optum, or Atlassian. Leave empty to search all companies.
Job categoriescategoriesarray, default ["Software Engineering"]The Muse job categories, for example Software Engineering, Data and Analytics, Sales, or Marketing.
Seniority levelslevelsarrayThe Muse levels, for example Entry Level, Mid Level, Senior Level, or Management.
Maximum jobsmaxItemsinteger, default 50Maximum number of matching job listings to save.
Maximum pagespageLimitinteger, default 5Maximum The Muse result pages to scan. Each page can contain up to 20 jobs before keyword/date filtering.
Start pagepageStartinteger, default 1Start scraping from this The Muse result page.
Published after datedateFromstringOptional ISO date. Jobs published before this date are skipped, for example 2026-01-01.
Proxy configurationproxyConfigurationobject, default {"useApifyProxy":true}Optional Apify proxy settings. Keep enabled for reliable cloud runs; disable only if you know direct requests work for your environment.

Output fields

JSON keyLabelTypeDescription
idIdnumberOutput field for id.
titleTitlestringOutput field for title.
companyNameCompanyNamestring / nullOutput field for companyname.
companyIdCompanyIdnumber / nullOutput field for companyid.
companyShortNameCompanyShortNamestring / nullOutput field for companyshortname.
locationsLocationsarrayOutput field for locations.
categoriesCategoriesarrayOutput field for categories.
levelsLevelsarrayOutput field for levels.
tagsTagsarrayOutput field for tags.
publicationDatePublicationDatestring / nullOutput field for publicationdate.
typeTypestring / nullOutput field for type.
shortNameShortNamestring / nullOutput field for shortname.
modelTypeModelTypestring / nullOutput field for modeltype.
descriptionHtmlDescriptionHtmlstring / nullOutput field for descriptionhtml.
descriptionTextDescriptionTextstring / nullOutput field for descriptiontext.
applyUrlApplyUrlstring / nullOutput field for applyurl.
jobUrlJobUrlstring / nullOutput field for joburl.
sourcePageSourcePagenumberOutput field for sourcepage.
scrapedAtScrapedAtstringOutput field for scrapedat.

Pricing

This Actor uses pay-per-event pricing configured in .actor/actor.json.

EventPriceCharged when
Start (start)$0.005 per eventOne-time fee per run
Job saved (item)$0.000042 per event, about $0.042 per 1,000 eventsPer The Muse job listing saved to the dataset

Input overview

The actor supports these inputs:

  • keywords โ€” words to match in titles, companies, locations, categories, levels, or descriptions
  • locations โ€” location names such as Remote, New York, NY, or Flexible / Remote
  • companies โ€” company names such as SpaceX or Optum
  • categories โ€” categories such as Software Engineering or Sales
  • levels โ€” levels such as Entry Level, Mid Level, or Senior Level
  • maxItems โ€” maximum jobs to save
  • pageLimit โ€” maximum results pages to scan
  • pageStart โ€” starting result page
  • dateFrom โ€” optional minimum publication date
  • proxyConfiguration โ€” optional advanced proxy settings

Ready-to-run examples

View all ready-to-run examples

Example input

{
"keywords": ["engineer"],
"locations": ["Remote"],
"categories": ["Software Engineering"],
"maxItems": 25,
"pageLimit": 3,
"pageStart": 1,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Input tips

Use The Muse wording for best results. For example, try Flexible / Remote if Remote is too broad or too narrow.

Use companies when tracking specific employers.

Use categories and levels together when you need focused role lists.

Use keywords when the target term may appear inside the title or description rather than in a site filter.

Increase pageLimit when keyword filtering is strict because the actor may need to scan more source jobs to find enough matches.

Output data

Each job listing can include:

FieldDescription
idThe Muse job identifier
titleJob title
companyNameCompany name
companyIdThe Muse company identifier
companyShortNameCompany slug when available
locationsJob locations
categoriesJob categories
levelsSeniority levels
tagsTags returned for the listing
publicationDatePublic posting timestamp
typeJob type returned by The Muse
shortNameJob slug
modelTypeSource model type
descriptionHtmlOriginal public job description HTML
descriptionTextClean text description
applyUrlApplication or landing page URL
jobUrlPublic job URL
sourcePageResult page where the job was found
scrapedAtScrape timestamp

Example output

{
"id": 21200162,
"title": "Supplier Development Engineer, Mechanical (Starship)",
"companyName": "SpaceX",
"companyId": 15000190,
"companyShortName": "spacex",
"locations": ["El Segundo, CA"],
"categories": ["Software Engineering"],
"levels": ["Mid Level"],
"tags": [],
"publicationDate": "2026-06-26T18:34:43Z",
"type": "external",
"shortName": "supplier-development-engineer-mechanical-starship-c2f42a",
"modelType": "jobs",
"descriptionText": "SpaceX was founded under the belief...",
"applyUrl": "https://www.themuse.com/jobs/spacex/...",
"jobUrl": "https://www.themuse.com/jobs/spacex/...",
"sourcePage": 1,
"scrapedAt": "2026-07-03T00:00:00.000Z"
}

How to run it

  1. Open the actor on Apify.
  2. Add one or more filters.
  3. Set maxItems to a safe first-run value.
  4. Click Start.
  5. Download results from the Dataset tab.

How to export data

After the run finishes, open the dataset and export results as:

  • JSON
  • CSV
  • Excel
  • XML
  • RSS
  • HTML table

You can also fetch the dataset through the Apify API for automated workflows.

API usage

Run The Muse Jobs Scraper from your own code with the Apify API.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const input = {
"keywords": [
"engineer"
],
"locations": [
"Remote"
],
"companies": [],
"categories": [
"Software Engineering"
],
"levels": []
};
const run = await client.actor('fetch_cat/the-muse-jobs-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("fetch_cat/the-muse-jobs-scraper").call(run_input={
"keywords": [
"engineer"
],
"locations": [
"Remote"
],
"companies": [],
"categories": [
"Software Engineering"
],
"levels": []
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
print(items)

cURL

curl -X POST "https://api.apify.com/v2/acts/fetch_cat~the-muse-jobs-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"keywords":["engineer"],"locations":["Remote"],"companies":[],"categories":["Software Engineering"],"levels":[]}'

Use with AI agents via MCP

The Muse Jobs Scraper can be used by AI assistants through the hosted Apify MCP server.

Claude Code setup

$claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/the-muse-jobs-scraper"

Claude Desktop, Cursor, or VS Code JSON config

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/the-muse-jobs-scraper"
}
}
}

Example prompts

  • "Run The Muse Jobs Scraper with this input JSON and summarize the dataset."
  • "Export the latest The Muse Jobs Scraper results to a table I can review."
  • "Schedule this Actor for monitoring and tell me what changed between runs."

Integrations

Use this actor with:

  • Google Sheets for recruiting trackers
  • Airtable for job board workflows
  • Notion for curated job lists
  • Slack alerts for new matching roles
  • CRM enrichment for hiring-signal workflows
  • BI dashboards for labor-market analysis
  • Zapier or Make scenarios through Apify integrations

Data quality notes

The actor saves public job fields as returned by the source. Some jobs may have multiple locations, multiple levels, or long HTML descriptions. Some fields can be empty if the source listing does not provide them.

Keyword filtering is intentionally broad: it checks several text fields so users can discover jobs where the keyword appears outside the title.

Limits and pagination

The source returns paginated job listings. The actor stops when it reaches maxItems, reaches pageLimit, finds no more jobs, or reaches the available page count.

For narrow keyword searches, increase pageLimit because many scanned jobs may not match the keyword filter.

Troubleshooting

If you get fewer jobs than expected, try these checks:

  • Remove one filter and run again
  • Increase pageLimit
  • Check spelling and capitalization of company or category names
  • Try a broader location such as Remote
  • Lower keyword specificity

If a run finishes with no items, the selected filter combination may not have matching public listings.

Best practices

Start with a small run before scaling.

Save working inputs as Apify tasks for recurring monitoring.

Use specific company lists for account-based workflows.

Use date filters when you only need recent postings.

Export descriptionText for NLP analysis and descriptionHtml when formatting matters.

Legality and responsible use

This actor collects publicly available job listing data. Make sure your use complies with applicable laws, The Muse terms, privacy rules, and your internal data policies. Do not use scraped data for discriminatory hiring, spam, or unlawful profiling.

FAQ

Can I scrape remote jobs only?

Yes. Add Remote or Flexible / Remote to locations, then set a suitable maxItems value.

Can I track specific companies?

Yes. Add company names in the companies input. You can provide one company or a list of companies.

Can I filter by seniority?

Yes. Use levels such as Entry Level, Mid Level, Senior Level, or other level names used by The Muse.

Yes. applyUrl and jobUrl contain the public landing page URL when The Muse provides it.

Why are there no results for my category?

The selected category may have few current jobs, or the exact category wording may differ. Try a broader category or remove the category filter for discovery.

Support

Report bugs, wrong output, blocked runs, or missing fields from the Actor page. Include the Apify run ID or run URL, your input JSON, what you expected, what the Actor returned, and one reproducible public URL so the issue can be tested quickly.

0.1

  • Initial version with configurable inputs and structured The Muse Jobs results.