Glassdoor Jobs Scraper | Global Job Listings
Pricing
from $0.75 / 1,000 glassdoor offers
Glassdoor Jobs Scraper | Global Job Listings
Scrape public Glassdoor job listings worldwide with keyword, country, location, date, job type, remote, and Easy Apply filters. Get structured job data with descriptions, salaries, employer details, and direct application links.
Pricing
from $0.75 / 1,000 glassdoor offers
Rating
0.0
(0)
Developer
DataScraperES
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Collect public Glassdoor job listings by keyword and country, with optional location, date, job-type, remote, and Glassdoor application filters. Each unique offer is returned as a structured Dataset item with available descriptions, compensation, employer details, and application URLs.
What this Actor does
- Searches one Glassdoor country site per run with up to 50 keyword phrases.
- Applies optional location, publication-age, job-type, remote-only, and Glassdoor application filters.
- Returns up to 1,000 unique jobs per keyword and up to 50,000 items per run.
- Formats job descriptions as Markdown, HTML, or plain text.
- Optionally extracts public email addresses visible in job descriptions.
- Deduplicates offers across keywords while preserving the search phrase associated with each delivered item.
- Stores run-level counts, limits, failures, and delivery status in the
SUMMARYrecord.
Use cases
- Source public vacancies for recruitment research.
- Compare hiring demand across keywords, locations, and countries.
- Monitor remote, contract, internship, and part-time opportunities.
- Analyze compensation and employer information when published.
- Build job-search alerts with Apify Tasks and Schedules.
- Export listings into spreadsheets, databases, CRMs, or internal dashboards.
How to use
- Open the Actor's Input tab.
- Add one or more phrases under Search keywords.
- Select a supported country and, optionally, enter a location.
- Adjust the result limits and filters.
- Click Start.
- Open Dataset to inspect or export the job listings.
The Actor searches a single country site per run. Create separate runs when you need several countries.
Watch the run's Log and status message for live progress: searches finished, pages reviewed, jobs saved, and elapsed time. Longer searches update approximately every 10 seconds. The final message confirms the number of jobs saved and indicates partial results or a reached limit. Apify also displays its own container startup messages.
Input
{"keywords": ["software engineer"],"country": "usa","maxItemsPerQuery": 10,"maxTotalItems": 10,"offset": 0,"datePostedHours": 0,"jobType": "any","remoteOnly": false,"easyApplyOnly": false,"descriptionFormat": "markdown","includeEmails": false,"location": null}
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
keywords | string[] | Yes | ["software engineer"] | One to 50 job-search phrases. Whitespace is normalized and duplicates are removed; blank phrases are rejected. |
country | string | Yes | "usa" | Glassdoor country site, such as usa, uk, canada, australia, germany, france, india, brazil, mexico, or spain. |
location | string or null | No | null | City, region, postal code, or another location in the selected country. Ambiguous names are resolved within that country. |
maxItemsPerQuery | integer | No | 10 | Maximum unique jobs per keyword, from 1 to 1,000. |
maxTotalItems | integer | No | 10 | Global Dataset limit across all keywords, from 1 to 50,000. |
offset | integer | No | 0 | Results to skip per keyword, from 0 to 900. Offset plus maxItemsPerQuery cannot exceed 1,000. |
datePostedHours | integer | No | 0 | Publication-age limit, from 0 to 720 hours. Glassdoor exposes dates in whole days; positive values round up to whole days. Use 0 for any age. |
jobType | string | No | "any" | any, fullTime, partTime, contract, or internship. |
remoteOnly | boolean | No | false | Keep only listings identified as remote. |
easyApplyOnly | boolean | No | false | Keep only jobs marked for Glassdoor application. |
descriptionFormat | string | No | "markdown" | Return descriptions as markdown, html, or plain. |
includeEmails | boolean | No | false | Extract public email addresses found in descriptions. |
This is the exact input used for the complete output example:
{"keywords": ["software engineer"],"country": "usa","maxItemsPerQuery": 10,"maxTotalItems": 10,"offset": 0,"datePostedHours": 0,"jobType": "any","remoteOnly": false,"easyApplyOnly": false,"descriptionFormat": "markdown","includeEmails": false}
Output
The default Dataset contains one item per unique delivered job. Every successful item includes the search context, job identity, available employer and compensation data, the requested description format, and a retrieval timestamp.
| Field | Description |
|---|---|
success, status, source | Result state and source identifier. |
searchKeyword, searchCountry, searchLocation | Search context that produced the item. |
jobId, jobUrl, directJobUrl | Job identity, Glassdoor listing URL, and direct application URL when available. |
title, normalizedTitle, companyName | Public title, normalized role for grouping, and employer name. |
companyUrl, companyDirectUrl | Glassdoor company page and public company website when available. |
location, locationDisplay, isRemote | Structured location, displayed location, and remote flag. |
jobTypes, postedDate | Published job types and posting date when available. |
description, emails | Job description in the selected format and optional public emails. |
compensation, salarySource | Available salary range, period, currency and reported origin (EMPLOYER_PROVIDED or ESTIMATED). Amounts retain published decimal precision. |
easyApply, isSponsoredJob, expired | Reported application eligibility, sponsorship and expiration flags. An unexpired flag does not guarantee that an employer is still accepting applications. |
companyId, companyReviewCount | Glassdoor employer ID and total published review count when available. |
companyRatings | Overall and workplace ratings on a 1–5 scale, recommendation and CEO approval percentages on a 0–100 scale, and the separate CEO approval rating count. |
companyType, companyFoundedYear, companySector | Published company nature, founding year and broad sector. |
companyReviewsUrl, companySalariesUrl | Links to the employer’s public review and salary pages; availability of individual records is not guaranteed. |
companyIndustry, companyAddresses, companyEmployees, companyRevenue | Available employer metadata. |
companyDescription, companyLogoUrl | Available employer description and logo. |
scrapedAt | Timestamp recorded when the item was collected. |
This is the complete Dataset item from a real successful run:
{"success": true,"status": "success","source": "glassdoor","searchKeyword": "software engineer","searchCountry": "United States","searchLocation": null,"jobId": "gd-1010243508083","jobUrl": "https://www.glassdoor.com/job-listing/j?jl=1010243508083","directJobUrl": "https://www.glassdoor.com/partner/jobListing.htm?pos=101&ao=1110586&s=58&guid=000001a0f2d7731bbe3931a1c4ce5002&src=GD_JOB_VIEW&t=NS&vt=w&cs=1_d7f779e3&cb=1790780601337&jobListingId=1010243508083&jrtk=5-yul1-3-1k3pdesq52jrek00---6NYlbfkN0CMMQh_vh03lgJPJxo1psrfI2I7EQeySLbv-euex5gO-lCnxcqq3dBidNEuC8eRrk1QqUwV7tiW3jhtRKpkqekleHDMQTyiKwHVUJFolZRHA5-ySLbrqbzAiOoPHBvGx041N2G0hxC2cSof2KTXEI_jtVyXWiY4oNtDyFVtStT33hoRJ8Mb0N8RI_wTEBohS2pqbr_N5RC3XI18vUwxkaloM8oncvS4gNiaLRzXz5YxN6oDfuxf1UahVIg80TLMxG9EkrQbuurxL16cXBkIa8DNm9H5UdiSEYWG4SiGqM_AExaER_CC4EA3c2QQQcmK7_YtODMAy7C03rTqsBS5hXaHfmr9jFhuUe4IS6reCxsovclEJeVQEfjBvafh39v9JZBfXq7Y0qszV138jVs88xD3_wYhFa7FCfHMoAr0cF1hfxF6qexGxf-ClDw-oaoVsoC3oF1L2QGqEhlpAmbcBvHqjjpJnLvUIuVoQ6hf6bMgWyR_XDzkpxeiGSbcpBN-SHCuApVELpz3HMlg_BKDl8OpL3KyUOnvApt5r8ircf0f5BR3kyfMogO15_DHqJuKUHQ%3D","title": "Software Engineer - E2","normalizedTitle": "software engineer","companyName": "Lockheed Martin","companyUrl": "https://www.glassdoor.com/Overview/W-EI_IE404.htm","companyDirectUrl": "https://www.lockheedmartin.com","location": null,"locationDisplay": null,"isRemote": true,"jobTypes": ["fulltime"],"postedDate": "2026-08-27","description": "**Desired Skills**\n------------------\n\n* Exposure to CAD/CAM concepts or prior coursework/project work in engineering design tools.\n* Familiarity with Agile or Scrum development processes.\n* Experience with CI/CD pipelines, automated testing frameworks, or DevOps tooling.\n* Exposure to NX, Catia V5 or PLM platform like 3DX Experience or Teamcenter\n* Experience using Ai tools\n\n**Basic Qualifications**\n------------------------\n\n* Bachelor’s degree in Computer Science, Software Engineering, or a related technical field (or equivalent experience).\n* Basic proficiency in a modern programming language (e.g., C++, C#).\n* Basic proficiency in development platforms (i.e. .NET, MS Visual Studio)\n* Understanding of software development fundamentals: version control (Git), unit testing, and debugging.\n* Strong analytical and problem solving abilities.\n* Effective written and verbal communication skills; comfortable interacting with engineers and other stakeholders.\n* Ability to work independently on well defined tasks while being a collaborative team member.\n\n**Standard Job Description**\n----------------------------\n\nPlans, conducts, and coordinates software development activities. Designs, develops, documents, tests, and debugs software that contains logical and mathematical solutions to business/mission problems or questions in computer language for solutions by means of data processing equipment. Applies the appropriate standards, processes, procedures, and tools throughout the development life cycle. Applies knowledge of computer hardware and software, subject matter to be programmed in business/mission applications, information processing techniques used, and information gathered from system users to develop software. Corrects program errors, prepares operating instructions, compiles documentation of program development, and analyzes system capabilities to resolve questions of program intent, output requirements, input data acquisition, programming techniques, and controls. Ensures software standards are met.\n\n**Pay Information**\n\n**GeoZone Definition:** GeoZones are geographic groupings created by Lockheed Martin to align compensation ranges with regional labor markets and cost-of-labor differences across the United States. Locations are assigned a Geo Zone based on the primary work location of the role.\n\n* Full-time salary range (GEOZONE 1): $101400.00 - $188200.00\n + Includes metropolitan areas such as Sunnyvale CA; Pal Alto, CA; New York City metropolitan area; Newark, New Jersey; etc.\n* Full-time salary range (GEOZONE 2): $91200.00 - $169400.00\n + Includes metropolitan areas such as Denver, CO; King of Prussia, PA; Stratford, CT; Moorestown, NJ; etc.\n* Full-time salary range (GEOZONE 3): $81100.00 - $150500.00\n + Includes metropolitan areas such as Dallas–Fort Worth, TX; Orlando, FL; Grand Prairie, TX; Marietta, GA; etc.\n* Full-time salary range (GEOZONE 4): $72900.00 - $135500.00\n + Includes metropolitan areas such as Camden, AR; Lexington, KY; Ocala, FL; Lufkin, TX; etc.\n\nAt Lockheed Martin, we know mission success starts with taking care of our people. Our Total Rewards program is designed to attract top talent, support your well-being, and help you grow—both professionally and personally.\n\nThe salary range for this position is as listed on the requisition. Please note that the salary information listed is a general guideline only. \nLockheed Martin considers factors such as (but not limited to) scope and responsibilities of the position, candidate's work experience, education/ training, key skills as well as market(work location) and business considerations when extending an offer.\n\n**Benefits offered:** Medical, Dental, Vision, Flexible work arrangements and schedules (e.g., 4x10), 401(k) match, Paid time off, Holidays, Parental Leave, EAP, Flexible Spending Accounts, Education Assistance, Life Insurance, Short-Term Disability, and Long-Term Disability.\n\n* Annual short-term and/or long-term incentive compensation programs may be offered depending on the position. Payments under these annual programs are not guaranteed and can vary from year to year and are tied to a range of performance metrics.\n* For (Washington state applicants only) Non-represented full-time employees: accrue at least 10 hours per month of Paid Time Off (PTO) to be used for incidental absences and other reasons; receive at least 90 hours for holidays. Represented full time employees accrue 6.67 hours of Vacation per month; accrue up to 52 hours of sick leave annually; receive at least 96 hours for holidays. PTO, Vacation, sick leave, and holiday hours are prorated based on start date during the calendar year.","emails": null,"compensation": {"interval": "yearly","min_amount": 72900.0,"max_amount": 188200.0,"currency": "USD"},"salarySource": "EMPLOYER_PROVIDED","easyApply": false,"isSponsoredJob": true,"expired": false,"companyId": 404,"companyRatings": {"overall": 4.1,"careerOpportunities": 4.1,"compensationAndBenefits": 3.9,"cultureAndValues": 3.8,"seniorManagement": 3.5,"workLifeBalance": 4.2,"recommendToFriendPercent": 85.0,"ceoApprovalPercent": 82.0,"ceoApprovalRatingsCount": 2895},"companyReviewCount": 16918,"companyType": "Company - Public","companyFoundedYear": 1995,"companySector": "Aerospace & Defense","companyReviewsUrl": "https://www.glassdoor.com/Reviews/Lockheed-Martin-Reviews-E404.htm","companySalariesUrl": "https://www.glassdoor.com/Salary/Lockheed-Martin-Salaries-E404.htm","companyIndustry": "Aerospace & Defense","companyAddresses": "Bethesda, MD","companyEmployees": "10000+ Employees","companyRevenue": "$10+ billion (USD)","companyDescription": null,"companyLogoUrl": "https://media.glassdoor.com/sql/404/lockheed-martin-squarelogo-1497984580535.png","scrapedAt": "2026-09-30T15:03:24.157035Z"}
New employer and listing fields are optional and remain null when unavailable. A genuine false flag or zero review count is preserved. companyReviewCount is not the denominator of every rating; ceoApprovalRatingsCount refers only to CEO approval. Remote jobs retain a null location. Other locations distinguish a country, region or city and include the verified country where available. Posting dates use the date reported by the source when recognized, with an approximate day-based date otherwise.
Run-level information is stored separately in the default Key-Value Store under SUMMARY, including query counts, failures, duplicate totals, output-limit state, charge-limit state, and accepted charge events.
Pricing
This Actor uses pay-per-event pricing. Apify automatically applies the rate for your account tier:
| Apify tier | Price per offer | Equivalent per 1,000 offers |
|---|---|---|
| FREE | $0.001 | $1.00 |
| BRONZE | $0.0009 | $0.90 |
| SILVER | $0.0008 | $0.80 |
| GOLD | $0.00075 | $0.75 |
| PLATINUM | $0.00075 | $0.75 |
| DIAMOND | $0.00075 | $0.75 |
The glassdoor-offer event is charged only when one unique public Glassdoor job offer is written to the default Dataset. Duplicate offers, failed searches, and results that are not written do not trigger it. If the maximum total charge is reached, the Actor stops emitting additional billable items. The current Pricing tab on the Actor page is authoritative.
Related Actors
| Actor | Best for |
|---|---|
| Indeed Jobs Scraper | Worldwide Job Data | Finding worldwide Indeed listings with comparable location, date, job-type, remote, and application filters. |
| LinkedIn Jobs Scraper – No Login | Adding public LinkedIn job listings with workplace, experience, applicant, and Easy Apply filters. |
| LinkedIn Company Profile Scraper - No Login | Enriching employers found in job results with public company profiles and organization details. |
Limits and data quality
- A run accepts up to 50 unique keywords and searches one country site.
maxItemsPerQueryis a ceiling, not a guarantee. Source availability and filters can reduce the number returned.- The global output limit is 50,000 items, but the user's maximum total charge can stop output earlier.
- Jobs are deduplicated across keywords using stable public identifiers or URLs.
- A run can be
partialwhen some keyword searches succeed and others fail; successful Dataset items remain available. - Temporary source interruptions may make a search take longer. The Actor continues collecting matching jobs when the source becomes available within the run's time budget.
- If Glassdoor denies access or a required page is unavailable, the affected search fails or returns partial results. Jobs already saved remain available and are billable; failed requests and unsaved jobs are not. Check
SUMMARYand include the run URL when reporting the issue. - A reached spending limit is reported separately from complete collection. If delivery cannot be confirmed, the run fails and already saved jobs remain available. Some saved or billed totals can be unknown until the run is checked.
- When the same run resumes with the same input, previously saved jobs are preserved and are not emitted again. Changing the input requires fresh storage. A run can stop if its saved state is incompatible or delivery remains uncertain.
- Small searches have a time budget. If a search cannot finish within that budget, available results are preserved and any incomplete search is reported in
SUMMARY. Optional descriptions can be missing when their requests are unavailable or the remaining time is exhausted. - If Glassdoor changes the response format, the Actor reports the affected search as failed or partial instead of treating an unreadable response as a valid empty result.
- Listings can change or disappear, and optional salary, description, employer, email, date, location, or application fields can be
nullor empty. - Larger searches automatically receive more memory. If you override the run's memory manually, use enough capacity for the requested workload.
- Remote-only and Glassdoor application filters depend on the public labels available for each listing.
- The Actor does not access private accounts, applications, or information behind a login.
Frequently asked questions
Can I search several countries in one run?
No. Use one country per run and create separate Tasks or runs for additional countries.
Why did I receive fewer jobs than requested?
The requested values are maximums. The source may expose fewer matching public listings, and filters, duplicates, output limits, or a maximum charge can reduce the total.
Are duplicate jobs charged more than once?
No. Within each run, only unique offers actually written to the Dataset trigger glassdoor-offer.
Can I receive plain text instead of Markdown?
Yes. Set descriptionFormat to plain; use html to preserve HTML instead.
Does the Actor always return salaries and direct application links?
No. Those fields are returned only when published and available for the individual listing.
Can I schedule recurring searches?
Yes. Save the input as an Apify Task and connect it to an Apify Schedule.
Responsible use
Use the Actor only for lawful processing of public job information. Follow applicable laws, privacy requirements, Glassdoor's terms, and the rights of employers and applicants. Do not use results for spam, harassment, discrimination, or unlawful automated decisions.
Support
If a run fails or returns unexpected data, open an issue from the Actor page. Include the run URL, non-sensitive input, and expected behavior, but never publish API tokens or other secrets.