H-1B Sponsor

io.github.janishkumar由 GitHub 帳號 janishkumar 發布v0.1.1更新於 Nov 5, 2026

Is this company still sponsoring H-1Bs and green cards? Trends from DOL and USCIS filings.

概覽

AI 產生的概覽

根據美國勞工部與 USCIS 的公開申報資料,用表格回答某雇主是否仍在為 H-1B 簽證與綠卡提供擔保。

可以做什麼
  • 查詢單一雇主的擔保情況:近期與去年同期相比的已認證 H-1B LCA、新聘與轉聘之分、PERM 綠卡認證、USCIS 核准數與拒件率標記,以及「是否仍在擔保」的結論
  • 並排比較多家雇主的申報量、趨勢、綠卡與拒件率,可依職務、州或城市篩選
  • 依職務與地點,在指定回溯期間內排出擔保件數最多的雇主
  • 查詢某職務在過去 12 個月的 H-1B 薪資百分位與經驗等級,可限定州、城市或雇主
  • 把公司名稱解析為各自申報的法定雇主實體
  • 說明答案所依據的資料來源、涵蓋日期與注意事項
適用情境
適合需要簽證擔保的求職者或顧問,用來判斷哪些美國雇主確實在申報 H-1B 與綠卡、比較候選公司名單,或在投遞前了解某職務在某地的典型薪資。
執行需求
透過 uvx 從 PyPI 套件以 stdio 在本機執行,需先安裝 uv。首次執行會下載約 61 MB 的壓縮資料庫並快取,之後完全在本機離線使用。未宣告需要帳號、API 金鑰或環境變數。
安裝前請注意
結果來自公開申報資料,不構成法律建議,也無法確認某個團隊是否會為某個職務擔保。LCA 件數只是擔保活動的上限,資料比政府發布落後約 1.5 至 5 個月,且 USCIS 不公布職務,拒件率是公司整體的口徑。名稱比對採前綴方式,可能混入無關公司,請核對列出的實體。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 H-1B Sponsor,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

h1b-sponsor-mcp

[CI]

Ask Claude "is this company still sponsoring H-1Bs?" and get a straight answer in tables, built from 1.28 million public government filings plus USCIS approval records.

An MCP server for job seekers who'll need visa sponsorship. It combines all three public sponsorship signals for each employer, shows how they've moved over the last six months against the same months a year earlier, and runs locally on a database that updates each quarter.

You:     Compare Microsoft, Amazon, Google, Meta, Apple, Nvidia and TCS for data scientist sponsorship.Claude:  (calls compare_companies)
CompanyLCAs Jan–Jun 2026of which new employmentvs a year earlierPERM certified, last 12 moUSCIS new-employment approvals FY2025USCIS denial rate FY2025–FY2026 to Q3Still sponsoring?
Microsoft Corporation351152-15%1471,394🟢 2.6%🟢 Yes, active
Amazon.com Services LLC616334+32%14,637🟢 1.3%🟢 Yes, active
Google LLC240150+8%01,042🟢 1.2%🟢 Yes, active
Meta Platforms, Inc386210+2%91,554🟢 1.3%🟢 Yes, active
Apple Inc.13767+69%3827🟢 1.1%🟢 Yes, active
NVIDIA Corporation70+75%8560🟢 0.7%🟢 Yes, active
TATA CONSULTANCY SERVICES LIMITED10—0846🟡 6.1% Elevated🟡 Occasional

Real output, data through Jun 30, 2026. LCA and PERM columns are filtered to data-scientist roles; the USCIS columns are company-wide.

That one table answers three questions most sponsorship sites can't. Is the company still filing this year, and in which direction? And will it take you through to a green card? Amazon and Google are filing plenty of H-1Bs for data scientists, but certified almost no green-card (PERM) cases for them in the last 12 months. And how often does USCIS turn this employer down? TCS's 6.1% denial rate is more than twice the national 2.5%, so it's flagged.

What it can answer

