How to Find SOC Code H1B — ONET Classification Guide

Blog Post: how to find soc code h1b - Professional illustration

What the SOC Code Actually Controls in an H-1B Petition

The Standard Occupational Classification (SOC) code is a six-digit number that tells the Department of Labor what occupation the H-1B position falls into. It appears on the Labor Condition Application (LCA), which the employer files before submitting the I-129 petition to USCIS. The code determines two things: whether the occupation qualifies as a specialty occupation under 8 CFR 214.2(h)(4)(iii)(A), and what the prevailing wage floor is for that role in that geographic area.

USCIS does not accept the employer's characterization of the job at face value. Officers compare the duties listed in the I-129 petition against the occupational definition in the O*NET database — the same database where SOC codes originate. If the duties do not align with the code's definition, or if the code itself does not describe work requiring a bachelor's degree in a specific field, the petition is vulnerable. Most denials rooted in the specialty occupation standard trace back to a mismatch at this step.

The SOC code also sets the prevailing wage. The Department of Labor publishes wage data by SOC code and geographic area. If the LCA lists a wage below the prevailing rate for that code, the LCA is invalid, and so is the I-129 petition built on it. Selecting the wrong code can either inflate the wage requirement beyond what the employer budgeted, or — more commonly — trigger a later finding that the actual wage offered does not meet the statutory floor.

Here's the Honest Answer: The Title Is Not the Test

Employers often choose an SOC code by matching the job title to a code with a similar-sounding name. That approach fails more often than it succeeds. O*NET assigns codes based on what workers in that occupation actually do day-to-day, not what their business cards say. A "Marketing Manager" whose primary duties involve graphic design work maps to a design code, not a management code. A "Data Analyst" who spends most of the workday writing code maps to a software developer code, not an analyst code.

The controlling document is the O*NET occupation description, which lists tasks, tools, technologies, knowledge areas, and education requirements. If the H-1B petition describes duties that do not appear in that occupation's task list, USCIS will question whether the petitioner selected the code accurately — and whether the position is really what the LCA claimed it was.

The Step-by-Step Lookup Process

Start with the Employer's Honest Duty List

Before touching O*NET, write out what the position actually requires the employee to do, in order of time spent. Not aspirational duties, not duties borrowed from a template job description — the work this specific H-1B beneficiary will perform in this specific role. Be granular: "Develop machine learning models using Python and TensorFlow" is useful; "perform data analysis" is not.

This list is the anchor. Every other step in the process tests whether a given SOC code accurately describes this list.

Search O*NET by Keyword, Not by Job Title

Go to onetonline.org and use the keyword search. Enter the most technical or specialized task from the duty list — the one that defines what makes this job distinct. If the position involves designing cloud infrastructure, search "cloud architecture." If it involves regulatory compliance analysis, search "regulatory compliance." The search returns occupation codes whose task lists contain that keyword.

Do not search the job title unless the title is itself a technical term. Searching "analyst" returns dozens of codes; searching "statistical modeling" narrows to the codes where that work is central.

Read the Full Occupation Profile for Every Candidate Code

For each code the search returns, open the full O*NET profile. Read these sections in order:

  1. Tasks — Does this list describe what the H-1B employee will actually do? At least 60–70% of the duties in the petition should appear in some form in this task list. If the fit is poor, the code is wrong.
  2. Tools and Technology — Does the profile list the software, systems, or platforms the position requires? Specificity here strengthens the petition. If the position uses Salesforce and the code's technology list mentions CRM platforms, that is alignment. If the position uses CAD software and the code mentions only spreadsheets, that is misalignment.
  3. Knowledge — What subject-matter expertise does O*NET say this occupation requires? The knowledge areas should match the beneficiary's degree field. A code requiring knowledge of mechanical engineering principles supports a petition for a mechanical engineer; it does not support a petition for someone with a business degree.
  4. Education — O*NET rates how much formal education incumbents in this occupation typically have. Codes where the median worker has a bachelor's degree or higher support the specialty occupation argument. Codes where most workers have only a high school diploma do not, even if the specific employer is requiring a degree for this particular opening.

Compare Multiple Codes When the Fit Is Close

