SalaryBench IQ
Pricing
Pay per event
SalaryBench IQ
SalaryBench IQ turns official US Department of Labor wage disclosure filings into defensible salary benchmarks, percentile ranges, sample wage records, and employer pay intelligence.
Pricing
Pay per event
Rating
5.0
(1)
Developer
Omar Eldeeb
Maintained by CommunityActor stats
2
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
SalaryBench IQ turns official US Department of Labor wage disclosure data into defensible salary benchmarks, sample wage records, and employer pay intelligence for compensation teams, recruiters, immigration counsel, and founders. The actor reads H-1B, H-1B1, E-3, and PERM public filing files, normalizes wage units into annual USD, and returns either percentile benchmark rows or individual salary sample filings.
This is useful when you need salary ranges grounded in employer-filed wage records rather than self-reported compensation surveys.
What This Actor Does
- Computes P10, P25, median, P75, and P90 salary benchmarks for a role.
- Supports nationwide, state, city, and employer-specific salary filters.
- Returns top local buckets when no city or state is supplied, with an all-US benchmark first.
- Returns raw salary sample filings for auditability and CSV exports.
- Converts hourly, weekly, biweekly, and monthly wages into annual USD.
- Supports H-1B, H-1B1, E-3, and PERM green-card labor certification wage data.
- Discovers available DOL files at run time and uses run storage for cache-friendly downloads when available.
Data Sources
The actor uses official Department of Labor Office of Foreign Labor Certification disclosure files:
https://www.dol.gov/agencies/eta/foreign-labor/performance
H-1B, H-1B1, and E-3 records come from LCA disclosure files. PERM records come from permanent labor certification disclosure files.
Input
Which Mode Should You Use?
Use salary-samples when you need exact salary data. This mode returns individual DOL filing records with employer, job title, work location, wage offered, wage unit, decision date, and source file.
Use salary-benchmark when you need market ranges. This mode scans matching DOL source filings, groups them by location, and returns percentile rows such as P10, P25, median, P75, and P90. The actor may scan thousands or millions of source rows to calculate those percentiles, but it only writes up to maxItems benchmark rows to the dataset.
The prefilled marketplace run uses salary-samples, H-1B only, the latest available fiscal year, and a small maxItems value. That keeps first tests and Apify automated quality checks fast. Switch to salary-benchmark, add PERM, or add more fiscal years when you intentionally want deeper benchmark coverage.
Modes
| Mode | Description |
|---|---|
salary-benchmark | Aggregated salary ranges. Scans source filings first, then returns percentile rows for the requested role and location. |
salary-samples | Exact salary records. Returns individual wage filings matching the same filters. |
Filters
| Field | Description |
|---|---|
role | Required job title keyword, such as software engineer, data scientist, or registered nurse. |
employer | Optional company keyword for company-specific salary benchmarks. |
city | Optional worksite city. If set, benchmark rows are city-specific. |
state | Optional two-letter state code. If set without city, benchmark rows are state-specific. |
visaTypes | Any mix of H-1B, H-1B1, E-3, and PERM. Defaults to H-1B; add PERM when you need green-card wage data. |
decisions | Filing outcomes to include. Defaults to Approved. |
fiscalYears | US fiscal years. Leave empty for the latest available year. |
minSalary | Minimum annualized offered salary in USD. |
maxSalary | Maximum annualized offered salary in USD. |
maxItems | Maximum dataset output rows. It does not limit source rows scanned in benchmark mode. |
newFilingsOnly | For salary-samples, skip filings at or before the saved decision-date watermark. |
stateKeyValueStoreId | Optional key-value store for persistent newFilingsOnly watermarks across runs. |
Example Inputs
Nationwide Benchmark
{"mode": "salary-benchmark","role": "data scientist","visaTypes": ["H-1B"],"decisions": ["Approved"],"fiscalYears": ["2024"],"maxItems": 5}
State Benchmark
{"mode": "salary-benchmark","role": "software engineer","state": "CA","visaTypes": ["H-1B", "PERM"],"decisions": ["Approved"],"fiscalYears": ["2024"]}
Raw Salary Samples
{"mode": "salary-samples","role": "registered nurse","state": "TX","visaTypes": ["H-1B"],"decisions": ["Approved"],"fiscalYears": ["2024"],"maxItems": 25}
Output
Every dataset item includes a type field.
salary-distribution
Returned by salary-benchmark.
{"type": "salary-distribution","role": "data scientist","city": null,"state": null,"count": 6467,"p10Salary": 85540,"p25Salary": 107682,"medianSalary": 135886,"p75Salary": 168301,"p90Salary": 199234,"topEmployer": "WAL-MART ASSOCIATES, INC.","visaTypeBreakdown": { "H-1B": 6467 },"scrapedAt": "2026-05-13T00:00:00.000Z"}
When no city or state is supplied, the first row is the all-US benchmark and the remaining rows are the top local buckets by filing count.
filing
Returned by salary-samples.
{"type": "filing","caseNumber": "I-200-24267-357561","visaType": "H-1B","decision": "Approved","decisionDate": "2024-09-30","filedDate": "2024-09-23","fiscalYear": 2024,"employer": "GOOGLE LLC","jobTitle": "Software Engineer","socCode": "15-1252.00","wageOffered": 188601,"wageUnit": "year","wageOfferedRaw": 188601,"prevailingWage": 172931,"prevailingWageLevel": "II","numberOfWorkers": 1,"workCity": "Sunnyvale","workState": "CA","sourceProgram": "LCA","sourceFile": "LCA_Disclosure_Data_FY2024_Q4.xlsx","sourceUrl": "https://www.dol.gov/sites/dolgov/files/ETA/oflc/pdfs/LCA_Disclosure_Data_FY2024_Q4.xlsx","scrapedAt": "2026-05-13T00:00:00.000Z"}
Pricing
This actor is configured for pay-per-event usage in .actor/pay_per_event.json.
| Event | Price | When it is charged |
|---|---|---|
| Actor start | $0.01 | Synthetic start event charged automatically by Apify when a run starts. |
| Salary benchmark row | $0.004 | Each percentile benchmark row returned. |
| Salary sample filing | $0.003 | Each individual salary sample filing returned. |
The first 10 chargeable output events in each run are treated as a free trial inside the actor logic before Actor.charge() is called.
Notes And Limitations
- Salaries are official DOL filing wages, not total compensation. They do not include bonus, stock, or benefits.
- When DOL publishes hourly, weekly, biweekly, or monthly wages, this actor annualizes them for comparison.
- For wage ranges, the actor uses the lower offered wage field as the normalized offered salary.
- Filing volumes vary heavily by role and location. Small counts should be treated as directional, not definitive.
- Latest available data depends on when DOL publishes quarterly disclosure files.
Support
For issues or feature requests, use the actor's Apify listing or contact omar.eldeeb@remotegrowthpartners.com.