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
a day 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 billing reconciliation 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
| 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 | Only jobs published within this many hours, from 0 to 720. 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,"location": null}
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, companyName | Public job title 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 | Published salary or compensation structure when available. |
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-1010213414098","jobUrl": "https://www.glassdoor.com/job-listing/j?jl=1010213414098","directJobUrl": "https://www.glassdoor.com/partner/jobListing.htm?pos=101&ao=1110586&s=58&guid=000001a09f46add292752cffe5aaaeda&src=GD_JOB_AD&t=SR&vt=w&ea=1&cs=1_82ba142f&cb=1789378605133&jobListingId=1010213414098&cpc=197C68CF74E76BD0&jrtk=5-yul1-0-1k2fkdbftk8gp800-6acd0b2578ab2456---6NYlbfkN0BaWz2ZUxOKHesiW_7NDjTVyS4v-l0G0GfD2ndWwArSkHeuwr1EmUBRv9jYiQYaSojkZGqXyxmH0vUp1ExzVJbrWjVTXXmSpzHA-kr0q7EOYpn_eL5jZwyVbg3a0QSrFaa7NcSvls1rNTyJ3POEr6GDwV05E1P-S1AjDIyyvgW_fLeiTkDNYW2HVna7JNgbEpNhFWJXV_eZzPi9NAjyp0d2EaisHDO8zDQPGeavbqJ7tHFNlNxIV3hvPb8h5iEEqs7qPgi1zIUUw_jiVHAM_jLrx7qvO5FGJ9giK0pkYtMSGF5xGrHfsYlyPddAxvU0ig-L048kS_9KwFYZ4WRgnKPv4XjuceE5cyXCGPM1JTuzRwayVGD2Isnh0JkDt1yjwZXyzFRVuVp2fP6Vb3Oy5GYxkP4iTuPdySrJTghc6HGT1oBAzEqSlW3CPpHp5HWOZJix6jnfVZy2ADTFx8aqzODAaYAG3lyw1HvaXydO9zz1NVd8TnjOwfmNwEgub6RTS88Udwjy6qdguq66NcxugNemlynIyBvGhiED2lqEOYFY0AZppzzr2b4orRBBYD7wKiN9VtkR37SSOAWOGuRMrPmNIvs5f-CxnXDuQR-srgqf3QoQ_owKkbC6iHzHjNPEeOIZZ6hTcY7M1dW-02NSze0SiGv4QbbFSA3vbucote3zTU6jGseP01PTcOO5-jKlZ8t-JUNl50lt2yHLVyDSLHSnlxPiKj_O3T0G-0TZusodpKIXXoWyGVNzDXZcYoJ2Xhq_TRegF4iuapE08_X4HRfLkhnv9hgHgdyfvCqgUkJohJkh56Zf1s_HDk3_-D6S-UdzPMnYeZLyFkMnW1JJ2Hjknpk06prmKe0%3D","title": "Oracle Database Developer","companyName": "GPS Information Guidance, LLC","companyUrl": null,"companyDirectUrl": null,"location": {"country": null,"city": "Millington","state": "TN"},"locationDisplay": "Millington, TN","isRemote": false,"jobTypes": [],"postedDate": "2026-07-30","description": "**JOB TITLE:**\n\nOracle Database Analyst - 100% On-Site (NSA Mid-South)\n\n**JOB SUMMARY:**\n\nGPSIG, LLC is seeking an experienced Oracle Database Analyst to analyze, design, develop, test, and maintain enterprise Oracle applications and reporting systems supporting mission-essential operations for the U.S. Army Corps of Engineers (USACE).\n\n***WORK LOCATION NOTICE: This position requires full-time, on-site reporting at the Naval Support Activity (NSA) Mid-South base in Millington, TN to meet strict contractual operational requirements.***\n\nOperating within a modern Oracle Exadata and Private Cloud Appliance (PCA), you will write complex PL/SQL, maintain BI Publisher reports, refactor legacy report queries, optimize performance, and interface with an Oracle Database Repository.\n\n**CORE TECHNICAL COMPETENCIES:**\n\n* PL/SQL & Database Engineering: Deep expertise in writing, modifying, and maintaining complex Oracle PL/SQL database packages (.pkb), procedures (.prc), functions, triggers, and table structures.\n* Reporting & Business Intelligence: Proficiency in developing, maintaining, and updating enterprise reports using Oracle BI Publisher (BIP) and APEX.\n* Query Refactoring & Legacy Integration: Proven ability to extract SQL from legacy reports (e.g., Crystal Reports), re-engineer business logic, and adapt queries to run cleanly against modernized Oracle data repositories.\n* Performance Engineering: Capability to diagnose slow-running queries, optimize execution plans, and tune database code specifically for high-throughput Oracle Exadata architectures.\n* Linux Scripting & Automation: Command-line proficiency in RHEL to write shell scripts (Bash/KSH) for automating database jobs, batch ETL workflows, and report execution.\n\n**KEY RESPONSIBILITIES:**\n\n* Database Development & Maintenance: Design, write, test, and update complex PL/SQL packages and database objects to support mission-critical business logic and data structures.\n* Reporting & Logic Integration: Maintain enterprise BI Publisher (BIP) reports and extract/refactor SQL embedded in legacy Crystal Reports to execute against target Oracle Database Repositories.\n* Data Integration & ETL Support: Build and maintain scripts and procedures to handle data staging and processing.\n* Production Support & Issue Resolution: Troubleshoot, debug, and resolve application error reports, performance bottlenecks (e.g., query timeouts), and data discrepancies in production environments.\n* Testing & Quality Control: Draft and execute system, integration, and performance test plans for newly developed or converted database objects and reporting modules prior to production release.\n* Technical Documentation: Maintain accurate documentation of code modifications, report definitions, system parameters, and database package updates.\n\n**QUALIFICATIONS & REQUIREMENTS:**\n\n* Work Location (Mandatory): Must be able to work 100% on-site at NSA Mid-South in Millington, TN. (Remote/hybrid arrangements are not available per contract guidelines).\n* Education (Mandatory): Bachelor’s degree in Computer Science, Management Information Systems (MIS), Software Engineering, Information Technology, or a related technical field from an accredited institution.\n* DoD 8140 Compliance Requirements: Must meet DoD 8140 foundational qualification standards via continuous, uninterrupted professional experience in database/software development since degree completion OR by holding an active qualifying certification (e.g., CSSLP or equivalent approved credential).\n* Technical Skills: 3+ years of hands-on experience in Oracle PL/SQL development and Oracle BI Publisher (BIP) report maintenance. Practical experience working in Linux/Unix environments (specifically RHEL), shell scripting, and command-line interfaces.\n* Clearance, Background & Security Requirements:\n* Must be a U.S. Citizen (contractual requirement).\n* Must pass a company-administered background check prior to hire.\n* Must be able to obtain and maintain a favorable Tier 3 (T3) Non-Critical Sensitive / Public Trust investigation (requires SF-86 completion).\n\n**DESIRED / PREFERRED SKILLS:**\n\n* Experience extracting and refactoring legacy SQL (e.g., Crystal Reports logic) for modern Oracle schema structures.\n* Development or query tuning experience on Oracle Exadata and/or Oracle Private Cloud Appliance (PCA).\n* Experience with Oracle Application Express (APEX) or Oracle Analytics Server (OAS) / OBIEE.\n* AI & Generative AI Skills (Plus): Familiarity with commercial/enterprise Large Language Models (LLMs) such as Gemini, Claude, ChatGPT, or local tools to assist in code refactoring, query optimization, or documentation. An AI-focused credential or certification is a plus.\n\n**Benefits**\n\nGPSIG offers an expansive benefits package including health/dental/vision/life/short and long term disability insurance, paid time off, paid holidays, and 401k w/company match.\n\nJob Type: Full-time\n\nPay: $75,000.00 - $100,000.00 per year\n\nBenefits:\n\n* 401(k)\n* 401(k) matching\n* Dental insurance\n* Health insurance\n* Life insurance\n* Paid time off\n* Vision insurance\n\nApplication Question(s):\n\n* Are you a U.S. Citizen?\n* Do you hold a 4-year Bachelor's degree in Computer Science, MIS, Software Engineering, or a related technical field from an accredited institution?\n* Are you able to commute and work 100% on-site at the Naval Support Activity (NSA) Mid-South base in Millington, TN?\n* Are you able to pass a company background check and successfully complete an SF-86 for a Tier 3 (T3) background investigation?\n* Have you maintained continuous, uninterrupted professional experience in database/software development since obtaining your degree, OR do you hold an active qualifying DoD 8140 credential (e.g., CSSLP)?\n\nExperience:\n\n* Database development: 2 years (Required)\n\nWork Location: Hybrid remote in Millington, TN 38054","emails": null,"compensation": {"interval": "yearly","min_amount": 75000,"max_amount": 100000,"currency": "USD"},"companyIndustry": null,"companyAddresses": null,"companyEmployees": null,"companyRevenue": null,"companyDescription": null,"companyLogoUrl": null,"scrapedAt": "2026-09-14T09:36:48.967601Z"}
Run-level information is stored separately in the default Key-Value Store under SUMMARY, including query counts, failures, retries, 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 | Price 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. - If Glassdoor denies access or a required page is unavailable, the affected search fails. An access denial is not retried, and failed searches do not produce billable job rows. Check
SUMMARYand include the run URL when reporting the issue. - Small searches share a time budget across requests and retries. 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. - 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. 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.