OTHERAI

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.

Try on Apify Store
$0.02per event
0
Users (30d)
0
Runs (30d)
90
Actively maintained
Maintenance Pulse
$0.02
Per event

Maintenance Pulse

90/100
Last Build
Today
Last Version
1d ago
Builds (30d)
8
Issue Response
N/A

Cost Estimate

How many results do you need?

result-returneds
Estimated cost:$2.00

Pricing

Pay Per Event model. You only pay for what you use.

EventDescriptionPrice
result-returnedCharged 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 PointSourceExample
Employer nameUSCIS / DOLGOOGLE LLC
Petition approvalsUSCIS Data HubInitial: 2,450, Continuing: 3,100
Petition denialsUSCIS Data HubInitial: 12, Continuing: 5
Approval rateComputed99.69%
Average annual wageDOL LCA$185,000
Median annual wageDOL LCA$178,000
Wage rangeDOL LCA$95,000 - $450,000
Prevailing wageDOL LCA$142,000 (average)
Top job titlesDOL LCASoftware Engineer, Product Manager, Data Scientist
SOC occupation codesDOL LCA15-1252 (Software Developers), 15-1211 (Computer Systems Analysts)
Worksite locationsDOL LCAMountain View CA, New York NY, Seattle WA
H-1B dependent statusDOL LCAYes / No
NAICS industry codeUSCIS / DOL541511

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

  1. 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.
  2. Select fiscal year -- Choose the federal fiscal year (October-September) to search. Default is FY2024.
  3. Configure options -- Optionally filter by state, select a specific DOL quarter, or disable wage data for faster results.
  4. 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.
  5. Download results -- Once finished, download your data as JSON, CSV, or Excel from the Dataset tab.

Input parameters

ParameterTypeRequiredDefaultDescription
employerNamestringYes--Company name to search for (case-insensitive).
statestringNo--Filter by U.S. state (2-letter code, e.g., CA, NY, TX).
fiscalYearintegerNo2024Federal fiscal year to search (2009-2026).
dolQuarterintegerNo4DOL LCA quarter to fetch (1-4, or 0 for all quarters). Q4 is the most complete.
includeWageDatabooleanNotrueFetch DOL LCA data for salary/job details. Large files (50-150MB) -- increases run time and memory.
searchModestringNocontainsHow to match employer names: contains (substring) or exact (full name match).
maxResultsintegerNo100Maximum 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 includeWageData to 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

FieldTypeDescription
employerstringEmployer name as it appears in the source data
statestringPrimary state (from the location with the most approvals/applications)
citystringPrimary city
zipstringPrimary ZIP code
naicsCodestringNAICS industry classification code
fiscalYearnumberFederal fiscal year of the data
petitionsobject/nullUSCIS petition data (null if no USCIS records found)
petitions.initialApprovalsnumberNew H-1B petitions approved
petitions.initialDenialsnumberNew H-1B petitions denied
petitions.continuingApprovalsnumberH-1B extensions/transfers approved
petitions.continuingDenialsnumberH-1B extensions/transfers denied
petitions.totalPetitionsnumberTotal petitions filed
petitions.totalApprovalsnumberTotal approvals (initial + continuing)
petitions.totalDenialsnumberTotal denials (initial + continuing)
petitions.approvalRatenumberApproval rate as a percentage
lcaDataobject/nullDOL LCA data (null if wage data not requested or not found)
lcaData.totalApplicationsnumberTotal LCA applications filed
lcaData.certifiednumberLCA applications certified by DOL
lcaData.deniednumberLCA applications denied
lcaData.withdrawnnumberLCA applications withdrawn
lcaData.certificationRatenumberCertification rate as a percentage
lcaData.wageStatisticsobjectWage stats: avgAnnualWage, minAnnualWage, maxAnnualWage, medianAnnualWage, avgPrevailingWage
lcaData.topJobTitlesobject[]Top 20 job titles with count, avgAnnualWage, minAnnualWage, maxAnnualWage
lcaData.topSOCCodesobject[]Top 15 SOC codes with code, title, count, avgAnnualWage
lcaData.worksiteLocationsobject[]Top 20 worksite city/state pairs with count
lcaData.h1bDependentboolean/nullWhether the employer is classified as H-1B dependent
lcaData.willfulViolatorboolean/nullWhether the employer has been flagged as a willful violator
lcaData.totalWorkerPositionsnumberTotal worker positions across all LCA applications
dataSourcesstring[]URLs of the government data sources used
searchedAtstringISO 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.

ScenarioWage DataDOL QuartersEst. RuntimeEst. Cost
Quick petition checkNo--~15 sec~$0.01
Single employer (Q4)Yes1~2-4 min~$0.10
Single employer (all Qs)Yes4~8-15 min~$0.40
Broad search (Q4)Yes1~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

ActorHow to combine
Website Contact ScraperFind contact details for HR and immigration teams at employers you are researching
B2B Lead Gen SuiteBuild comprehensive employer profiles combining H-1B data with business intelligence
Website Tech Stack DetectorIdentify 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

01

Configure

Set your parameters in the Apify Console or pass them via API.

02

Run

Click Start, trigger via API, webhook, or set up a schedule.

03

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.

Ready to try H-1B Visa Employer Intelligence?

Start for free on Apify. No credit card required.

Open on Apify Store