ToolExample question
company_sponsorship"Is Stripe still sponsoring? Just data roles in New York."
compare_companies"Compare Databricks, Snowflake and Stripe."
top_sponsors"Who sponsors machine learning engineers in Georgia?"
salary_range"What do H-1B data scientists get offered in Atlanta, by level?"
find_employer"Which Deloitte entities file separately?"
data_info"What data is this based on, and how current is it?"

Every answer is a markdown table that names its date window ("Jan–Jun 2026", never just "last 6 months") and says what the numbers do and don't mean.

Every verdict and flag starts with a signal, so a table reads at a glance: 🟢 good · 🟡 caution · 🔴 warning · ⚪ not enough data. The word after the signal says the same thing, for anyone reading without emoji.

Install

You need uv. The package is on PyPI. The first run downloads the database (about 61 MB compressed) and caches it; after that everything is local and offline.

Claude Desktop: add to claude_desktop_config.json:

json
{  "mcpServers": {    "h1b-sponsor": {      "command": "uvx",      "args": ["h1b-sponsor-mcp"]    }  }}

Claude Code:

bash
claude mcp add h1b-sponsor -- uvx h1b-sponsor-mcp

Any other MCP client works the same way: run uvx h1b-sponsor-mcp over stdio. To run the newest code from GitHub instead of the PyPI release, use uvx --from git+https://github.com/janishkumar/h1b-sponsor-mcp h1b-sponsor-mcp.

Where the numbers come from

SignalSourceWhat it tells youCoverage
H-1B LCAsDOL Labor Condition Application disclosuresThe freshest signal: an employer is preparing H-1B petitions. Split into new employment (e.g. from F-1/OPT) and transfers from other employers.Decisions Oct 2024 – Jun 2026 (1.02M filings)
Green cardsDOL PERM disclosuresWhether the company sponsors permanent residenceDecisions Oct 2024 – Jun 2026 (259K cases)
Confirmed petitionsUSCIS H-1B Employer Data HubApprovals and denials by petition type, per fiscal yearFY2023 – FY2026 Q3

How current is it? DOL publishes each quarter about 5–6 weeks after it ends, so the data is between 1.5 and 5 months old at any time. Every H-1B site uses these same files, so none can be fresher. Windows are anchored on the newest decision in the data, not today, so "last 6 months" is always a fully covered window.

What an LCA is not. An LCA is a filing an employer makes before an H-1B petition. It covers new hires, renewals and transfers, and some never become petitions. Treat LCA counts as an upper bound on sponsorship activity. The USCIS columns are the confirmed side.

Denial-rate flags. Each employer's USCIS denial rate over the last full fiscal year plus the current one is compared with the national rate over the same years (2.5% for FY2025–FY2026 Q3):

FlagRuleWhere that sits
🔴 High3× national or more (7.6%+)5.5% of the 5,159 employers with 20+ decisions
🟡 Elevated2× national or more (5.1%+)a further 3.1%
🟢 Normalbelow 2×the median employer is 1.6%

Both flags need at least 20 decisions and 3 denials, so a single denial at a small firm doesn't produce a scary flag. New-employment petitions (the F-1/OPT → H-1B route) get their own rate in company_sponsorship. USCIS doesn't publish job titles, so denial rates are company-wide even when you filter by role.

"Still sponsoring?" is a rule, not a model. It looks at certified LCAs in the last 6 months against the same months a year earlier:

VerdictRule
🟢 Yes, active5+ filings, and not down by half or more
🟡 Slowing sharply (−x%)at least 10 filings a year earlier, and down 50% or more
🟡 Occasional1–4 filings
🔴 No filings in last 6 monthsnone in 6 months, some in the last 12
🔴 No recent sponsorshipnone in 12 months

How it's built

