DOL H-1B LCA Salary Scraper avatar

DOL H-1B LCA Salary Scraper

Pricing

Pay per event

Go to Apify Store
DOL H-1B LCA Salary Scraper

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

Stas Persiianenko

Maintained by Community

Actor 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 groupExample fields
FilingcaseNumber, caseStatus, receivedDate, decisionDate, visaClass
OccupationjobTitle, socCode, socTitle
EmployeremployerName, employerCity, employerState, employerPostalCode
WorksiteworksiteCity, worksiteState, worksitePostalCode
Offered wagewageFrom, wageTo, wageUnit, annualWageFrom, annualWageTo
Prevailing wageprevailingWage, annualPrevailingWage, prevailingWageLevel
Filing detailstotalWorkerPositions, fullTimePosition, h1bDependent, willfulViolator
ProvenancesourceUrl, fiscalYear, fiscalQuarter, scrapedAt

Optional values are omitted when the source workbook does not provide them.

How to scrape H-1B salary filings

  1. Open the Actor input page.
  2. Select a DOL fiscal year and quarter.
  3. Enter an employer, role, SOC, worksite, status, visa, or wage filter.
  4. Set maxItems to the maximum number of matching filings you need.
  5. Click Start.
  6. Open the Dataset tab when the run succeeds.
  7. 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.

InputTypeMeaning
fiscalYearintegerDOL fiscal year, from 2008 onward
quarterstringQ1, Q2, Q3, or Q4 disclosure file
employerQuerystringEmployer name contains this text
jobTitleQuerystringJob title contains this text
socCodestringExact SOC occupation code
statestringExact two-letter worksite state
citystringWorksite city contains this text
caseStatusesarrayAccepted DOL case statuses
visaClassesarrayAccepted visa classes
wageMinnumberMinimum annualized offered wage
wageMaxnumberMaximum annualized offered wage
wageLevelstringExact prevailing wage level
maxItemsintegerMaximum unique records to save
sourceUrlstringOptional official dol.gov XLSX override
{
"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 ApifyClient
client = 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().items
print(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:

  1. update the quarter in the scheduled task;
  2. run the task;
  3. compare caseNumber and worksite keys with your previous export;
  4. 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.
  • maxItems stops 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.

Combine this Actor with other Automation Lab tools:

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.