US H-1B Visa Sponsorship Data avatar

US H-1B Visa Sponsorship Data

Pricing

from $3.00 / 1,000 results

Go to Apify Store
US H-1B Visa Sponsorship Data

US H-1B Visa Sponsorship Data

Search H-1B visa sponsorship data from US Department of Labor LCA disclosures. Filter by employer, job title, state, city, and salary range. Covers fiscal years 2020-2026 with 800K+ records per year. Ideal for job seekers, recruiters, and immigration research.

Pricing

from $3.00 / 1,000 results

Rating

0.0

(0)

Developer

Ivo Sandoval

Ivo Sandoval

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

US H-1B Visa Sponsorship Data Scraper

Search H-1B visa sponsorship data from DOL OFLC LCA disclosures. Find employer sponsorship history, wages, job titles, and locations across fiscal years.

Data Source

Output Example (real data from FY2024)

{
"case_number": "I-200-24186-636144",
"case_status": "Certified",
"employer_name": "GOOGLE LLC",
"employer_city": "MOUNTAIN VIEW",
"employer_state": "CA",
"job_title": "SENIOR STAFF SOFTWARE ENGINEER",
"soc_code": "15-1252",
"soc_title": "SOFTWARE DEVELOPERS",
"wage_from": 296000.0,
"wage_to": 296000.0,
"wage_unit": "Year",
"worksite_city": "MOUNTAIN VIEW",
"worksite_state": "CA",
"visa_class": "H-1B",
"received_date": "2024-07-03",
"decision_date": "2024-07-10",
"begin_date": "2024-10-01",
"end_date": "2027-09-30",
"fiscal_year": 2024
}

Output Schema

FieldTypeDescription
case_numberstringDOL case ID (e.g. I-200-24186-636144)
case_statusstringCertified, Certified - Withdrawn, Denied, Withdrawn
employer_namestringSponsoring employer name
employer_citystringEmployer city
employer_statestringEmployer 2-letter state code
job_titlestringPosition title
soc_codestringSOC occupation code (e.g. 15-1252)
soc_titlestringSOC occupation title
wage_fromfloatBase salary (lower bound)
wage_tofloatBase salary (upper bound)
wage_unitstringYear, Month, Bi-Weekly, Week, Hour
worksite_citystringWork location city
worksite_statestringWork location 2-letter state code
visa_classstringH-1B, H-1B1, or E-3
received_datestringDate DOL received the application
decision_datestringDate DOL made the decision
begin_datestringEmployment start date
end_datestringEmployment end date
fiscal_yearintDOL fiscal year of the disclosure file

Input Parameters

ParameterTypeRequiredDescription
employer_namestringNoFilter by employer (case-insensitive partial match)
job_titlestringNoFilter by job title (case-insensitive partial match)
worksite_statestringNoFilter by 2-letter US state code (e.g. CA, NY, TX)
worksite_citystringNoFilter by worksite city (case-insensitive partial match)
min_wagenumberNoMinimum annual salary (wages auto-annualized for comparison)
max_wagenumberNoMaximum annual salary (wages auto-annualized for comparison)
visa_classstringNoH-1B (default), H-1B1, or E-3
case_statusstringNoCertified, Certified - Withdrawn, Denied, Withdrawn
fiscal_yearsint[]NoFiscal years to fetch (default: [2025])
max_resultsintegerNoMax results (default: 1,000 / max: 100,000)
database_urlstringNoPostgreSQL URL for persistence
proxy_configurationobjectNoApify proxy config

Database

  • Database name: datamon_us_h1b_visa
  • Table: lca_records
  • Upsert key: case_number
  • Batch size: 1,000 rows per INSERT (optimized for 800K+ record files)
  • Index: composite on (fiscal_year, employer_name)

Pricing (Apify Store)

  • Model: Pay-per-event (PPE)
  • Price: $3 / 1,000 results

Development

# Local runner (no Apify dependency)
cd actors/us-h1b-visa
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# Search by employer (no DB)
python runner.py --no-db --employer "GOOGLE" --fiscal-years 2024 --max-results 10
# Filter by state + salary
python runner.py --no-db --employer "GOOGLE" --worksite-state CA --min-wage 200000 --fiscal-years 2024
# Filter by job title
python runner.py --no-db --job-title "DATA SCIENTIST" --worksite-state NY --fiscal-years 2025
# Persist to PostgreSQL
DATABASE_URL="postgresql+asyncpg://user:pass@host:5432/datamon_us_h1b_visa" \
python runner.py --employer "META" --fiscal-years 2024,2025
# Apify run
apify run --purge

Technical Notes

  • Memory efficient: Uses openpyxl read_only=True to stream XLSX rows without loading the full file (~80-250 MB) into memory
  • Wage annualization: Hourly (x2080), monthly (x12), bi-weekly (x26), weekly (x52) -- applied only for filtering, raw values stored as-is
  • Column variants: DOL column names change across fiscal years -- the scraper maps 18 known header variants to canonical field names
  • URL resolution: HEAD request to resolve the correct DOL download URL before fetching (FY2020-2025 and FY2026+ use different URL patterns)

Status

  • Scraper implementation (XLSX streaming + in-memory filtering)
  • Database models + migrations
  • Input/output schemas
  • DB persistence (batch upsert, 1000/batch)
  • Local runner (runner.py)
  • Verified against live DOL data (FY2024 Q4, 79.2 MB)
  • Apify Store listing
  • Tests