mermaid
flowchart LR    A[DOL LCA xlsx<br/>5 files, 1 GB] --> C[Standardise<br/>de-duplicate by case number<br/>drop contact details]    B[DOL PERM xlsx] --> C    U[USCIS crosstab<br/>UTF-16 export] --> C    C --> E[Employer resolution<br/>names + federal tax IDs]    E --> D[(sponsors.duckdb<br/>111 MB)]    D -->|gzip, GitHub release| R[Release asset]    R -->|downloaded once,<br/>update check daily| S[MCP server<br/>stdio, read-only]
  • Employer names are messy. Names that file under a shared federal tax ID are merged: "Amazon.com Services LLC", "AMAZON.COM SERVICES LLC", "Amazon Web Services, Inc." and "Amazon Development Center U.S., Inc." count as one employer. Two guards stop bad merges. A tax ID shared by more than 12 names is almost always a payroll provider, so it's ignored. And a name only joins a tax ID's cluster if its first word matches the main filer's. 1.28M filings resolve to 156,896 employers.
  • Search matches whole leading words. "Amazon" finds Amazon.com Services, Amazon Web Services and Amazon Data Services, and lists them, so you can see exactly what was counted. If a name catches something unrelated ("Apple" also matches Apple Tree Dental), find_employer gives you the exact name to pass instead.
  • No personal data ships. The source files include employer contact names, emails and phone numbers, plus attorneys and preparers. The build drops all of it, and a test checks that the published database contains none of those columns.
  • Lean runtime. The server installs only mcp, duckdb and platformdirs. Answers take under a second.

What didn't work (and what replaced it)

  • Tax IDs alone over-merge. The first build merged everything that ever shared a tax ID, and "Amazon" came back with TechCorp Solutions Inc. in it: a small firm whose 21 filings list one of Amazon's tax IDs, almost certainly a keying error. A name now joins a tax ID's cluster only if its first word matches the main filer's. A regression test covers it.
  • "Last 6 months" was off by a day. Subtracting six months from June 30 lands on December 30, so the first window read "Dec 2025–Jun 2026". Windows are now whole calendar months (Jan–Jun 2026 vs Jan–Jun 2025), with tests for month-end and mid-month anchors.
  • Prefix search catches neighbours. "Apple" also matches Apple Tree Dental. Fuzzy brand matching would hide that rather than fix it, so every answer lists the entities it counted, and find_employer gives you the exact name to narrow it.
  • The government sites block scripts. The plan was a scheduled GitHub Action that refreshed the data every quarter. DOL and USCIS both return 403 to automated downloads, and DOL's official data API (45 datasets) doesn't carry LCA or PERM. So the download stays a two-minute browser step, and everything around it is automated: a watcher that says when and what to download, a gated make refresh, and a weekly health check of the published release.

Compared with other H-1B MCP servers

I checked what already existed before building this. As of October 2026:

This serverh1b-job-search-mcph1b-mcpHosted connectors (Pipeworx, MCPBundles)
LCA filings✅ 21 months✅ one quarter at a timevia H1BGrader✅
USCIS approvals and denials✅ by petition type———
Green-card (PERM) filings✅———
Trend vs. a year earlier✅———
Employer names merged via tax ID✅———
Runs locally and offline✅downloads raw files on demandscrapes a third-party sitehosted

Keeping the data fresh

DOL publishes a new quarter about six weeks after it ends. DOL and USCIS refuse scripted downloads, and DOL's data API doesn't include these datasets, so one step stays human: about two minutes in a browser each quarter. Everything else is automated:

