DOL H-1B LCA Salary Scraper
Pricing
Pay per event
DOL H-1B LCA Salary Scraper
Search official DOL salary disclosures for H-1B, H-1B1, and E-3 filings. Filter employers, roles, worksites, wages, visa classes, and case statuses, then export normalized records.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Search and export official U.S. Department of Labor (DOL) Labor Condition Application salary filings for H-1B, H-1B1, and E-3 visas.
Filter millions of public disclosure records by employer, job title, SOC occupation, worksite, case status, visa class, wage range, and prevailing wage level. Get a clean Apify Dataset ready for recruiting research, immigration analytics, compensation benchmarking, or sponsor-market monitoring.
No login, API key, browser, or proxy is required. Every result links back to the official DOL workbook used for the run.
What does this H-1B salary scraper do?
DOL H-1B LCA Salary Scraper downloads one official OFLC disclosure workbook and searches it for records matching your criteria.
It can:
- ๐ Search employer names and job titles with partial, case-insensitive matching.
- ๐ Filter by worksite city and two-letter U.S. state code.
- ๐ผ Select H-1B, H-1B1 Chile, H-1B1 Singapore, or E-3 Australian filings.
- โ Limit results to Certified, Denied, Withdrawn, or Certified - Withdrawn cases.
- ๐ต Compare offered wages after normalizing hourly, weekly, biweekly, and monthly values to annual amounts.
- ๐ Filter by DOL prevailing wage level I, II, III, or IV.
- ๐งพ Preserve case numbers, filing dates, SOC occupation, employer, worksite, position count, and compliance flags.
- ๐ฆ Export JSON, CSV, Excel, XML, RSS, or another Apify Dataset format.
Who is it for?
Recruiters and talent intelligence teams
Find employers filing for particular roles and locations, build sponsor lead lists, and refresh them when DOL releases a new quarterly disclosure file.
Immigration law firms and researchers
Research filing patterns, case statuses, offered wages, prevailing wage levels, and employer activity without manually opening a large spreadsheet.
Compensation and workforce analysts
Benchmark annualized offered wages by job title, SOC occupation, employer, and worksite while retaining the original DOL wage unit.
Visa-sponsored job products
Feed structured sponsor and salary records into search products, enrichment pipelines, or internal data warehouses.
Why use this Actor instead of downloading the spreadsheet?
DOL workbooks are authoritative but large. A recent file is more than 130 MB compressed and contains dozens of columns.
This Actor:
- downloads the selected workbook only once per run;
- parses rows as a stream instead of loading the entire sheet into memory;
- applies filters while reading;
- stops after your requested number of matches;
- deduplicates case/worksite records;
- normalizes dates, booleans, and annual wages;
- writes only useful, typed fields to your Dataset.
You spend time analyzing the result rather than cleaning spreadsheets.
What H-1B LCA data can I extract?
| Field group | Example fields |
|---|---|
| Filing | caseNumber, caseStatus, receivedDate, decisionDate, visaClass |
| Occupation | jobTitle, socCode, socTitle |
| Employer | employerName, employerCity, employerState, employerPostalCode |
| Worksite | worksiteCity, worksiteState, worksitePostalCode |
| Offered wage | wageFrom, wageTo, wageUnit, annualWageFrom, annualWageTo |
| Prevailing wage | prevailingWage, annualPrevailingWage, prevailingWageLevel |
| Filing details | totalWorkerPositions, fullTimePosition, h1bDependent, willfulViolator |
| Provenance | sourceUrl, fiscalYear, fiscalQuarter, scrapedAt |
Optional values are omitted when the source workbook does not provide them.
How to scrape H-1B salary filings
- Open the Actor input page.
- Select a DOL fiscal year and quarter.
- Enter an employer, role, SOC, worksite, status, visa, or wage filter.
- Set
maxItemsto the maximum number of matching filings you need. - Click Start.
- Open the Dataset tab when the run succeeds.
- Preview, filter, or export the records.
Start with 25 records to validate your search, then increase the limit for a larger export.
Input
All supplied filters are combined with AND logic. Empty filters include every value.
| Input | Type | Meaning |
|---|---|---|
fiscalYear | integer | DOL fiscal year, from 2008 onward |
quarter | string | Q1, Q2, Q3, or Q4 disclosure file |
employerQuery | string | Employer name contains this text |
jobTitleQuery | string | Job title contains this text |
socCode | string | Exact SOC occupation code |
state | string | Exact two-letter worksite state |
city | string | Worksite city contains this text |
caseStatuses | array | Accepted DOL case statuses |
visaClasses | array | Accepted visa classes |
wageMin | number | Minimum annualized offered wage |
wageMax | number | Maximum annualized offered wage |
wageLevel | string | Exact prevailing wage level |
maxItems | integer | Maximum unique records to save |
sourceUrl | string | Optional official dol.gov XLSX override |
Example: employer salary search
{"fiscalYear": 2026,"quarter": "Q2","employerQuery": "Microsoft","caseStatuses": ["Certified"],"visaClasses": ["H-1B"],"maxItems": 20}
Example: California software engineer benchmark
{"fiscalYear": 2026,"quarter": "Q2","jobTitleQuery": "Software Engineer","state": "CA","wageMin": 120000,"caseStatuses": ["Certified"],"maxItems": 100}
Output
Each Dataset item represents one unique LCA case/worksite combination.
{"caseNumber": "I-200-26001-123456","caseStatus": "Certified","decisionDate": "2026-01-08","visaClass": "H-1B","jobTitle": "Software Engineer","socCode": "15-1252.00","socTitle": "Software Developers","employerName": "Example Technology Inc.","worksiteCity": "Redmond","worksiteState": "WA","wageFrom": 145000,"wageUnit": "Year","annualWageFrom": 145000,"prevailingWage": 131040,"annualPrevailingWage": 131040,"prevailingWageLevel": "Level III","totalWorkerPositions": 1,"fullTimePosition": true,"h1bDependent": false,"willfulViolator": false,"sourceUrl": "https://www.dol.gov/media/LCA_Dislclosure_Data_FY2026_Q2.xlsx","fiscalYear": 2026,"fiscalQuarter": "Q2","scrapedAt": "2026-07-16T00:00:00.000Z"}
The example illustrates the schema; values vary with official filings.
How annual wage normalization works
The Actor keeps the source wage and creates comparable annual fields.
- Hourly wage ร 2,080 hours
- Weekly wage ร 52 weeks
- Biweekly wage ร 26 periods
- Monthly wage ร 12 months
- Annual wage ร 1
wageMin and wageMax apply to annualWageFrom. The calculation is a normalization aid, not a guarantee of actual annual compensation, hours, bonuses, equity, or employment duration.
How much does it cost to scrape H-1B salary filings?
The Actor uses pay-per-event pricing:
- a small one-time start charge for downloading and opening the official workbook;
- a per-filing charge only for records saved to the Dataset;
- automatic volume discounts based on your Apify plan.
The exact live price appears in the Apify Console before you start a run. Use a focused filter and low maxItems for inexpensive tests.
Tips for better salary research
- ๐ฏ Start with one employer or role to confirm spelling used in DOL filings.
- ๐บ๏ธ Use the worksite state rather than employer state for local compensation analysis.
- ๐งโ๐ป Use SOC codes when titles vary across employers.
- ๐ Compare offered wage with annual prevailing wage and wage level.
- ๐ Keep the fiscal year and quarter in downstream records because DOL files are cumulative or period-specific.
- ๐ Schedule the same input after quarterly disclosure updates for repeatable monitoring.
- ๐งน Expect employer-name variations and normalize them in your warehouse when aggregating sponsors.
Integrations and automation workflows
Google Sheets or Excel
Export CSV or XLSX from the Dataset and share a filtered employer/role benchmark with recruiters or analysts.
Webhooks
Trigger a webhook after every successful run, then load new records into a CRM, ATS, database, or notification workflow.
Make and Zapier
Use the Apify integration to start a run on a schedule and process Dataset items in a no-code workflow.
Data warehouses
Pull JSON Dataset items into BigQuery, Snowflake, PostgreSQL, or your lakehouse. Use caseNumber plus worksite fields as a stable deduplication key.
API usage: run with the Apify API
Use Actor ID automation-lab/dol-h1b-lca-salary-scraper.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~dol-h1b-lca-salary-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"fiscalYear":2026,"quarter":"Q2","employerQuery":"Microsoft","maxItems":25}'
JavaScript / Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/dol-h1b-lca-salary-scraper').call({fiscalYear: 2026,quarter: 'Q2',employerQuery: 'Microsoft',maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("automation-lab/dol-h1b-lca-salary-scraper").call(run_input={"fiscalYear": 2026,"quarter": "Q2","jobTitleQuery": "Data Scientist","state": "CA","maxItems": 50,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with Apify MCP
Connect the Actor to AI assistants through the Apify MCP server.
MCP endpoint:
https://mcp.apify.com?tools=automation-lab/dol-h1b-lca-salary-scraper
Claude Code
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/dol-h1b-lca-salary-scraper" \--header "Authorization: Bearer $APIFY_TOKEN"
Claude Desktop, Cursor, and VS Code
Claude Desktop and Cursor accept an mcpServers JSON entry. VS Code users can add the same HTTP endpoint through the MCP server configuration UI.
{"mcpServers": {"apify-h1b-salary": {"url": "https://mcp.apify.com?tools=automation-lab/dol-h1b-lca-salary-scraper","headers": {"Authorization": "Bearer YOUR_APIFY_TOKEN"}}}}
Restart Claude Desktop or Cursor after saving the configuration. In VS Code, reload the window and confirm the Apify tool appears.
Example prompts:
- โFind certified FY2026 H-1B filings for data scientist roles in California.โ
- โCompare offered and prevailing wages for this employerโs software roles.โ
- โCreate a CSV-ready list of Level IV sponsor filings above $150,000.โ
Scheduling quarterly sponsor monitoring
Create an Apify Schedule with your saved Actor input.
When DOL publishes a new quarterly workbook:
- update the quarter in the scheduled task;
- run the task;
- compare
caseNumberand worksite keys with your previous export; - notify your recruiting, legal, or analytics workflow about new matches.
DOL publication timing can vary, so the Actor reports a clear error if the requested file is not yet listed.
Data quality and limitations
- The Actor returns public LCA filings, not proof that a visa was issued or a person was hired.
- An LCA can cover multiple positions.
- Offered wages do not necessarily include bonuses, equity, benefits, or actual paid compensation.
- DOL may correct, replace, or rename disclosure files.
- Historical workbook column names can vary; the Actor supports common current and legacy names.
- Very broad filters may require scanning much of a large workbook and take longer.
maxItemsstops after matching records, not after scanned rows.- No-match searches correctly produce an empty Dataset.
Privacy, legality, and responsible use
DOL publishes these disclosure records for public access. The Actor reads the official public export without bypassing authentication or technical restrictions.
Use the data lawfully. Do not infer protected characteristics, identify individual beneficiaries, make automated employment decisions, or treat an LCA as proof of immigration status. Follow applicable employment, privacy, anti-discrimination, and data-retention laws.
This Actor is not affiliated with or endorsed by the U.S. Department of Labor and does not provide legal advice.
Troubleshooting
โNo workbook was found for the selected fiscal periodโ
The DOL may not have published that quarter yet, or the historical year may use a different file layout. Choose a period listed on the DOL OFLC performance page. Advanced users can provide the exact official XLSX in sourceUrl.
The Dataset is empty
An empty Dataset means no rows matched all filters. Remove filters one at a time, check employer spelling, use a broader job-title fragment, or increase the wage range.
The run takes longer than expected
The Actor must download the complete workbook before streaming rows. Narrow filters found late in the file require more scanning. Keep maxItems proportionate to your workflow.
Why is the annualized hourly wage surprising?
Annualization uses 2,080 hours for comparability. It does not account for part-time schedules, overtime, unpaid time, or filing-specific employment duration.
FAQ
Is this an H-1B visa approval database?
No. It is an LCA disclosure search. Certification of an LCA is one part of an employment-based visa process and is not a USCIS petition or visa approval.
Does it include H-1B1 and E-3 records?
Yes. Select H-1B1 Chile, H-1B1 Singapore, or E-3 Australian in visaClasses.
Can I search several employers in one run?
employerQuery is one partial text filter. Run separate saved tasks for unrelated employers or use a shared substring for related legal names.
Can I export more than 25 records?
Yes. Increase maxItems up to 100,000. Start small to validate filters and cost.
Are results deduplicated?
Yes. Duplicate rows with the same case number and worksite city, state, and postal code are emitted once.
Where does the data come from?
Every row comes from an official DOL OFLC disclosure XLSX file and includes its sourceUrl.
Related scrapers
Combine this Actor with other Automation Lab tools:
- LinkedIn Profile Scraper for public professional profile research after you have a lawful list of targets.
- Yellow Pages Scraper for business-directory enrichment.
- MX Record Checker for validating whether organization domains can receive email.
No other Automation Lab Actor currently covers the same official DOL LCA salary dataset.
Support
If a DOL workbook changes format or a valid filter produces unexpected output, open an issue from the Actorโs Apify page.
Include:
- the fiscal year and quarter;
- the input used, with sensitive downstream details removed;
- the run URL;
- the expected and actual behavior.
That evidence makes source-format changes faster to diagnose.