If two codes both seem plausible, compare them side-by-side. The better code is the one where:

  • More of the petition's duties appear in the task list
  • The required knowledge areas match the beneficiary's degree field more closely
  • The education level is higher (a code requiring a bachelor's outweighs a code where a bachelor's is optional)
  • The prevailing wage reflects what the employer is actually offering (if one code's wage floor is $30,000 above the offered salary, that code may be technically accurate but practically unusable)

Document why you selected the code you did. If USCIS issues an RFE questioning the code choice, the response needs to explain the reasoning, and that explanation is stronger when it references the specific O*NET elements that drove the decision.

Verify the Prevailing Wage Before Finalizing

Once you have identified the SOC code, check the prevailing wage for that code in the beneficiary's work location using the Department of Labor's Foreign Labor Application Gateway (FLAG) system at flag.dol.gov. The LCA cannot be certified if the offered wage is below the prevailing wage for that SOC code in that area. If the wage floor is unworkable, the petition may require a different code — or a higher salary.

As of 2026, the Department of Labor publishes prevailing wage data by SOC code and geographic area through the FLAG Online Wage Library. Wage levels change periodically, so confirm the current rate at the time of filing rather than relying on past data.

Comparison of Common H-1B SOC Code Categories

Occupation Category Example SOC Code Degree Requirement in O*NET Common Petition Mistake Prevailing Wage Tendency
Software Developers 15-1252 Bachelor's in CS or related field Listing generic "coding" duties instead of specific development tasks Higher in major metro areas
Computer Systems Analysts 15-1211 Bachelor's in CS, IT, or related Confusing analysis work with development work; duties often overlap but codes differ Moderate; varies by specialization
Market Research Analysts 13-1161 Bachelor's in marketing, business, or stats Using this code for roles that are really data science (which maps to 15-2051 Data Scientists) Lower than software/engineering codes
Accountants and Auditors 13-2011 Bachelor's in accounting Failing to distinguish between bookkeeping (which does not require a degree) and CPA-level work Moderate; CPA credential increases wage
Mechanical Engineers 17-2141 Bachelor's in mechanical engineering Using a generic engineering code when the work is mechanical-specific; USCIS expects precision Higher; engineering codes generally strong
Management Analysts 13-1111 Bachelor's in business or related Overusing this code for roles that are really operational rather than strategic consulting Wide range depending on industry

What If the Petition Uses the Wrong SOC Code?

If the LCA has already been certified with an incorrect SOC code, filing the I-129 based on that LCA carries the mismatch forward. USCIS may issue an RFE pointing out that the duties in the petition do not align with the O*NET description for the code on the LCA. At that point, the options are limited: the petitioner can argue that the code was in fact correct and that the duties do align, or the petitioner can withdraw the petition, obtain a new LCA with the correct code, and refile.

Refiling costs time. The new LCA must go through the Department of Labor's certification process, which requires posting notice to workers and waiting through the mandatory notice period. The new I-129 starts the USCIS adjudication clock over from the beginning. If the beneficiary's status expires before the new petition is approved, maintaining lawful status becomes the immediate problem.

Prevention is the only practical solution. Verify the SOC code before the LCA is filed, when changing it costs nothing.

What If O*NET Does Not List the Specific Technology the Job Uses?

ONET profiles are broad by design. A code for software developers will list categories of technologies — "database management software," "development environment software" — but it will not name every framework or platform in use in 2026. The absence of a specific tool from the ONET list does not disqualify the code, as long as the tool fits within a category O*NET does list.

The I-129 petition is where specificity matters. The petition should name the exact technologies, and the cover letter should explain how those technologies fit within the broader occupational profile. If the code lists "object-oriented programming languages" and the position uses Python, state that Python is an object-oriented language and that the duties align with the code's description of software development work.

What If the Beneficiary's Degree Field Does Not Match the SOC Code's Knowledge Areas?

This is a specialty occupation problem, not just an SOC code problem. The H-1B statute requires that the position normally require a bachelor's degree in a specific field. If the SOC code describes an occupation requiring knowledge of electrical engineering, and the beneficiary has a degree in business administration, the petition is weak regardless of what code was selected.

Some petitions succeed despite a degree mismatch by demonstrating that the beneficiary has equivalent experience or training in the required field. That showing is made in the I-129 petition itself, often with an expert evaluation letter translating work experience into academic equivalency. But the SOC code cannot fix a foundational mismatch between what the job requires and what the beneficiary studied. The code can only describe the occupation accurately; it cannot make a non-specialty position into a specialty one.

Why the SOC Code Appears in Multiple H-1B Documents

The same SOC code appears on the LCA (filed with the Department of Labor), in the I-129 petition (filed with USCIS), and in the Public Access File the employer must maintain. These are not independent selections. The LCA dictates what code the petition must use. If the employer later realizes the LCA used the wrong code, the petition cannot simply override it — the LCA must be amended or withdrawn, which restarts the process.

The Public Access File must contain documentation supporting the wage determination, which means it must show how the employer arrived at the prevailing wage for the SOC code on the LCA. If the file does not contain that documentation, the LCA is non-compliant, and USCIS can deny the petition on that basis even if the petition itself is otherwise approvable.

The Role of the Prevailing Wage Determination in Code Selection

The Department of Labor determines the prevailing wage by SOC code, geographic area, and skill level (Level I through Level IV, with Level I representing entry-level work and Level IV representing highly specialized or supervisory work). The employer selects the skill level based on the position's requirements, but the SOC code itself is not negotiable once the facts are known. The prevailing wage is what it is.

Some petitioners try to select a lower-wage SOC code to reduce costs. That strategy backfires when USCIS or the Department of Labor determines that the actual duties require a different code. The penalty for an inaccurate LCA is denial of the petition and potential debarment from filing future LCAs. The risk is not worth the short-term savings.

When to Seek Legal Guidance on SOC Code Selection

If the position is highly specialized, crosses multiple disciplines, or does not map cleanly to any single ONET occupation, consult an immigration attorney before filing the LCA. The Law Offices of Peter D. Chu has handled H-1B petitions across industries where SOC code selection required detailed analysis of hybrid roles — positions combining engineering and business functions, or roles in emerging fields not yet well-represented in the ONET taxonomy. That analysis happens before the LCA is filed, not after USCIS questions it.

The initial consultation fee is $250. The consultation reviews the position's duties, identifies the most defensible SOC code, and assesses whether the petition as structured is likely to satisfy the specialty occupation standard. That assessment is specific to the individual case, not general information.


Disclaimer: This article provides general information about the process of identifying an SOC code for an H-1B petition. It is not legal advice and does not create an attorney-client relationship. Immigration law and Department of Labor wage determinations depend on the specific facts of each case. Consult a licensed immigration attorney before filing an LCA or I-129 petition. Outcomes are not guaranteed and depend on individual circumstances, USCIS adjudication standards, and current regulations.

Schedule a consultation with the Law Offices of Peter D. Chu — 4615 Convoy St, San Diego, CA 92111 · 858-268-8823 · Mon–Fri, 8:30 AM–5:30 PM. Consultation fee: $250.

Frequently Asked Questions

What is an SOC code and why does it matter for H-1B petitions? ▼

An SOC code is a six-digit Standard Occupational Classification code assigned by the Department of Labor to categorize occupations. It determines whether the H-1B position qualifies as a specialty occupation and sets the prevailing wage floor the employer must meet. USCIS compares the petition's duties against the O*NET definition for the code listed on the LCA, so an inaccurate code can result in an RFE or denial.

Can I use the job title to pick the SOC code? ▼

No. ONET assigns codes based on the actual duties performed, not the job title. A position titled 'Marketing Manager' whose duties involve graphic design maps to a design code, not a management code. Always start with the specific tasks the employee will perform and match those to the ONET occupation profile's task list.

What happens if the LCA lists the wrong SOC code? ▼

If USCIS determines the SOC code on the LCA does not match the duties in the I-129 petition, the agency may issue an RFE or deny the petition. Correcting the error requires withdrawing the petition, obtaining a new LCA with the correct code, and refiling — a process that costs time and may create status gaps if the beneficiary's current authorization expires during the delay.

Where do I find the prevailing wage for a specific SOC code? ▼

The Department of Labor publishes prevailing wage data by SOC code and geographic area through the Foreign Labor Application Gateway (FLAG) at flag.dol.gov. As of 2026, the Online Wage Library provides current wage levels; confirm the rate at the time of filing, as wage data is updated periodically and varies by location and skill level.

What if the O*NET profile does not list the exact software or tools the job uses? ▼

O*NET lists categories of technologies rather than every specific platform. If the position uses a tool that fits within a listed category — for example, Python as an object-oriented programming language under a software development code — the code can still be appropriate. The I-129 petition should name the specific tools and explain how they align with the broader occupational description.

Does the SOC code have to match the beneficiary's degree field exactly? ▼

The SOC code should describe an occupation requiring knowledge in the beneficiary's field of study, but exact terminology does not always align. What matters is whether the position normally requires a bachelor's degree in a specific specialty, and whether the beneficiary's education and experience satisfy that requirement. A mismatch between the degree and the occupation's knowledge areas weakens the specialty occupation argument regardless of code selection.

Can the employer change the SOC code after the LCA is certified? ▼

No. The SOC code on the certified LCA controls what code the I-129 petition must use. If the employer discovers the code is incorrect after certification, the LCA must be withdrawn or amended, and a new LCA must be filed and certified before submitting the petition. The I-129 cannot override the LCA's code.

How do I know if a position qualifies as a specialty occupation based on the SOC code? ▼

Check the O*NET profile's education section. Codes where the typical worker holds a bachelor's degree or higher support the specialty occupation standard. Codes where most workers have less education require stronger evidence that this particular position is an exception. The occupation must normally require a degree in a specific field — not just any degree — to meet the regulatory test at 8 CFR 214.2(h)(4)(iii)(A).

Back to blog