mermaid
flowchart LR    W[Watcher<br/>1st and 15th of release months] -->|new data found| N[Notification with<br/>exact files to get]    N --> H[You: download 2-3 files<br/>into ~/Downloads]    H --> R[make refresh]    R --> C[collect, retire old years]    C --> B[rebuild]    B --> G{quality gates}    G -->|fail| X[stop, nothing published]    G -->|pass| D[before/after diff, confirm]    D --> P[GitHub release]    P --> U[users' servers update within a day]    P --> HC[weekly health check in CI]
PieceWhat it does
Watcher (scheduled task)Twice a month in release months, reads the DOL and USCIS pages in a browser and compares them with the published release. Says exactly which files to download, or that nothing's new.
make refreshMoves recognised files from ~/Downloads into data/raw/ (archiving anything replaced, and handling DOL's "Dislclosure" filename typo), keeps the latest three fiscal years, rebuilds, runs the gates, prints a before/after diff, and publishes only after you confirm. make refresh-check stops after the gates.
Quality gatesThe data must move forward. Filings in the period both builds cover must change by less than 2% (a bigger drop means a file went missing). Employer count stays plausible, Microsoft, Amazon and Google are all present, nothing has columns that look like contact details, filings resolve to employers, and all six tools answer.
Weekly health check (data-health.yml)Downloads the published release the way users do and runs the same checks, plus a staleness check (fails if the data is more than 200 days old). A failure emails the maintainer.

Manual steps, if you'd rather not wait for the watcher:

  1. From the DOL performance data page, download the newest LCA_Disclosure_Data_FY… and PERM_Disclosure_Data_FY… files.
  2. From the USCIS H-1B Employer Data Hub, use Crosstab View → the last four fiscal years → Download → CSV.
  3. Run make refresh and enter the USCIS quarter when asked (e.g. FY2026 Q4).

Development

bash
make setup && make test

61 tests run on a synthetic fixture with one planted example of each case: a company that's slowing, one that's steady, one that's stopped, a payroll-provider tax ID, a duplicate case number, a non-H-1B visa class, and a contact-email column that must not survive the build. They also start the real server over stdio and call it as an MCP client would, and they run the refresh pipeline end to end with the gates both passing and failing. CI runs on Python 3.11–3.13, checks that the wheel installs without the build extras, and runs a dependency audit and secret scan.

Code and data are released separately. Data releases are GitHub releases tagged data-YYYY-MM-DD, and the server downloads the newest one. Code releases are version tags: bump the version in pyproject.toml and server.json, then push a tag like v0.1.1, and release.yml publishes to PyPI and the MCP registry through trusted publishing, with no stored tokens.

Not legal advice

This is public filing data. It can't tell you whether a particular team will sponsor a particular role, and policies change. Ask the employer.

來源:README.md,提交 b42977b

工具

6

company_sponsorship

Is a company still sponsoring H-1Bs, and how much? Returns trend tables. Shows certified H-1B LCA filings for the last 6 months, the fiscal year so far and the last full fiscal year (each vs the same period a year earlier), split into new employment and transfers; green-card (PERM) certifications; USCIS petition approvals/denials by fiscal year; and a denial-rate flag (Normal / Elevated / High) relative to the national rate. Point out a High or Elevated flag to the user. Args: company: Employer name as people say it, e.g. "Microsoft", "Amazon", "JPMorgan". role: Optional job filter, e.g. "data scientist", "machine learning", "software engineer". Matches job title and occupation title. state: Optional two-letter worksite state, e.g. "GA". city: Optional worksite city, e.g. "Atlanta".

輸入參數cityrolestatecompany必填

compare_companies

Compare employers side by side: filings, trend, green cards, denial-rate flag, verdict. Args: companies: Two or more employer names, e.g. ["Stripe", "Databricks", "Snowflake"]. role: Optional job filter, e.g. "data scientist". state: Optional two-letter worksite state. city: Optional worksite city.

輸入參數cityrolestatecompanies必填

top_sponsors

Rank employers by certified H-1B filings (with denial-rate flags), for a role and place. Args: role: Optional job filter, e.g. "data scientist", "data engineer". state: Optional two-letter worksite state, e.g. "GA". city: Optional worksite city, e.g. "Atlanta". months: Look-back window in whole months ending at the latest data (1-21). limit: Number of employers to return (max 100).

輸入參數cityrolelimitstatemonths

salary_range

Offered H-1B wages for a role (percentiles and by experience level), last 12 months. Args: role: Job, e.g. "data scientist", "software engineer". state: Optional two-letter worksite state. city: Optional worksite city. company: Optional employer to restrict to.

輸入參數cityrole必填statecompany

find_employer

List the legal employer entities a name matches, so you can pick an exact one. Args: query: Start of the employer name, e.g. "Deloitte" or "Amazon Web Services".

輸入參數query必填

data_info

Which data the answers come from, the dates covered, and the caveats.

無需輸入參數。

版本歷史

2
  1. v0.1.1最新Nov 5, 2026
  2. v0.1.0Oct 29, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分