The Muse Jobs Scraper
Pricing
from $0.03 / 1,000 item extracteds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
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
| Setting | JSON key | Type / default | Description |
|---|---|---|---|
| Keywords | keywords | array, 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. |
| Locations | locations | array, default ["Remote"] | The Muse location names, for example Remote, New York, NY, London, United Kingdom, or Flexible / Remote. |
| Companies | companies | array | Company names to filter by, for example SpaceX, Optum, or Atlassian. Leave empty to search all companies. |
| Job categories | categories | array, default ["Software Engineering"] | The Muse job categories, for example Software Engineering, Data and Analytics, Sales, or Marketing. |
| Seniority levels | levels | array | The Muse levels, for example Entry Level, Mid Level, Senior Level, or Management. |
| Maximum jobs | maxItems | integer, default 50 | Maximum number of matching job listings to save. |
| Maximum pages | pageLimit | integer, default 5 | Maximum The Muse result pages to scan. Each page can contain up to 20 jobs before keyword/date filtering. |
| Start page | pageStart | integer, default 1 | Start scraping from this The Muse result page. |
| Published after date | dateFrom | string | Optional ISO date. Jobs published before this date are skipped, for example 2026-01-01. |
| Proxy configuration | proxyConfiguration | object, 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 key | Label | Type | Description |
|---|---|---|---|
id | Id | number | Output field for id. |
title | Title | string | Output field for title. |
companyName | CompanyName | string / null | Output field for companyname. |
companyId | CompanyId | number / null | Output field for companyid. |
companyShortName | CompanyShortName | string / null | Output field for companyshortname. |
locations | Locations | array | Output field for locations. |
categories | Categories | array | Output field for categories. |
levels | Levels | array | Output field for levels. |
tags | Tags | array | Output field for tags. |
publicationDate | PublicationDate | string / null | Output field for publicationdate. |
type | Type | string / null | Output field for type. |
shortName | ShortName | string / null | Output field for shortname. |
modelType | ModelType | string / null | Output field for modeltype. |
descriptionHtml | DescriptionHtml | string / null | Output field for descriptionhtml. |
descriptionText | DescriptionText | string / null | Output field for descriptiontext. |
applyUrl | ApplyUrl | string / null | Output field for applyurl. |
jobUrl | JobUrl | string / null | Output field for joburl. |
sourcePage | SourcePage | number | Output field for sourcepage. |
scrapedAt | ScrapedAt | string | Output field for scrapedat. |
Pricing
This Actor uses pay-per-event pricing configured in .actor/actor.json.
| Event | Price | Charged when |
|---|---|---|
Start (start) | $0.005 per event | One-time fee per run |
Job saved (item) | $0.000042 per event, about $0.042 per 1,000 events | Per 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 descriptionslocationsโ location names such asRemote,New York, NY, orFlexible / Remotecompaniesโ company names such asSpaceXorOptumcategoriesโ categories such asSoftware EngineeringorSaleslevelsโ levels such asEntry Level,Mid Level, orSenior LevelmaxItemsโ maximum jobs to savepageLimitโ maximum results pages to scanpageStartโ starting result pagedateFromโ optional minimum publication dateproxyConfigurationโ optional advanced proxy settings
Ready-to-run examples
- The Muse Python Job Description Search
- The Muse Target Company Jobs
- The Muse Senior Data Analytics Jobs
- The Muse Entry Level Marketing Jobs
- The Muse Remote Software Engineering Jobs
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:
| Field | Description |
|---|---|
id | The Muse job identifier |
title | Job title |
companyName | Company name |
companyId | The Muse company identifier |
companyShortName | Company slug when available |
locations | Job locations |
categories | Job categories |
levels | Seniority levels |
tags | Tags returned for the listing |
publicationDate | Public posting timestamp |
type | Job type returned by The Muse |
shortName | Job slug |
modelType | Source model type |
descriptionHtml | Original public job description HTML |
descriptionText | Clean text description |
applyUrl | Application or landing page URL |
jobUrl | Public job URL |
sourcePage | Result page where the job was found |
scrapedAt | Scrape 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
- Open the actor on Apify.
- Add one or more filters.
- Set
maxItemsto a safe first-run value. - Click Start.
- 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 ApifyClientimport osclient = 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().itemsprint(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.
Does the actor return apply links?
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.
Related actors
- Ashby Jobs Scraper
- ATS Jobs Scraper for 6 ATS Sources
- Built In Jobs Scraper
- Greenhouse Jobs Scraper
- Remote.com Jobs Scraper
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.