H-1B Visa Employer Intelligence
Search H-1B visa employer data by company name and get back comprehensive employer profiles combining petition approval rates from USCIS with salary, job title, and worksite data from Department of Labor LCA disclosures. One search returns everything you need to evaluate an employer's H-1B program: approval rates, denial rates, wage statistics, top job titles with salary ranges, SOC occupation codes, worksite locations, and H-1B dependent status.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| result-returned | Charged per result returned from the search/lookup. | $0.02 |
Example: 100 events = $2.00 · 1,000 events = $20.00
Documentation
Search H-1B visa employer data by company name and get back comprehensive employer profiles combining petition approval rates from USCIS with salary, job title, and worksite data from Department of Labor LCA disclosures. One search returns everything you need to evaluate an employer's H-1B program: approval rates, denial rates, wage statistics, top job titles with salary ranges, SOC occupation codes, worksite locations, and H-1B dependent status.
H-1B Visa Employer Intelligence merges two official U.S. government data sources that are normally separate and difficult to cross-reference. The USCIS H-1B Employer Data Hub provides petition approval and denial counts by employer. The DOL OFLC LCA Disclosure Data provides individual labor condition applications with job titles, wages, prevailing wages, SOC codes, and worksite locations. This actor downloads and parses both datasets (including 50-150MB XLSX files from DOL), matches records by employer name, and produces a unified profile.
What data can you extract?
| Data Point | Source | Example |
|---|---|---|
| Employer name | USCIS / DOL | GOOGLE LLC |
| Petition approvals | USCIS Data Hub | Initial: 2,450, Continuing: 3,100 |
| Petition denials | USCIS Data Hub | Initial: 12, Continuing: 5 |
| Approval rate | Computed | 99.69% |
| Average annual wage | DOL LCA | $185,000 |
| Median annual wage | DOL LCA | $178,000 |
| Wage range | DOL LCA | $95,000 - $450,000 |
| Prevailing wage | DOL LCA | $142,000 (average) |
| Top job titles | DOL LCA | Software Engineer, Product Manager, Data Scientist |
| SOC occupation codes | DOL LCA | 15-1252 (Software Developers), 15-1211 (Computer Systems Analysts) |
| Worksite locations | DOL LCA | Mountain View CA, New York NY, Seattle WA |
| H-1B dependent status | DOL LCA | Yes / No |
| NAICS industry code | USCIS / DOL | 541511 |
Why use H-1B Visa Employer Intelligence?
Researching an employer's H-1B track record currently requires downloading large CSV files from USCIS, downloading even larger XLSX files from DOL (50-150MB each), and manually cross-referencing records across datasets with inconsistent employer name formats. A single employer might appear as "GOOGLE LLC", "GOOGLE INC", and "GOOGLE" across different records.
This actor handles the entire pipeline: downloads both datasets, normalizes employer names (stripping suffixes like INC, LLC, CORP), matches records across sources, computes aggregate statistics, and outputs a clean unified profile.
Built on the Apify platform, H-1B Visa Employer Intelligence gives you:
- Scheduling -- track employer H-1B activity quarterly as new data is released
- API access -- integrate into HR analytics platforms, immigration case management tools, or salary benchmarking systems
- No infrastructure -- the actor handles downloading and parsing 50-150MB XLSX files in Apify's cloud (4GB memory allocation)
- Integrations -- connect to Google Sheets, Zapier, Make, or webhooks
Features
- Dual-source intelligence -- combines USCIS petition data with DOL LCA disclosure data for a complete picture
- Employer name normalization -- strips legal suffixes (INC, LLC, CORP, LTD, etc.) and normalizes whitespace for accurate cross-source matching
- Petition approval tracking -- initial and continuing petition approvals/denials with computed approval rate
- Wage statistics -- average, median, min, and max annual wages from certified LCA applications, plus average prevailing wage
- Top 20 job titles -- ranked by worker count with per-title wage statistics (average, min, max)
- Top 15 SOC codes -- Standard Occupational Classification codes with titles, counts, and average wages
- Top 20 worksite locations -- city/state pairs ranked by worker count
- Fiscal year selection -- search any fiscal year from FY2009 to FY2026
- DOL quarter selection -- fetch a specific quarter or all quarters of LCA data
- Search modes -- substring (contains) or exact employer name matching
- State filtering -- narrow results to employers in a specific U.S. state
- H-1B dependent and willful violator flags -- identifies employers classified as H-1B dependent or willful violators under DOL rules
Use cases for H-1B employer data
Immigration case evaluation
Immigration attorneys evaluate an employer's petition success rate before taking on a new case. A 95%+ approval rate signals a well-managed immigration program; a high denial rate may indicate filing quality issues.
Salary benchmarking
Job seekers and recruiters use wage data from LCA filings to benchmark H-1B salaries for specific job titles at specific employers. The data shows what an employer actually filed (and was certified by DOL), not self-reported salary surveys.
HR and workforce planning
Corporate HR teams track their own company's H-1B program metrics over time -- petition volumes, approval rates, and wage distributions -- to benchmark against competitors and plan headcount.
Compliance monitoring
Immigration compliance teams monitor H-1B dependent status and willful violator flags for employers in their supply chain or investment portfolio as part of due diligence.
Labor market research
Economists and policy researchers analyze H-1B filing patterns across employers, industries, and geographies to study immigration policy impacts on the labor market.
Competitive intelligence
Tech companies research competitors' H-1B programs to understand hiring patterns, salary ranges, and which job roles they are filling through visa sponsorship.
How to search H-1B employer data
- Enter an employer name -- Type a company name in the search field. The default "contains" mode matches any employer whose name includes your search term.
- Select fiscal year -- Choose the federal fiscal year (October-September) to search. Default is FY2024.
- Configure options -- Optionally filter by state, select a specific DOL quarter, or disable wage data for faster results.
- Run the actor -- Click "Start" to begin. The actor downloads USCIS CSV data and DOL XLSX data (50-150MB), parses them, matches records, and computes statistics.
- Download results -- Once finished, download your data as JSON, CSV, or Excel from the Dataset tab.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
employerName | string | Yes | -- | Company name to search for (case-insensitive). |
state | string | No | -- | Filter by U.S. state (2-letter code, e.g., CA, NY, TX). |
fiscalYear | integer | No | 2024 | Federal fiscal year to search (2009-2026). |
dolQuarter | integer | No | 4 | DOL LCA quarter to fetch (1-4, or 0 for all quarters). Q4 is the most complete. |
includeWageData | boolean | No | true | Fetch DOL LCA data for salary/job details. Large files (50-150MB) -- increases run time and memory. |
searchMode | string | No | contains | How to match employer names: contains (substring) or exact (full name match). |
maxResults | integer | No | 100 | Maximum number of employer profiles to return (1-1,000). |
Input examples
Search for a specific company:
{
"employerName": "Google",
"fiscalYear": 2024
}
Exact match with state filter:
{
"employerName": "AMAZON.COM SERVICES LLC",
"searchMode": "exact",
"state": "WA",
"fiscalYear": 2024
}
Quick search without wage data (faster):
{
"employerName": "Microsoft",
"includeWageData": false,
"fiscalYear": 2024
}
Full-year LCA data across all quarters:
{
"employerName": "Meta",
"dolQuarter": 0,
"fiscalYear": 2024,
"maxResults": 50
}
Input tips
- Use "contains" mode for discovery -- A search for "Google" will match "GOOGLE LLC", "GOOGLE CLOUD", "ALPHABET INC / GOOGLE", etc. Use "exact" mode only when you know the precise employer name in the dataset.
- Start with Q4 data -- Q4 LCA disclosures are cumulative and contain the most complete data for the fiscal year. Only fetch all quarters if you need quarterly breakdowns.
- Disable wage data for speed -- If you only need petition approval/denial rates, set
includeWageDatato false to skip downloading the large DOL XLSX files. - 4GB memory required -- The actor needs 4GB memory to parse DOL XLSX files. This is configured automatically.
Output example
Each item in the output dataset represents one employer profile:
{
"employer": "GOOGLE LLC",
"state": "CA",
"city": "MOUNTAIN VIEW",
"zip": "94043",
"naicsCode": "541511",
"fiscalYear": 2024,
"petitions": {
"initialApprovals": 2450,
"initialDenials": 12,
"continuingApprovals": 3100,
"continuingDenials": 5,
"totalPetitions": 5567,
"totalApprovals": 5550,
"totalDenials": 17,
"approvalRate": 99.69
},
"lcaData": {
"totalApplications": 4200,
"certified": 4150,
"denied": 8,
"withdrawn": 42,
"certificationRate": 98.81,
"wageStatistics": {
"avgAnnualWage": 185000,
"minAnnualWage": 95000,
"maxAnnualWage": 450000,
"medianAnnualWage": 178000,
"avgPrevailingWage": 142000
},
"topJobTitles": [
{
"title": "SOFTWARE ENGINEER",
"count": 1200,
"avgAnnualWage": 195000,
"minAnnualWage": 120000,
"maxAnnualWage": 380000
},
{
"title": "SOFTWARE DEVELOPER",
"count": 800,
"avgAnnualWage": 175000,
"minAnnualWage": 110000,
"maxAnnualWage": 350000
}
],
"topSOCCodes": [
{
"code": "15-1252",
"title": "SOFTWARE DEVELOPERS",
"count": 2800,
"avgAnnualWage": 190000
}
],
"worksiteLocations": [
{ "city": "MOUNTAIN VIEW", "state": "CA", "count": 1500 },
{ "city": "NEW YORK", "state": "NY", "count": 600 },
{ "city": "SEATTLE", "state": "WA", "count": 400 }
],
"h1bDependent": false,
"willfulViolator": false,
"totalWorkerPositions": 4800
},
"dataSources": [
"USCIS H-1B Employer Data Hub: https://www.uscis.gov/sites/default/files/document/data/h1b_datahubexport-2024.csv",
"DOL OFLC LCA Disclosure: https://www.dol.gov/sites/dolgov/files/ETA/oflc/pdfs/LCA_Disclosure_Data_FY2024_Q4.xlsx"
],
"searchedAt": "2026-03-18T14:30:00.000Z"
}
Output fields
| Field | Type | Description |
|---|---|---|
employer | string | Employer name as it appears in the source data |
state | string | Primary state (from the location with the most approvals/applications) |
city | string | Primary city |
zip | string | Primary ZIP code |
naicsCode | string | NAICS industry classification code |
fiscalYear | number | Federal fiscal year of the data |
petitions | object/null | USCIS petition data (null if no USCIS records found) |
petitions.initialApprovals | number | New H-1B petitions approved |
petitions.initialDenials | number | New H-1B petitions denied |
petitions.continuingApprovals | number | H-1B extensions/transfers approved |
petitions.continuingDenials | number | H-1B extensions/transfers denied |
petitions.totalPetitions | number | Total petitions filed |
petitions.totalApprovals | number | Total approvals (initial + continuing) |
petitions.totalDenials | number | Total denials (initial + continuing) |
petitions.approvalRate | number | Approval rate as a percentage |
lcaData | object/null | DOL LCA data (null if wage data not requested or not found) |
lcaData.totalApplications | number | Total LCA applications filed |
lcaData.certified | number | LCA applications certified by DOL |
lcaData.denied | number | LCA applications denied |
lcaData.withdrawn | number | LCA applications withdrawn |
lcaData.certificationRate | number | Certification rate as a percentage |
lcaData.wageStatistics | object | Wage stats: avgAnnualWage, minAnnualWage, maxAnnualWage, medianAnnualWage, avgPrevailingWage |
lcaData.topJobTitles | object[] | Top 20 job titles with count, avgAnnualWage, minAnnualWage, maxAnnualWage |
lcaData.topSOCCodes | object[] | Top 15 SOC codes with code, title, count, avgAnnualWage |
lcaData.worksiteLocations | object[] | Top 20 worksite city/state pairs with count |
lcaData.h1bDependent | boolean/null | Whether the employer is classified as H-1B dependent |
lcaData.willfulViolator | boolean/null | Whether the employer has been flagged as a willful violator |
lcaData.totalWorkerPositions | number | Total worker positions across all LCA applications |
dataSources | string[] | URLs of the government data sources used |
searchedAt | string | ISO timestamp of when the search was performed |
How much does it cost to search H-1B data?
H-1B Visa Employer Intelligence uses compute-based pricing. The main cost driver is memory (4GB required for DOL XLSX parsing) and run time. DOL data downloads are the largest time component.
| Scenario | Wage Data | DOL Quarters | Est. Runtime | Est. Cost |
|---|---|---|---|---|
| Quick petition check | No | -- | ~15 sec | ~$0.01 |
| Single employer (Q4) | Yes | 1 | ~2-4 min | ~$0.10 |
| Single employer (all Qs) | Yes | 4 | ~8-15 min | ~$0.40 |
| Broad search (Q4) | Yes | 1 | ~3-5 min | ~$0.15 |
Apify Free Tier: New Apify accounts receive $5 of free platform credits each month.
Search H-1B data using the API
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/h1b-visa-intelligence").call(run_input={
"employerName": "Google",
"fiscalYear": 2024,
"includeWageData": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['employer']} (FY{item['fiscalYear']})")
if item.get("petitions"):
p = item["petitions"]
print(f" Petitions: {p['totalApprovals']} approved, {p['totalDenials']} denied ({p['approvalRate']}%)")
if item.get("lcaData"):
w = item["lcaData"]["wageStatistics"]
print(f" Avg wage: ${w['avgAnnualWage']:,} | Median: ${w['medianAnnualWage']:,}")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/h1b-visa-intelligence").call({
employerName: "Google",
fiscalYear: 2024,
includeWageData: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(`${item.employer} (FY${item.fiscalYear})`);
if (item.petitions) {
console.log(` Approval rate: ${item.petitions.approvalRate}%`);
}
if (item.lcaData) {
console.log(` Avg wage: $${item.lcaData.wageStatistics.avgAnnualWage.toLocaleString()}`);
}
}
cURL
# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~h1b-visa-intelligence/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"employerName": "Google",
"fiscalYear": 2024,
"includeWageData": true
}'
# Fetch results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
How H-1B Visa Employer Intelligence works
Step 1: Fetch USCIS petition data
The actor downloads the USCIS H-1B Employer Data Hub CSV for the specified fiscal year (~1-5MB). It parses every row, filtering for employers matching the search term and optional state filter. If the requested fiscal year is not yet available, it automatically falls back to the previous year.
Step 2: Fetch DOL LCA data
If wage data is enabled, the actor downloads the DOL OFLC LCA Disclosure XLSX file for the specified quarter (50-150MB per file). It uses ExcelJS for memory-efficient streaming of the XLSX workbook, filtering rows by employer name and state during parsing. Wages are annualized from their original pay units (hourly, weekly, bi-weekly, monthly, or annual).
Step 3: Group by normalized employer name
Records from both sources are grouped by a normalized employer name. Normalization converts to uppercase, strips periods and commas, removes common legal suffixes (INC, LLC, LTD, CORP, CORPORATION, COMPANY, CO, LP, LLP, PLC, GROUP, HOLDINGS, INTERNATIONAL, INTL), and collapses whitespace. This ensures "GOOGLE LLC" and "GOOGLE INC" merge into the same profile.
Step 4: Compute statistics
For each employer group, the actor aggregates USCIS petition counts (summing across locations) and computes LCA statistics: certification rates, wage distributions (avg/median/min/max), top job titles by worker count with per-title wage ranges, top SOC codes, worksite locations, and flags for H-1B dependent and willful violator status.
Step 5: Output
Profiles are sorted by total activity (approvals + applications) descending and limited to maxResults. Each profile includes data source URLs for provenance tracking.
Limitations
- Large file downloads -- DOL LCA files are 50-150MB per quarter. The actor requires 4GB memory to parse them. Fetching all 4 quarters can take 8-15 minutes.
- Name matching is approximate -- Employer names vary across filings. The normalization strips common suffixes, but unusual name variations (abbreviations, parent vs. subsidiary names) may not merge correctly.
- First-variant wage only -- When a wage range is specified in an LCA filing, only the "from" wage is used for annualization and statistics.
- Fiscal year availability -- USCIS and DOL release data on different schedules. The most recent fiscal year may not be available from both sources simultaneously.
- No individual petition data -- USCIS data is aggregated by employer. Individual petition case details are not available through this source.
- Prevailing wage normalization -- Prevailing wages are annualized using the same unit as the offered wage if no separate unit is specified.
- DOL data is LCA filings, not actual visas -- LCA certification is a prerequisite for H-1B filing, but not all certified LCAs result in H-1B petitions or visa grants.
Integrations
- Zapier -- Trigger workflows when new employer data becomes available.
- Make -- Build automated salary benchmarking or compliance monitoring pipelines.
- Google Sheets -- Export employer profiles to Google Sheets for team analysis and reporting.
- Apify API -- Call the actor programmatically from HR platforms, immigration case management tools, or salary benchmarking services.
- Webhooks -- Get notified when a search completes.
FAQ
What is the difference between USCIS and DOL data? USCIS data shows petition outcomes (how many H-1B petitions were approved or denied). DOL data shows labor condition applications (job titles, wages, worksites) that employers must file before submitting an H-1B petition. Together they provide a complete picture of an employer's H-1B program.
How current is the data? Data availability depends on when USCIS and DOL release their annual/quarterly disclosure files. The actor automatically falls back to the previous fiscal year if the requested year is not yet available.
What does "H-1B dependent" mean? An employer is H-1B dependent if the ratio of H-1B workers to total U.S. employees exceeds certain thresholds (e.g., 15% for employers with 26-50 workers). H-1B dependent employers face additional attestation requirements when filing LCAs.
What is a "willful violator"? An employer found to have willfully violated the terms of the H-1B program by the DOL. Willful violators face additional attestation requirements and are barred from filing H-1B petitions for certain periods.
Why does the search return multiple profiles for one company? If an employer files under different name variations that don't normalize to the same key (e.g., "GOOGLE" vs "ALPHABET"), they may appear as separate profiles. Use "exact" mode with the precise name if you need to target a specific entity.
Can I compare employers across fiscal years?
Run the actor multiple times with different fiscalYear values and compare the results. Each run returns data for a single fiscal year.
Why does it take several minutes to run?
The DOL LCA disclosure files are 50-150MB XLSX files that must be downloaded and parsed row by row. This is the primary bottleneck. Disable includeWageData for a faster search that returns only USCIS petition data.
Related actors
| Actor | How to combine |
|---|---|
| Website Contact Scraper | Find contact details for HR and immigration teams at employers you are researching |
| B2B Lead Gen Suite | Build comprehensive employer profiles combining H-1B data with business intelligence |
| Website Tech Stack Detector | Identify technology stacks at employers to understand which skills drive H-1B hiring |
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom immigration data solutions, reach out through the Apify platform.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Weather Forecast Search
Get weather forecasts for any location worldwide using the free Open-Meteo API. Returns current conditions, daily and hourly forecasts with temperature, precipitation, wind, UV index, and more. No API key needed.
EUIPO EU Trademark Search
Search EU trademarks via official EUIPO database. Find registered and pending trademarks by name, Nice class, applicant, or status. Returns full trademark details and filing history.
Ready to try H-1B Visa Employer Intelligence?
Start for free on Apify. No credit card required.
Open on Apify Store