About
About XH1B
The archive in numbers
The source count comes from the registry snapshot. The other figures are published scale figures, not live counts. Also in the warehouse: 1.7M+ PERM labor certifications, 4.7M+ federal contract awards, and 2,300+ WARN to H-1B matches. The WARN table contains notices from 42 jurisdictions. Browse current records on the leaderboard and see coverage on the data sources page.
The mission
Why I built XH1B
I started developing XH1B in early July 2026 after the idea came to me in a dream. I have worked in software engineering roles for most of my life and have heard many stories about teams being replaced by tech companies.
Once the project reached the point where I could start analyzing the data, it seemed that the fraud wasn't limited to tech companies, and it didn't seem very well hidden, either.
XH1B is intended to make it easy for anyone who is interested to sift through public data. I have built over 150 programs in XH1B to ingest and process data from a variety of sources.
The public website shows data for different locations, including correlated layoffs and H-1B requests. Most of the software is a data pipeline designed to make suspicious company behavior easier to find in public records.
While the site is heavily geared toward visa program fraud now, I think it can help uncover many kinds of fraud.
I hope governments and other organizations interested in reducing fraud will work with private organizations to accelerate their programs and make them more effective. I suspect these companies will see outsized growth in the coming years.
I believe rampant fraud is one of the biggest reasons why, despite advances in technology, the average person's life is getting worse in many ways. I hope XH1B can help.
What we believe
Principles
Five rules run this site. I would rather ship less than break one.
Impartiality
We document displacement without regard to race, nationality, gender, or political affiliation. We publish the evidence as we find it, including evidence that cuts against our own reading.
See the same formula rank every employerReceipts first
Every record comes from a government disclosure file or a hashed worker document. We timestamp it, hash it, and link it to the original source. We do not alter records; the analysis layers on top carry their own labels and methods.
How each dataset is sourced and hashedModeled means modeled
The big numbers are estimates, and we say so in the same breath as the number. Every entity page ships the formula, so you can rebuild any figure yourself.
The formula, further down this pageWho gets named
Filings carry signatures, and we publish those names as filed: the employer and its officers, the LCA signatory, the attorney of record. We do not name visa workers who did not sign a filing. The workers are witnesses here, not targets.
No legal advice
We compile evidence and connect workers with attorneys. We do not practice law.
How the attorney referral worksThe sources
Where the data comes from
Every record on this site starts as a public disclosure: a federal program file, a state layoff roster, a contract award, a hospital cost report. The pipeline registry holds more than 150 sources, and each one carries its publisher, download method, legal basis, and refresh schedule.
We keep the raw files, hashed on arrival, so any number on any page can be traced to the document it came from. The sources page documents the featured datasets in depth and lists the full registry with live freshness.
Labor filings (DOL)
H-1B Labor Condition Applications (8.5 million plus), PERM labor certifications (1.7 million plus), prevailing wage determinations, and the H-2A, H-2B, and CW-1 programs. Employers file; DOL certifies.
Layoffs (WARN)
Layoff notices from 42 jurisdictions, with employer names, locations, and affected-worker counts where reported. A few states still make you ask, and the sources page says exactly which ones.
Federal money
USAspending contract awards (4.7 million plus) and SEC filings: company officers and insider transactions.
Enforcement and courts
DOL Wage and Hour enforcement actions, willful violator lists, HHS OIG exclusions, and federal court records: the paper trail of what happens when program rules break.
Wages and benchmarks
BLS occupational wages, the national baseline every offered wage on this site is measured against, plus SSA earnings tables and CDC mortality records for the downstream model.
People and places
The NPPES provider registry (9 million plus), hospital cost reports, state business registries, state and city contract records (75 million rows plus), and a Census crosswalk that puts every employer on the map.
Nothing here comes from behind a login. Where a government site hides a public file, we name it and keep trying.
The open algorithm
The method
The headline numbers are estimates. The estimate comes from an open algorithm, not a black box, and the match engine runs in four steps:
Resolve the employer
Each WARN notice and each LCA links to a resolved employer record.
Apply the date window
The matcher uses H-1B submission dates from three months before through six months after the WARN notice date. It uses the effective date when the notice date is missing. All decision outcomes and worksites can match.
Pair the notice and the filings
The engine collects every H-1B filing of the same employer inside the window.
Score the evidence
Each match gets an evidence score from 0 to 1: a base score, plus a same-state bonus, a same-county bonus, a volume bonus, and a matched-workers ratio.
From matches to the displacement estimate
Each certified filing starts from one displaced worker per certified worker request, a site model assumption. Filings offered below the BLS median wage add a multiplier equal to the gap. Workers reported on matched WARN notices (planned layoffs as reported, the only government-reported component) add their counts. The result is a modeled estimate, not a count of actual displacements, and that label follows the number everywhere it appears.
The money figures split by outcome. Gaps on certified filings appear as the certified wage gap (estimated). Gaps on denied filings are counted separately.
Research context: Salzman, Kuehn, and Lowell (2013) study STEM labor supply and IT wages. Manning (2003) studies employer market power. Borjas (2003) estimates wage responses to immigration in skill groups. These works do not validate this site’s exact base rate or wage-gap formula. The full formula appears on entity pages under “The math”.[1][2][3]
Evidence integrity
Chain of custody
Every number on this site can show its papers: the exact government file it was parsed from, unchanged since the moment it was downloaded.
Hashed on arrival
We record a SHA-256 digest when a raw file arrives. The standard defines a digest used to detect changes to file contents. Comparing a file with its recorded digest helps check integrity; a matching digest does not establish that the source’s claims are true.[4]
Every row remembers its run
Each record links to the processing run that produced it and the archived source file.
When we get it wrong
Corrections
A project this size makes mistakes. Files move, layouts change, a parser misreads a column. The corrections policy is not a page on a shelf; it is how the pipeline behaves.
Show the source
Figures link back to their records, so a mistake is checkable by anyone, including me.
Fix the parser, not the number
Corrections happen in code and data, then the fixed code re-reads the original file. Hand-edited numbers are how archives stop being evidence.
Correct in public
When an error changes a published figure, the corrected number ships for everyone at the same moment. There is no quiet edit.
How to dispute a record
Found something wrong? Send the page URL through the contact page. I read every message. If the record supports you, the fix ships, and you will hear what changed.
Under the hood
The platform
The platform brings public records together so you can search employers, filings, and related records.
The database
PostgreSQL: 285 tables, views, and materialized views; more than 300 million rows; more than 200 gigabytes. Statistics refresh as data lands, so the site reads the same numbers the agents investigate.
The pipeline
More than a hundred scheduled jobs: downloads, parsers, resolvers, aggregates, and health checks. Every write carries provenance, and a stray insert without it is a hard error, not a silent gap.
An API with no key
More than 30 read-only endpoints over employers, people, filings, geography, and the enforcement leaderboard. List endpoints paginate, selected lists sort, and an OpenAPI spec documents each endpoint.
The rule that keeps it honest: if a claim cannot be traced to a source file, it does not ship.
Support this archive
Funding
Public services like XH1B cost money to run. If you find this archive useful, please consider donating through Patreon.
References
- [1] Research · Salzman, Kuehn, and Lowell / Economic Policy Institute. Guestworkers in the high-skill U.S. labor market (2013). Executive summary; STEM supply; guestworker flows; IT employment and wage trendsThis historical study provides context on STEM supply and IT wages. It does not validate a one-to-one displacement count for each certified LCA worker request.
- [2] Research · Alan Manning / Princeton University Press. Monopsony in Motion: Imperfect Competition in Labor Markets (2003). Author overview; introductory chapter on employer market powerThis is background on labor-market power. The site chooses its wage-gap multiplier; the book is not a validation of that formula.
- [3] Research · George J. Borjas / NBER. The Labor Demand Curve is Downward Sloping (2003). Working Paper 9755; abstract and education-experience-group analysisThe study estimates wage responses to immigration in skill groups. It is not an estimate of one displaced worker per H-1B filing or request.
- [4] Guidance · NIST. Secure Hash Standard (FIPS 180-4). Abstract; section 6.2 (SHA-256)A digest detects changed bytes. It does not establish that a statement is true or identify its author.