Glassdoor Jobs Scraper | Enterprise-Grade
Pricing
$0.70 / 1,000 results
Glassdoor Jobs Scraper | Enterprise-Grade
Extract structured Glassdoor job listings with titles, descriptions, salaries, company data, ratings, and employer insights. Built for enterprise-grade hiring intelligence, labor market analysis, and automated recruiting or analytics pipelines.
Pricing
$0.70 / 1,000 results
Rating
0.0
(0)
Developer
Fatih Tahta
Maintained by CommunityActor stats
1
Bookmarked
24
Total users
7
Monthly active users
6 days ago
Last modified
Categories
Share
Glassdoor Jobs Scraper
Slug: fatihtahta/glassdoor-jobs-scraper
Overview
Glassdoor Jobs Scraper collects structured job listing records from Glassdoor, including job titles, descriptions, locations, company details, compensation estimates, ratings, application attributes, and source metadata. It is designed for collecting public job market data from https://www.glassdoor.com/Job, where job postings, employer context, and compensation signals can support hiring market analysis and operational planning. The actor turns repeatable job searches into normalized JSON records that can be exported, scheduled, and consumed by downstream systems. It supports automation workflows where teams need consistent data acquisition across keywords, locations, seniority levels, employer sizes, job types, and freshness windows. The output is intended for dependable recurring collection without making assumptions about total market completeness, availability, or service-level guarantees.
Why Use This Actor
- Market research and analytics: collect structured job listings for labor-market intelligence, salary benchmarking, geographic demand analysis, and operational reporting.
- Product and content teams: monitor hiring trends, employer positioning, job-title vocabulary, and compensation ranges to support content strategy and product planning.
- Developers and data engineering pipelines: feed normalized JSON records into ETL pipelines, warehouses, search indexes, and monitoring workflows with minimal transformation.
- Lead generation and enrichment: identify employers, roles, locations, and hiring signals that can enrich CRM records or support targeted outreach workflows.
- Monitoring and competitive tracking: schedule recurring searches to track new postings, employer activity, Easy Apply availability, salary movements, and role demand over time.
Common Use Cases
- Market intelligence: monitor job supply, compensation estimates, employer ratings, locations, seniority levels, and role-family movement.
- Salary benchmarking: compare estimated compensation ranges by title, location, employer segment, industry, and job function.
- Competitive monitoring: track public job posts from target employers or market segments over repeated runs.
- Hiring-demand analysis: collect keyword-based job datasets for analytics models, dashboards, and internal research.
- Employer directory building: populate internal databases with public employer, location, rating, and hiring attributes.
- Data enrichment: add current public job-market attributes to existing CRM, BI, or analytics datasets.
- Recurring reporting: schedule periodic runs for alerts, trend analysis, and automated market updates.
Quick Start
- Enter one or more
queriessuch as job titles, skills, employer names, or role-plus-location phrases. - Add optional filters such as
location,radius,datePosted,minRating, salary range,jobType, industry, job function, seniority, employer size, Easy Apply, remote-only, or sort order. - Set a small
limit, such as25or100, for your first validation run. - Run the actor in Apify Console.
- Inspect the first dataset records to confirm that the fields, compensation data, company attributes, and location coverage match your use case.
- Increase the limit, adjust filters, or schedule the actor once the output is verified.
Input Parameters
Provide one or more search queries, then optionally narrow the search by location, posting date, employer rating, salary, job type, industry, job function, seniority, employer size, sort order, Easy Apply, remote-only, coverage behavior, and per-query limit.
| Parameter | Type | Description | Default |
|---|---|---|---|
queries | array of strings | One or more Glassdoor job search keywords. Use job titles, skills, employer names, or role-plus-location phrases. | – |
location | string | Optional location text applied to each query, such as San Antonio, San Francisco, CA, or 10001. | – |
radius | string | Optional search radius in miles. Allowed values: 10, 20, 30, 50, 100, 200. | – |
datePosted | string | Optional recency filter. Allowed values: 1 for last 24 hours, 3 for last 3 days, 7 for last 7 days, 14 for last 14 days. | – |
minRating | string | Optional minimum company rating filter. Allowed values: 1 for 4 stars and up, 2 for 3 stars and up, 3 for 2 stars and up, 4 for 1 star and up. | – |
minSalary | integer | Optional minimum salary filter. Salary values use the currency and salary conventions available for the matching Glassdoor listings. | – |
maxSalary | integer | Optional maximum salary filter. Use with minSalary when you need a target compensation range. | – |
jobType | string | Optional employment type. Allowed values: CF3CP Full-time, 5QWDV Permanent, 75GKK Part-time, NJXCK Contract, T9BXE Fixed Term Contract, VDTG7 Internship. | – |
industryNid | string | Optional industry filter. Allowed values: 10002 Aerospace & Defense, 10019 Energy, Mining & Utilities, 10010 Finance, 10012 Healthcare, 10026 Human Resources and Staffing, 10013 Information Technology, 10014 Insurance, 10006 Management and Consulting, 10015 Manufacturing, 10016 Media and Communications, 10024 Transportation and Logistics. | – |
sgocId | string | Optional job function filter. Allowed values: 1003 Business, 1004 Consulting, 1007 Engineering, 1011 Information Technology, 1016 Operations, 1017 Other, 1018 Product & Project Management, 1019 Research & Science, 1022 Skilled Labor & Manufacturing, 1023 Transportation. | – |
seniorityType | string | Optional seniority filter. Allowed values: internship, entrylevel, midseniorlevel, director, executive. | – |
employerSize | string | Optional employer size filter. Allowed values: 1 for 1-200 employees, 2 for 201-500 employees, 3 for 501-1000 employees, 4 for 1001-5000 employees, 5 for 5001+ employees. | – |
sortBy | string | Optional sort order for search-based runs. Allowed values: relevant_desc Most relevant, date_desc Most recent. | – |
applicationType | boolean | When enabled, keeps only jobs marked as Easy Apply. | – |
remoteWorkType | boolean | When enabled, keeps only remote jobs in search-based runs. | – |
maximize_coverage | boolean | When enabled, the actor applies additional coverage-oriented handling for broad searches. | true |
limit | integer | Maximum number of listings to save per query. Use a small value for validation and a larger value for deeper collection. | 50000 |
Choosing Inputs
Use queries when you want the actor to discover matching Glassdoor job listings from keywords, skills, roles, or employer names. Add location and radius when geography matters; leave them empty for broader discovery. Use datePosted and sortBy for monitoring fresh postings, and use minSalary, maxSalary, minRating, jobType, industryNid, sgocId, seniorityType, and employerSize when you need a cleaner, more targeted dataset. Narrower filters produce more precise records, while broader filters improve discovery and may return a wider mix of roles. Start with a small limit to validate output quality, then increase it after confirming that the records match your workflow.
Example Inputs
Example: Location-Based Software Engineering Search
{"queries": ["software engineer"],"location": "New York, NY","radius": "20","sortBy": "relevant_desc","limit": 100}
Example: Recently Posted Remote Data Roles
{"queries": ["data analyst", "data scientist"],"datePosted": "7","remoteWorkType": true,"sortBy": "date_desc","limit": 150}
Example: Targeted Finance Roles With Salary And Rating Filters
{"queries": ["financial analyst"],"location": "Chicago, IL","industryNid": "10010","minRating": "2","minSalary": 90000,"jobType": "CF3CP","limit": 75}
Output
Output Destination
The actor writes results to an Apify dataset as JSON records. The dataset is designed for direct consumption by analytics tools, ETL pipelines, and downstream APIs with minimal post-processing.
When multiple entity types or record shapes exist, this README documents each shape separately based on the provided Example Output. The provided output contains one record type: job.
Record Envelope And Stable Identifiers
Each record is a job object with a top-level type, id, url, title, and nested objects for job details, role classification, location, compensation, company, platform attributes, and source context.
Recommended idempotency key: id. If your destination requires a URL-based key, source_context.canonical_url or url can also be used. For deduplication and upserts, store records by id and update the existing record when the same job appears in a later run. Stable identifiers make records easier to merge, deduplicate, and sync across repeated runs.
The source_context.canonical_url field preserves the canonical listing URL, and source_context.scraped_at records when the record was collected.
Examples
Example: job (type = "job")
{"type": "job","id": "1010116324041","url": "https://www.glassdoor.com/job-listing/sr-software-engineer-intone-networks-JV_IC1132348_KO0,20_KE21,36.htm?jl=1010116324041","title": "Sr. Software Engineer","job": {"description": "Strong proficiency in Python and C# Frontend development experience using Angular and/or React Experience or familiarity with modern architectures leveraging…","description_html": "Strong proficiency in Python and C# Frontend development experience using Angular and/or React Experience or familiarity with modern architectures leveraging…","job_page_url": "https://www.glassdoor.com/partner/jobListing.htm?ao=1136043&cb=1780004209596&cs=1_57cebbb3&guid=0000019e7084c2a498f247d9b4df69be&jobListingId=1010116324041&jrtk=5-yul1-0-1jpo89gmkgctc800-f30db55d619a0b7d&pos=101&s=58&src=GD_JOB_AD&t=SR&vt=w","listing_age_days": 30,"is_expired": false,"has_easy_apply": false,"import_config_id": 322429,"title_id": 0},"role": {"normalized_title": "software engineer","occupation_name": "software engineer","occupation_id": 100063,"occupations": [{"key": "5NN53"},{"key": "EHPW9"},{"key": "HJSX6"}],"country_id": 1},"location": {"id": "1132348","name": "New York, NY","type": "C","details": {"id": 1132348,"name": "New York, NY","type": "C"}},"compensation": {"currency": "USD","pay_period": "ANNUAL","salary_source": "ESTIMATED","estimated_range": {"low": 144734.0,"median": 174585.0,"high": 210592.0},"source_percentiles": {"p10": 144734.0,"p50": 174585.0,"p90": 210592.0},"search_midpoint": 174585.0},"company": {"id": "375310","name": "Intone Networks","legal_name": "Intone Networks, Inc.","short_name": "Intone Networks","logo_url": "https://media.glassdoor.com/sql/375310/intone-networks-squarelogo.png","rating": 4.0,"ratings": {"overallRating": 4.0},"overview": {"shortName": "Intone Networks","squareLogoUrl": "https://media.glassdoor.com/sql/375310/intone-networks-squarelogo.png"}},"platform": {"ad_order_id": 1136043,"is_sponsored_employer": false,"is_sponsored_job": false},"source_context": {"seed": {"id": "3d0d166abf3f","type": "query","value": "{\"filters\":{\"employerSizes\":\"2\"},\"locationId\":\"1132348\",\"locationType\":\"CITY\",\"query\":\"software engineer\"}"},"canonical_url": "https://www.glassdoor.com/job-listing/sr-software-engineer-intone-networks-JV_IC1132348_KO0,20_KE21,36.htm?jl=1010116324041","job_page_url": "https://www.glassdoor.com/partner/jobListing.htm?ao=1136043&cb=1780004209596&cs=1_57cebbb3&guid=0000019e7084c2a498f247d9b4df69be&jobListingId=1010116324041&jrtk=5-yul1-0-1jpo89gmkgctc800-f30db55d619a0b7d&pos=101&s=58&src=GD_JOB_AD&t=SR&vt=w","page_index": 1,"scraped_at": "2026-05-28T21:36:49.881825Z","domain": "www.glassdoor.com","snapshot": {"listing_id": "1010116324041","title": "Sr. Software Engineer","url": "https://www.glassdoor.com/job-listing/sr-software-engineer-intone-networks-JV_IC1132348_KO0,20_KE21,36.htm?jl=1010116324041","job_page_url": "https://www.glassdoor.com/partner/jobListing.htm?ao=1136043&cb=1780004209596&cs=1_57cebbb3&guid=0000019e7084c2a498f247d9b4df69be&jobListingId=1010116324041&jrtk=5-yul1-0-1jpo89gmkgctc800-f30db55d619a0b7d&pos=101&s=58&src=GD_JOB_AD&t=SR&vt=w","company_name": "Intone Networks","location_name": "New York, NY","currency": "USD","pay_midpoint": 174585.0,"pay_period": "ANNUAL","salary_source": "ESTIMATED","has_easy_apply": false,"listing_age_days": 30,"company_id": "375310","company_rating": 4.0},"api_details": {"job_listing": {"ad_order_id": 1136043,"age_in_days": 30,"easy_apply": false,"employer": {"id": 375310,"name": "Intone Networks, Inc.","ratings": {"overall_rating": 4.0},"short_name": "Intone Networks"},"employer_name_from_search": "Intone Networks","expired": false,"goc": "software engineer","goc_id": 100063,"is_sponsored_employer": false,"is_sponsored_job": false,"job_country_id": 1,"job_link": "https://www.glassdoor.com/partner/jobListing.htm?ao=1136043&cb=1780004209596&cs=1_57cebbb3&guid=0000019e7084c2a498f247d9b4df69be&jobListingId=1010116324041&jrtk=5-yul1-0-1jpo89gmkgctc800-f30db55d619a0b7d&pos=101&s=58&src=GD_JOB_AD&t=SR&vt=w","job_title_text": "Sr. Software Engineer","loc_id": 1132348,"location_name": "New York, NY","location_type": "C","normalized_job_title": "software engineer","occupations": [{"key": "5NN53"},{"key": "EHPW9"},{"key": "HJSX6"}],"pay_currency": "USD","pay_period": "ANNUAL","pay_period_adjusted_pay": {"p10": 144734.0,"p50": 174585.0,"p90": 210592.0},"salary_source": "ESTIMATED","seo_job_link": "https://www.glassdoor.com/job-listing/sr-software-engineer-intone-networks-JV_IC1132348_KO0,20_KE21,36.htm?jl=1010116324041"},"job_overview": {"description_fragments_text": ["Strong proficiency in Python and C# Frontend development experience using Angular and/or React Experience or familiarity with modern architectures leveraging…"],"import_config_id": 322429,"job_title_id": 0,"job_title_text": "Sr. Software Engineer","listing_id": 1010116324041},"employer_overview": {"short_name": "Intone Networks","square_logo_url": "https://media.glassdoor.com/sql/375310/intone-networks-squarelogo.png"},"location": {"id": 1132348,"name": "New York, NY","type": "C"}}}}
Field Reference
job Records
type (string, required): Record type. For job listings, this is job.
id (string, required): Stable job listing identifier and recommended idempotency key.
url (string, required): Canonical public job listing URL.
title (string, required): Job title shown for the listing.
job.description (string, optional): Plain-text job description or description excerpt.
job.description_html (string, optional): HTML-formatted job description or description excerpt when available.
job.job_page_url (string, optional): Job application or listing page URL associated with the record.
job.listing_age_days (integer, optional): Approximate listing age in days.
job.is_expired (boolean, optional): Whether the listing is marked as expired.
job.has_easy_apply (boolean, optional): Whether the listing is marked as Easy Apply.
job.import_config_id (integer, optional): Source-provided listing configuration identifier.
job.title_id (integer, optional): Source-provided job title identifier.
role.normalized_title (string, optional): Normalized role title.
role.occupation_name (string, optional): Occupation name associated with the role.
role.occupation_id (integer, optional): Occupation identifier associated with the role.
role.occupations (array, optional): Source-provided occupation key objects.
role.occupations[].key (string, optional): Occupation key.
role.country_id (integer, optional): Country identifier associated with the role.
location.id (string, optional): Location identifier.
location.name (string, optional): Human-readable location name.
location.type (string, optional): Source-provided location type.
location.details.id (integer, optional): Detailed location identifier.
location.details.name (string, optional): Detailed location name.
location.details.type (string, optional): Detailed source-provided location type.
compensation.currency (string, optional): Compensation currency, such as USD.
compensation.pay_period (string, optional): Pay period, such as ANNUAL.
compensation.salary_source (string, optional): Salary data source label, such as ESTIMATED.
compensation.estimated_range.low (number, optional): Estimated low compensation value.
compensation.estimated_range.median (number, optional): Estimated median compensation value.
compensation.estimated_range.high (number, optional): Estimated high compensation value.
compensation.source_percentiles.p10 (number, optional): 10th percentile compensation estimate.
compensation.source_percentiles.p50 (number, optional): 50th percentile compensation estimate.
compensation.source_percentiles.p90 (number, optional): 90th percentile compensation estimate.
compensation.search_midpoint (number, optional): Compensation midpoint used for search and analysis.
company.id (string, optional): Company identifier.
company.name (string, optional): Company display name.
company.legal_name (string, optional): Company legal name when available.
company.short_name (string, optional): Short company name.
company.logo_url (string, optional): Company logo URL.
company.rating (number, optional): Company rating.
company.ratings.overallRating (number, optional): Overall company rating.
company.overview.shortName (string, optional): Short company name from the company overview.
company.overview.squareLogoUrl (string, optional): Square company logo URL.
platform.ad_order_id (integer, optional): Source-provided advertising order identifier.
platform.is_sponsored_employer (boolean, optional): Whether the employer is marked as sponsored.
platform.is_sponsored_job (boolean, optional): Whether the job is marked as sponsored.
source_context.seed.id (string, optional): Identifier for the input seed that produced the record.
source_context.seed.type (string, optional): Seed type, such as query.
source_context.seed.value (string, optional): Serialized seed value used for collection context.
source_context.canonical_url (string, optional): Canonical URL for the job listing.
source_context.job_page_url (string, optional): Job page URL captured in the source context.
source_context.page_index (integer, optional): Result page index associated with the record.
source_context.scraped_at (string, optional): ISO 8601 timestamp for when the record was collected.
source_context.domain (string, optional): Source domain.
source_context.snapshot.listing_id (string, optional): Listing identifier captured in the snapshot.
source_context.snapshot.title (string, optional): Job title captured in the snapshot.
source_context.snapshot.url (string, optional): Listing URL captured in the snapshot.
source_context.snapshot.job_page_url (string, optional): Job page URL captured in the snapshot.
source_context.snapshot.company_name (string, optional): Company name captured in the snapshot.
source_context.snapshot.location_name (string, optional): Location name captured in the snapshot.
source_context.snapshot.currency (string, optional): Compensation currency captured in the snapshot.
source_context.snapshot.pay_midpoint (number, optional): Compensation midpoint captured in the snapshot.
source_context.snapshot.pay_period (string, optional): Pay period captured in the snapshot.
source_context.snapshot.salary_source (string, optional): Salary source captured in the snapshot.
source_context.snapshot.has_easy_apply (boolean, optional): Easy Apply status captured in the snapshot.
source_context.snapshot.listing_age_days (integer, optional): Listing age captured in the snapshot.
source_context.snapshot.company_id (string, optional): Company identifier captured in the snapshot.
source_context.snapshot.company_rating (number, optional): Company rating captured in the snapshot.
source_context.api_details.job_listing.ad_order_id (integer, optional): Source detail advertising order identifier.
source_context.api_details.job_listing.age_in_days (integer, optional): Source detail listing age in days.
source_context.api_details.job_listing.easy_apply (boolean, optional): Source detail Easy Apply status.
source_context.api_details.job_listing.employer.id (integer, optional): Source detail employer identifier.
source_context.api_details.job_listing.employer.name (string, optional): Source detail employer name.
source_context.api_details.job_listing.employer.ratings.overall_rating (number, optional): Source detail overall employer rating.
source_context.api_details.job_listing.employer.short_name (string, optional): Source detail employer short name.
source_context.api_details.job_listing.employer_name_from_search (string, optional): Employer name as represented in the search result.
source_context.api_details.job_listing.expired (boolean, optional): Source detail expired status.
source_context.api_details.job_listing.goc (string, optional): Source detail occupation name.
source_context.api_details.job_listing.goc_id (integer, optional): Source detail occupation identifier.
source_context.api_details.job_listing.is_sponsored_employer (boolean, optional): Source detail sponsored employer status.
source_context.api_details.job_listing.is_sponsored_job (boolean, optional): Source detail sponsored job status.
source_context.api_details.job_listing.job_country_id (integer, optional): Source detail country identifier.
source_context.api_details.job_listing.job_link (string, optional): Source detail job link.
source_context.api_details.job_listing.job_title_text (string, optional): Source detail job title.
source_context.api_details.job_listing.loc_id (integer, optional): Source detail location identifier.
source_context.api_details.job_listing.location_name (string, optional): Source detail location name.
source_context.api_details.job_listing.location_type (string, optional): Source detail location type.
source_context.api_details.job_listing.normalized_job_title (string, optional): Source detail normalized job title.
source_context.api_details.job_listing.occupations (array, optional): Source detail occupation key objects.
source_context.api_details.job_listing.occupations[].key (string, optional): Source detail occupation key.
source_context.api_details.job_listing.pay_currency (string, optional): Source detail compensation currency.
source_context.api_details.job_listing.pay_period (string, optional): Source detail compensation pay period.
source_context.api_details.job_listing.pay_period_adjusted_pay.p10 (number, optional): Source detail 10th percentile compensation estimate.
source_context.api_details.job_listing.pay_period_adjusted_pay.p50 (number, optional): Source detail 50th percentile compensation estimate.
source_context.api_details.job_listing.pay_period_adjusted_pay.p90 (number, optional): Source detail 90th percentile compensation estimate.
source_context.api_details.job_listing.salary_source (string, optional): Source detail salary source.
source_context.api_details.job_listing.seo_job_link (string, optional): Source detail public listing URL.
source_context.api_details.job_overview.description_fragments_text (array, optional): Source detail description text fragments.
source_context.api_details.job_overview.import_config_id (integer, optional): Source detail import configuration identifier.
source_context.api_details.job_overview.job_title_id (integer, optional): Source detail job title identifier.
source_context.api_details.job_overview.job_title_text (string, optional): Source detail job title text.
source_context.api_details.job_overview.listing_id (integer, optional): Source detail listing identifier.
source_context.api_details.employer_overview.short_name (string, optional): Source detail employer short name.
source_context.api_details.employer_overview.square_logo_url (string, optional): Source detail square logo URL.
source_context.api_details.location.id (integer, optional): Source detail location identifier.
source_context.api_details.location.name (string, optional): Source detail location name.
source_context.api_details.location.type (string, optional): Source detail location type.
Data Quality, Guarantees, And Handling
- Structured records: results are normalized into predictable JSON objects for downstream use.
- Best-effort extraction: fields may vary by region, session, availability, and source-side presentation changes.
- Optional fields: null-check optional values in downstream code, especially compensation, ratings, descriptions, logos, and source-specific details.
- Deduplication: use
idas the strongest stable key available in the output;source_context.canonical_urlorurlcan be used as secondary keys where needed. - Freshness: results reflect the publicly available data at run time.
- Repeated runs: use the recommended idempotency key when syncing data into warehouses, CRMs, or search indexes.
Tips For Best Results
- Start with a small
limitto validate the output shape before scaling up. - Use one geography, role family, industry, or employer segment per run when you need clean segmentation.
- Leave optional filters empty when the goal is broad discovery.
- Add filters gradually to understand how each field changes coverage and record mix.
- Use
datePostedwithsortByset todate_descfor recurring monitoring of fresher postings. - Use
remoteWorkTypeorapplicationTypeonly when those attributes are important to your workflow. - Store records by
idwhen maintaining historical datasets across repeated runs.
How To Run On Apify
- Open the Actor in Apify Console.
- Configure the available input fields for the target scope.
- Set the maximum number of outputs to collect with
limit. - Click Start and wait for the run to finish.
- Open the dataset to review the first records.
- Download results in JSON, CSV, Excel, or another supported format.
Scheduling & Automation
Scheduling
Automated Data Collection
You can schedule runs to keep job-market datasets fresh for recurring reporting, monitoring, and enrichment workflows. Scheduled inputs should be reviewed periodically to confirm that filters still match the target market segment.
- Navigate to Schedules in Apify Console
- Create a new schedule, such as daily, weekly, or custom cron
- Configure input parameters
- Enable notifications for run completion
- Add webhooks for automated processing
Integration Options
- CRM enrichment: sync employer, role, location, rating, compensation, and Easy Apply attributes into account or lead records.
- Google Sheets or Airtable: review smaller job datasets, validate segments, and share curated lists with operations or research teams.
- BI dashboards: monitor hiring activity, salary estimates, employer ratings, and geographic demand over time.
- Webhooks: trigger ingestion, validation, alerting, or notification workflows after each completed run.
- Data enrichment pipelines: join job listings with existing employer, market, or recruiting datasets.
- Warehouse and ETL workflows: load normalized job records into analytical systems for reporting and historical trend analysis.
Export Formats And Downstream Use
Apify datasets can be exported or consumed by downstream systems for analysis, reporting, and operational workflows.
- JSON: for APIs, applications, and data pipelines.
- CSV or Excel: for spreadsheet workflows and manual review.
- API access: for automated ingestion into internal systems.
- BI and warehouses: for reporting, dashboards, and historical analysis.
Performance
Estimated run times:
- Small runs (< 1,000 outputs): ~3-5 minutes
- Medium runs (1,000-5,000 outputs): ~5-15 minutes
- Large runs (5,000+ outputs): ~15-30 minutes
Execution time varies based on filters, result volume, and how much information is returned per record. Highly filtered runs can finish faster, while broad discovery or detail-rich records may take longer.
Limitations
- Availability depends on what https://www.glassdoor.com/Job publicly exposes at run time.
- Some optional fields may be missing on sparse listings or listings without public compensation, rating, logo, or description data.
- Very broad searches may take longer or require higher limits to collect a useful sample.
- Source-side changes can affect field availability, naming, or record shape.
- Regional, account, or availability differences may change the visible results.
- Salary values are based on the public compensation information available for each listing and should be treated as estimates when marked as estimated.
Troubleshooting
- No results returned: check query spelling, filters, location text, and whether Glassdoor has matching public records for the selected scope.
- Fewer results than expected: broaden filters, raise the
limit, use a largerradius, or verify that the target segment contains enough matching listings. - Some fields are empty: optional fields depend on what each record publicly provides.
- Run takes longer than expected: reduce scope, lower
limitfor validation, or split broad collection into smaller segments. - Output changed: compare the current output with the field reference and provide a small sample if support is needed.
FAQ
What data does this actor collect?
It collects public Glassdoor job listing data, including job title, description, location, company information, ratings, compensation estimates, application attributes, and source context.
Can I filter by location, category, date, salary, or other criteria?
Yes. The actor supports location, radius, date posted, minimum rating, salary range, job type, industry, job function, seniority, employer size, sort order, Easy Apply, remote-only, and limit controls.
Why did I receive fewer results than my limit?
The limit is a maximum, not a guarantee. The run may return fewer records when the selected query, filters, location, or public availability has fewer matching listings.
Can I schedule recurring runs?
Yes. Use Apify schedules to run the actor on a daily, weekly, or custom cadence for monitoring, reporting, and enrichment workflows.
How do I avoid duplicates across runs?
Use the job id as the primary idempotency key. You can also use source_context.canonical_url or url as secondary matching keys in systems that rely on URLs.
Can I export the data to CSV, Excel, or JSON?
Yes. Apify datasets can be downloaded in JSON, CSV, Excel, and other supported formats.
Does this actor collect private data?
The actor is intended to collect publicly available job listing information from Glassdoor. Users are responsible for using the data lawfully and respecting applicable privacy requirements.
What should I include when reporting an issue?
Include the input used, the run ID, expected versus actual behavior, and a small output sample if it helps illustrate the issue.
Compliance & Ethics
Responsible Data Collection
This actor collects publicly available job listing information from https://www.glassdoor.com/Job for legitimate business purposes, including:
- Labor-market research and market analysis
- Hiring-demand monitoring and compensation benchmarking
- CRM, BI, and analytics dataset enrichment
Users are responsible for ensuring that their use of collected data complies with applicable laws, regulations, contractual obligations, and platform terms. This section is informational and not legal advice.
Best Practices
- Use collected data in accordance with applicable laws, regulations, and the target site’s terms
- Respect individual privacy and personal information
- Use data responsibly and avoid disruptive or excessive collection
- Do not use this actor for spamming, harassment, or other harmful purposes
- Follow relevant data protection requirements where applicable, including GDPR and CCPA
Support
For help, use the Issues tab or the actor page on Apify. Include the input used with sensitive values redacted, the run ID, expected versus actual behavior, and a small output sample when available. Avoid sharing private credentials, confidential business data, or unnecessary personal information in support requests.