VETS-4212 Federal Contractor Veteran Hiring
VETS-4212 federal contractor veteran hiring data lets you search, filter, and score every company required by law to report under VEVRAA — in seconds. This actor queries the DOL Open Data Portal's `VETS/4212` dataset, applies VEVRAA compliance scoring, and returns structured records ready for analysis, vendor screening, or regulatory research.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| result-returned | Charged per result returned. Includes data transformation and structured output. | $0.03 |
Example: 100 events = $3.00 · 1,000 events = $30.00
Documentation
VETS-4212 federal contractor veteran hiring data lets you search, filter, and score every company required by law to report under VEVRAA — in seconds. This actor queries the DOL Open Data Portal's VETS/4212 dataset, applies VEVRAA compliance scoring, and returns structured records ready for analysis, vendor screening, or regulatory research.
Whether you need to evaluate a contractor's track record before partnering, benchmark veteran employment rates across an industry, or identify which defense primes are genuinely supporting veteran hiring, this actor surfaces the exact data the federal government requires those companies to disclose.
What data can you extract?
| Data Point | Source | Example |
|---|---|---|
| 👤 Company name | VETS-4212 report | BOOZ ALLEN HAMILTON INC |
| 📍 State / City / ZIP | VETS-4212 report | VA / MCLEAN / 22102 |
| 🏷️ EIN | VETS-4212 report | 36-2634345 |
| 🏭 NAICS code | VETS-4212 report | 541611 |
| 👥 Total employees | VETS-4212 report | 32,400 |
| ⭐ Total veterans | VETS-4212 report | 9,720 |
| 📊 Veteran percentage | Calculated | 30.0% |
| 🎖️ Disabled veterans | VETS-4212 report | 1,620 |
| 🪖 Active duty / wartime veterans | VETS-4212 report | 6,480 |
| 🏅 Armed Forces Service Medal veterans | VETS-4212 report | 3,240 |
| 📅 Recently separated veterans | VETS-4212 report | 972 |
| 📈 New hires (total) | VETS-4212 report | 5,200 |
| 🆕 New hires — veterans | VETS-4212 report | 1,820 |
| ♿ New hires — disabled veterans | VETS-4212 report | 260 |
| 📉 Veteran new hire rate | Calculated | 35.0% |
| ✅ VEVRAA compliance score | Calculated (0–100) | 90 |
| 🏆 Compliance level | Derived | Excellent |
| 🗂️ Compliance factors | Derived | Strong veteran representation: 30.0% (+25) |
| 📆 Report year | VETS-4212 report | 2023 |
Why use VETS-4212 federal contractor data?
Manually reviewing VETS-4212 reports means downloading bulk files from DOL, normalizing inconsistent field names, filtering thousands of rows in a spreadsheet, and manually calculating veteran percentages and VEVRAA benchmarks — a half-day task that produces a static snapshot.
This actor automates the entire process: it queries the live DOL API with your filters, calculates veteran employment rates, scores each contractor against the VEVRAA benchmark of ~5.4%, and returns ranked, structured records with plain-English compliance factors.
- Scheduling — run quarterly or annually to track how contractors' veteran hiring changes over time
- API access — trigger runs from Python, JavaScript, or any HTTP client and pipe results into your compliance workflow
- Proxy rotation — Apify's built-in infrastructure handles API reliability so your queries don't silently drop
- Monitoring — get Slack or email alerts when runs fail or produce unexpected zero-result responses
- Integrations — connect results to Zapier, Make, Google Sheets, Airtable, or your internal BI tooling via webhooks
Features
- Paginated DOL API fetching — requests up to 1,000 records per page with 500ms inter-request delay, automatically paging until
maxResultsis reached or the dataset is exhausted - VEVRAA compliance scoring engine — computes a 0–100 score from six weighted factors: veteran representation rate, veteran new hire rate, disabled veteran representation, and company size context
- Benchmark comparison — all veteran rates compared against the federal VEVRAA hiring benchmark of ~5.4%, with explicit above/below/meets-benchmark labels
- Four compliance levels — Excellent (80+), Good (60–79), Fair (40–59), Needs Improvement (below 40)
- Compliance factor narratives — every score includes human-readable strings explaining each point addition or deduction (e.g., "Strong veteran representation: 30.0% (+25)")
- Multi-field filter builder — server-side filtering by company name (LIKE partial match), state (exact), NAICS code prefix, minimum employee count, and report year — combined into a single
andfilter object - Client-side veteran percentage filter — post-API filter on
minVeteranPercentapplied after retrieval, since the DOL API does not support computed-field filtering - Results sorted by compliance score — highest-scoring contractors returned first, so the most VEVRAA-compliant employers appear at the top
- Aggregate hiring summary — every run produces a
summaryblock with overall veteran rate, veteran new hire rate, top 10 employers by veteran count, top 10 states by veteran employment, and breakdown by 2-digit NAICS sector - Exponential backoff with up to 4 retries — rate-limit (HTTP 429) responses trigger exponential delays starting at 4 seconds; transient errors retry with 1/2/4/8-second backoff
- Dry run mode — returns realistic sample data for three contractors (Lockheed Martin, Booz Allen Hamilton, a small IT firm showing non-compliance) without consuming API quota
- EIN included — employer identification numbers enable joining VETS-4212 data with SAM.gov registrations, FPDS contract awards, or internal vendor databases
Use cases for VETS-4212 federal contractor data
Government contracting compliance screening
Procurement officers and compliance teams at agencies with contracting authority need to verify that prospective contractors meet VEVRAA obligations before or after award. This actor retrieves the contractor's full VETS-4212 history, calculates their compliance score, and flags contractors scoring below 40 ("Needs Improvement") for additional scrutiny — eliminating manual spreadsheet lookups across multiple DOL bulk files.
Veteran advocacy and workforce research
Policy researchers and veteran service organizations analyzing employer commitment to veteran hiring can query by state, industry sector, or company name to map veteran employment concentration across the federal contractor base. The actor's NAICS-level aggregation surfaces which industries are meeting the federal benchmark and which are chronically below it.
Defense contractor due diligence
Legal and compliance teams conducting M&A diligence, teaming partner evaluations, or subcontractor qualification reviews need to assess whether a target company has a demonstrated record of VEVRAA compliance. A single run returns compliance scores, hiring trends, and specific factor narratives that translate directly into a due diligence memo section.
HR benchmarking and diversity analytics
Human resources and DEI teams at federal contractors can compare their own reported rates against industry peers grouped by NAICS code. Filtering to NAICS 54 (professional services) or 33 (manufacturing) with minEmployees=1000 isolates comparable organizations for benchmarking veteran hiring percentages and new hire rates.
OFCCP audit preparation
Federal contractors preparing for OFCCP compliance reviews can verify that their published VETS-4212 reports are on file with DOL, confirm the exact figures that regulators will see, and identify gaps in disabled veteran or recently-separated veteran hiring before an audit begins.
Competitive intelligence on defense primes
Business development teams at government contractors can monitor how large defense primes are performing on veteran hiring — a factor that can influence agency award decisions and past performance ratings. Filter by NAICS 336 (aerospace/defense manufacturing) to get the full picture across that sector.
How to search VETS-4212 federal contractor records
- Enter your search criteria — type a company name (partial match works: "RAYTHEON" returns all Raytheon entities), a two-letter state code like
VA, or a NAICS prefix like541for professional services. Leave all fields blank to retrieve the top contractors sorted by veteran count. - Set filters — optionally enter a minimum employee count to exclude small shops, a minimum veteran percentage to surface the most committed employers, or a specific report year (e.g.,
2023) to focus on recent data. - Run the actor — click "Start" and wait. A search returning 500 records typically completes in under 60 seconds. Larger batches up to 5,000 records may take 3–5 minutes.
- Download results — export the full dataset as JSON, CSV, or Excel from the Dataset tab. The compliance score column is pre-sorted highest-first so the best performers appear at the top.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
apiKey | string | No* | — | DOL Open Data Portal API key. Register free at https://dataportal.dol.gov/registration. Required unless dryRun is true. |
dryRun | boolean | No | true | Return 3 sample records without calling the API. Automatically set to false when an apiKey is provided. |
companyName | string | No | — | Partial company name match (case-insensitive). "BOEING" matches "THE BOEING COMPANY" and "BOEING DEFENSE". |
state | string | No | — | Two-letter state abbreviation (e.g., VA, TX, CA). Exact match. |
naicsCode | string | No | — | NAICS code prefix. 54 returns all professional services; 336411 targets aircraft manufacturing. |
minEmployees | integer | No | — | Minimum total employee count. Use 1000 to exclude small contractors. |
minVeteranPercent | number | No | — | Minimum veteran employment percentage. Use 5.4 to filter to VEVRAA-compliant contractors only. |
reportYear | integer | No | — | Filter to a specific reporting year (e.g., 2023). Omit to return all available years. |
maxResults | integer | No | 500 | Maximum records to return. Range: 1–5,000. |
Input examples
Find top veteran employers in Virginia's defense sector:
{
"apiKey": "YOUR_DOL_API_KEY",
"dryRun": false,
"state": "VA",
"naicsCode": "541",
"minEmployees": 500,
"reportYear": 2023,
"maxResults": 100
}
Screen a specific contractor by name:
{
"apiKey": "YOUR_DOL_API_KEY",
"dryRun": false,
"companyName": "GENERAL DYNAMICS",
"maxResults": 50
}
Identify VEVRAA non-compliant large contractors nationwide:
{
"apiKey": "YOUR_DOL_API_KEY",
"dryRun": false,
"minEmployees": 1000,
"reportYear": 2023,
"maxResults": 500
}
Input tips
- Get a free API key first — the actor requires a DOL Open Data Portal key to fetch live data. Registration takes under 2 minutes at https://dataportal.dol.gov/registration. Use
dryRun: trueto preview the output structure before obtaining a key. - Start with a narrow filter — searching by both
stateandnaicsCodereturns focused results faster than fetching 5,000 records and filtering manually downstream. - Use
minVeteranPercent: 5.4— this is the federal VEVRAA hiring benchmark. Setting this threshold filters the result set to contractors that are statistically meeting their obligation. - Omit
reportYearfor trend analysis — leaving this field blank returns all years on file, allowing you to track a company's veteran hiring rate across multiple reporting cycles. - Batch large industry sweeps in one run — requesting 2,000 records across an entire NAICS sector in a single run is more efficient than 20 separate runs of 100 records each.
Output example
{
"records": [
{
"companyName": "BOOZ ALLEN HAMILTON INC",
"state": "VA",
"city": "MCLEAN",
"zip": "22102",
"ein": "36-2634345",
"naicsCode": "541611",
"reportYear": 2023,
"totalEmployees": 32400,
"totalVeterans": 9720,
"veteranPercentage": 30.0,
"disabledVeterans": 1620,
"activeDutyWartime": 6480,
"armedForcesServiceMedal": 3240,
"recentlySeparated": 972,
"newHiresTotal": 5200,
"newHiresVeterans": 1820,
"newHiresDisabledVeterans": 260,
"veteranNewHireRate": 35.0,
"complianceScore": 90,
"complianceLevel": "Excellent",
"complianceFactors": [
"Strong veteran representation: 30.0% (+25)",
"Strong veteran hiring rate: 35.0% of new hires (+15)",
"Strong disabled veteran representation: 5.0% (+10)",
"Mid-size employer: 32,400 employees"
],
"extractedAt": "2024-03-15T14:22:07.311Z"
}
],
"summary": {
"totalRecords": 3,
"totalEmployees": 148850,
"totalVeterans": 37569,
"overallVeteranRate": 25.24,
"totalNewHires": 20280,
"totalVeteranNewHires": 5572,
"veteranNewHireRate": 27.47,
"topEmployers": [
{ "name": "LOCKHEED MARTIN CORPORATION", "veterans": 27840, "rate": 24.0 },
{ "name": "BOOZ ALLEN HAMILTON INC", "veterans": 9720, "rate": 30.0 },
{ "name": "STANDARD TECH SOLUTIONS LLC", "veterans": 9, "rate": 2.0 }
],
"topStates": [
{ "state": "TX", "records": 1, "veterans": 27840 },
{ "state": "VA", "records": 1, "veterans": 9720 }
],
"byNaics": [
{ "code": "33", "records": 1, "veterans": 27840 },
{ "code": "54", "records": 2, "veterans": 9729 }
]
}
}
Output fields
| Field | Type | Description |
|---|---|---|
records | array | Array of VeteranHiringRecord objects, sorted by complianceScore descending |
records[].companyName | string | Federal contractor legal name as filed |
records[].state | string | null | Two-letter state abbreviation |
records[].city | string | null | City of the reporting establishment |
records[].zip | string | null | ZIP code of the reporting establishment |
records[].ein | string | null | Employer Identification Number (e.g., 52-1893632) |
records[].naicsCode | string | null | 6-digit NAICS industry classification code |
records[].reportYear | integer | null | VETS-4212 reporting year |
records[].totalEmployees | integer | Total employees at time of report |
records[].totalVeterans | integer | Total veteran employees across all protected categories |
records[].veteranPercentage | number | Veteran employees as a percentage of total employees (rounded to 2 decimal places) |
records[].disabledVeterans | integer | Employees with a service-connected disability rating |
records[].activeDutyWartime | integer | Veterans of active duty during a war or campaign |
records[].armedForcesServiceMedal | integer | Veterans who received an Armed Forces Service Medal |
records[].recentlySeparated | integer | Veterans who separated from service within the past 3 years |
records[].newHiresTotal | integer | Total new employees hired during the reporting period |
records[].newHiresVeterans | integer | Veterans among new hires during the reporting period |
records[].newHiresDisabledVeterans | integer | Disabled veterans among new hires during the reporting period |
records[].veteranNewHireRate | number | null | Veterans as a percentage of all new hires; null if no new hires reported |
records[].complianceScore | integer | VEVRAA compliance score from 0 to 100 (see scoring table below) |
records[].complianceLevel | string | Score band: Excellent, Good, Fair, or Needs Improvement |
records[].complianceFactors | string[] | Plain-English list of scoring factors applied, each showing point impact |
records[].extractedAt | string | ISO 8601 timestamp of when the record was processed |
summary.totalRecords | integer | Total records in the result set |
summary.totalEmployees | integer | Sum of all employees across all records |
summary.totalVeterans | integer | Sum of all veterans across all records |
summary.overallVeteranRate | number | Aggregate veteran percentage across the full result set |
summary.totalNewHires | integer | Sum of all new hires across all records |
summary.totalVeteranNewHires | integer | Sum of all veteran new hires across all records |
summary.veteranNewHireRate | number | Aggregate veteran new hire rate across the full result set |
summary.topEmployers | array | Top 10 employers by total veteran count (name, veterans, rate) |
summary.topStates | array | Top 10 states by total veteran employment (state, records, veterans) |
summary.byNaics | array | Top 10 2-digit NAICS sectors by veteran employment (code, records, veterans) |
How much does it cost to search VETS-4212 contractor data?
VETS-4212 Federal Contractor Veteran Hiring uses pay-per-compute pricing — you pay only for the platform time used per run. There are no per-record charges. The underlying DOL API is free with a free registration key.
| Scenario | Records returned | Estimated run time | Approximate cost |
|---|---|---|---|
| Quick test (dry run) | 3 sample records | ~3 seconds | $0.00 |
| Targeted company search | 1–50 records | ~10 seconds | ~$0.01 |
| State or sector sweep | 100–500 records | 30–60 seconds | ~$0.02–$0.05 |
| Large industry batch | 500–2,000 records | 1–3 minutes | ~$0.05–$0.15 |
| Full dataset pull | 5,000 records | 4–6 minutes | ~$0.20–$0.35 |
You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached.
The DOL Open Data Portal API key is completely free — register at https://dataportal.dol.gov/registration. Compare this to commercial GovCon compliance databases that charge $200–500/month for similar VEVRAA contractor lookups.
Search VETS-4212 data using the API
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("ryanclinton/vets-4212-contractor-data").call(run_input={
"apiKey": "YOUR_DOL_API_KEY",
"dryRun": False,
"state": "VA",
"naicsCode": "541",
"minEmployees": 500,
"reportYear": 2023,
"maxResults": 200
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
for record in item.get("records", []):
print(f"{record['companyName']} — Score: {record['complianceScore']} ({record['complianceLevel']}) — Veterans: {record['totalVeterans']} ({record['veteranPercentage']}%)")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/vets-4212-contractor-data").call({
apiKey: "YOUR_DOL_API_KEY",
dryRun: false,
state: "VA",
naicsCode: "541",
minEmployees: 500,
reportYear: 2023,
maxResults: 200
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
for (const record of item.records ?? []) {
console.log(`${record.companyName} — Score: ${record.complianceScore} (${record.complianceLevel}) — Veterans: ${record.totalVeterans} (${record.veteranPercentage}%)`);
}
}
cURL
# Start the actor run
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~vets-4212-contractor-data/runs?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"apiKey": "YOUR_DOL_API_KEY",
"dryRun": false,
"state": "TX",
"naicsCode": "336",
"reportYear": 2023,
"maxResults": 100
}'
# Fetch results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_API_TOKEN&format=json"
How VETS-4212 Federal Contractor Veteran Hiring works
Phase 1: Filter construction and API query
The actor accepts up to five filter dimensions: company name (partial LIKE match, uppercased), state (exact match), NAICS code prefix (LIKE match), minimum employee count (greater-than-or-equal), and report year (exact match). These are assembled into a DOL API filter_object JSON structure — single conditions are passed directly; multiple conditions are wrapped in an and compound object. The filter is URL-encoded and appended to the https://apiprod.dol.gov/v4/get/VETS/4212/json endpoint with the user's API key, sort order (desc by total_veterans), and pagination parameters.
Phase 2: Paginated retrieval with rate limit handling
The actor fetches up to 1,000 records per API page with a 500ms delay between pages. On HTTP 429 (rate limited), it applies exponential backoff: 4 seconds after the first limit, 8 seconds after the second, up to 4 total attempts. Non-rate-limit transient errors retry with 1/2/4/8-second exponential backoff. Pagination continues until the requested maxResults count is reached or the API returns fewer records than the page limit (indicating the dataset is exhausted). The final slice ensures the output never exceeds maxResults.
Phase 3: VEVRAA compliance scoring
Each raw record is transformed and scored in a single pass. The scoring algorithm starts at a baseline of 50 points and applies six weighted adjustments:
| Condition | Score adjustment |
|---|---|
| Veteran employment rate ≥ 8% | +25 |
| Veteran employment rate ≥ 5.4% (meets VEVRAA benchmark) | +15 |
| Veteran employment rate 3–5.4% (below benchmark) | +5 |
| Veteran employment rate 1–3% (low) | -10 |
| Zero veteran employees | -20 |
| Veteran new hire rate ≥ 10% | +15 |
| Veteran new hire rate ≥ 5.4% | +8 |
| Veteran new hire rate > 0% | +3 |
| Disabled veteran rate ≥ 2% of total employees | +10 |
| Any disabled veterans employed | +5 |
Scores are clamped to 0–100. The minVeteranPercent post-filter is applied after scoring (since the DOL API cannot filter on computed fields), then all records are sorted by complianceScore descending.
Phase 4: Summary aggregation
After transformation and filtering, the actor builds a HiringSummary object by aggregating across all result records: total employees and veterans are summed; veteran rates are calculated from those sums; the top 10 employers, top 10 states, and top 10 NAICS 2-digit sectors are extracted by sorting their respective maps by veteran count and slicing. The entire { records, summary } object is pushed to the Apify dataset as a single item.
Tips for best results
-
Register for a free DOL API key before running. The actor defaults to
dryRun: truewhen no key is present, which returns sample data only. Registration at https://dataportal.dol.gov/registration takes under 2 minutes and the key is issued immediately. -
Use NAICS prefix filtering for industry-wide studies. A 2-digit prefix (
54for professional services,33for manufacturing,23for construction) returns the full sector. A 6-digit code targets a single industry sub-group. Combine withminEmployeesto eliminate micro-contractors from the analysis. -
Set
reportYearto compare a single filing cycle. Companies file annually, so omitting the year returns all historical records for matching companies — useful for trend analysis, but it multiplies the record count. SetreportYear: 2023(or the most recent available year) for point-in-time screening. -
Filter to
minVeteranPercent: 5.4to produce a shortlist of contractors definitively meeting the federal VEVRAA benchmark. This is a computed post-filter applied after API retrieval, so it does not affect query performance — it reduces the output size. -
Join
einto other government datasets. The EIN field enables cross-referencing with USASpending.gov contract awards, SAM.gov entity registrations, and FPDS procurement data to correlate veteran hiring with contract dollar values. -
Combine with the Federal Contract Intelligence actor to build a complete picture: retrieve active contract awards from one actor, then use contractor names or EINs to pull their VETS-4212 veteran hiring scores from this one.
-
Schedule quarterly runs to detect year-over-year changes in a contractor's compliance score. A company moving from "Good" to "Needs Improvement" is a signal worth flagging before the next contract renewal.
Combine with other Apify actors
| Actor | How to combine |
|---|---|
| Company Deep Research | Pull comprehensive company intelligence on contractors flagged as "Needs Improvement" to understand broader hiring culture before a partnership decision |
| B2B Lead Qualifier | Score defense contractor leads on 30+ signals alongside their VEVRAA compliance score for a complete vendor qualification profile |
| Website Contact Scraper | Extract HR director or veterans affairs officer contacts from contractors identified via VETS-4212 for targeted outreach |
| WHOIS Domain Lookup | Verify contractor domain ownership and registration status when cross-referencing company names with web presence |
| Waterfall Contact Enrichment | Enrich contractor records with phone, email, and LinkedIn data using a 10-step enrichment cascade after extracting company names from this actor |
| HubSpot Lead Pusher | Push compliant contractor records directly into a HubSpot CRM pipeline for government business development follow-up |
| Multi-Review Analyzer | Pull Trustpilot and BBB reviews for contractors to supplement VEVRAA compliance data with employee-facing reputation signals |
Limitations
- Requires a free DOL API key. Unlike some public data APIs, the DOL Open Data Portal requires registration. The key is free and issued immediately, but the actor cannot fetch live data without it.
- Data freshness reflects annual filing cycles. Contractors file VETS-4212 reports annually; the most recent data is typically 12–18 months behind the current date. This actor retrieves what is on file — it does not have access to unreported current-year data.
- Coverage limited to VEVRAA-covered contractors. The dataset covers federal contractors and subcontractors with 50+ employees and contracts of $150,000 or more. Smaller companies, non-federal employers, and contractors below the threshold are not included regardless of their veteran hiring practices.
minVeteranPercentis a post-API filter. The DOL API cannot filter on calculated fields like veteran percentage. This actor fetches up tomaxResultsrecords first, then filters by percentage. If many records fail the threshold, the actual output count may be substantially smaller thanmaxResults.- No multi-year trend output in the current schema. When fetching without a
reportYearfilter, multiple filing years for the same company are returned as separate records rather than as a merged time series. Post-process by grouping oneinorcompanyNameto build trend data. - NAICS codes are self-reported. Contractors self-classify their NAICS code; errors and inconsistencies in the source data are returned as-is and not corrected.
- No sub-establishment-level breakdown. Large contractors with multiple locations file a single consolidated report; this actor returns the consolidated record, not individual facility data.
- DOL API rate limits apply. The actor handles rate limiting with exponential backoff, but sustained very large requests may require longer run times during peak API usage periods.
Integrations
- Zapier — trigger a VETS-4212 lookup when a new contractor is added to a spreadsheet, then post the compliance score to Slack
- Make — build automated vendor vetting workflows that run this actor on contractor names from a procurement system and flag low-scoring results
- Google Sheets — export contractor compliance scores and veteran hiring rates directly into a shared due diligence tracker
- Apify API — integrate VETS-4212 screening into internal compliance platforms, GovCon portals, or vendor management systems via REST
- Webhooks — receive a webhook when a scheduled run completes, triggering downstream processing in your data pipeline
- LangChain / LlamaIndex — feed VEVRAA compliance records into a RAG pipeline for natural-language querying of contractor veteran hiring obligations
Troubleshooting
-
Run returns only sample data (dry run output) — the actor defaults to dry run mode when no API key is provided. Set
dryRun: falseand supply yourapiKey. If you have not registered yet, visit https://dataportal.dol.gov/registration for a free key issued within minutes. -
HTTP 401 or 403 error logged — your DOL API key is invalid, expired, or has not yet been activated. Re-check the key value in your input, confirm it matches the key in your DOL portal account, and wait a few minutes after initial registration before using the key.
-
Zero records returned despite a valid search — the company may not be a VEVRAA-covered contractor (50+ employees, $150,000+ federal contract), may have filed under a different legal name, or may not have a filing for the specified
reportYear. Try a broadercompanyNamesearch (e.g., the parent company name) or remove thereportYearfilter to check all available years. -
Output record count is much smaller than
maxResults— ifminVeteranPercentis set, it filters records after API retrieval. A high threshold (e.g., 20%) will naturally reduce the returned count. IncreasemaxResultsto fetch more candidates from the API before the percentage filter is applied. -
Run times out or is slower than expected — large
maxResultsvalues (3,000–5,000) with no filters require fetching multiple pages at 500ms intervals. Increase memory to 512 MB in actor settings and expect 4–6 minutes for a full dataset pull. Adding astateornaicsCodefilter drastically reduces retrieval time.
Responsible use
- This actor queries only the DOL Open Data Portal, a publicly accessible U.S. government database containing data that federal contractors are legally required to disclose.
- VETS-4212 data is public record under VEVRAA and FOIA. Accessing it via this actor is lawful and consistent with the DOL's terms of service.
- Do not use extracted contractor data to make employment decisions about individuals or for purposes unrelated to legitimate compliance, research, or business assessment.
- Comply with applicable laws when using contractor contact information derived from VETS-4212 filings for outreach or solicitation purposes.
- For general guidance on public data access and scraping legality, see Apify's guide.
FAQ
How do I get a DOL API key to use this actor?
Register for free at https://dataportal.dol.gov/registration. The key is issued immediately after email confirmation. Paste it into the apiKey field in the actor's input. There is no cost and no usage tier — the DOL API is free for all users.
What is the VETS-4212 report and which companies are required to file? VETS-4212 is an annual report required by the Vietnam Era Veterans' Readjustment Assistance Act (VEVRAA). Federal contractors and subcontractors with 50 or more employees and a federal contract or subcontract of $150,000 or more must file it with the Department of Labor each year, disclosing their veteran employment counts by protected category.
What is the VEVRAA hiring benchmark and how is the compliance score calculated?
The federal VEVRAA hiring benchmark is approximately 5.4% — meaning covered contractors should aim to have at least 5.4% of their workforce be veterans. The compliance score in this actor starts at a baseline of 50 and adds or subtracts points based on veteran representation rate, veteran new hire rate, and disabled veteran employment rate, with each factor labeled in the complianceFactors array. Scores of 80+ are "Excellent"; below 40 is "Needs Improvement."
How current is the VETS-4212 data?
Contractors file annually, and DOL publishes data on a rolling basis. Reports are typically 12–18 months behind the current calendar year. Filter to the most recent available reportYear (usually 2023) for the freshest data.
How many records can I retrieve in a single run?
The actor supports up to 5,000 records per run. Set maxResults: 5000 to fetch the full available dataset matching your filters. Most targeted searches (specific company or state) will return far fewer.
Can I search VETS-4212 data without a DOL API key?
Yes — set dryRun: true (or simply leave out the apiKey) to run in dry run mode. The actor returns 3 realistic sample records showing the full output schema, including compliance scores, veteran breakdowns, and the summary block. No API call is made.
How is this different from downloading DOL bulk files manually? The DOL provides annual bulk CSV downloads of VETS-4212 data, but these require manual downloading, opening in a spreadsheet tool, normalizing inconsistent columns, and manually calculating veteran percentages. This actor queries the live API with server-side filters, calculates all derived fields, scores every record against the VEVRAA benchmark, and returns structured JSON — in under 60 seconds.
Can I filter VETS-4212 results by multiple criteria at the same time?
Yes. The actor combines all provided filters into a single DOL API and compound filter object. You can simultaneously filter by state, naicsCode, minEmployees, companyName, and reportYear. The minVeteranPercent filter is applied client-side after retrieval.
Is it legal to access and use VETS-4212 data? Yes. VETS-4212 data is public record filed with a U.S. government agency under federal law. The DOL Open Data Portal explicitly provides API access for this data. Using it for compliance research, vendor screening, or workforce analysis is lawful. Ensure any downstream use of the data complies with applicable employment and privacy laws.
Can I schedule this actor to run on a regular basis? Yes. Apify's scheduler supports daily, weekly, monthly, or custom cron schedules. Schedule an annual run each October (when new VETS-4212 filings are typically published) to automatically refresh your contractor compliance database.
Can I join this data with federal contract award records?
Yes. The ein field in each record is the employer's federal tax ID, which appears in SAM.gov, FPDS, and USASpending.gov contract data. Use the EIN to join VETS-4212 compliance scores with contract dollar values, award dates, and agency names for a complete GovCon compliance picture.
What veteran categories are tracked in the VETS-4212 report? VEVRAA defines four protected veteran categories: disabled veterans (service-connected disability rating), active duty wartime or campaign badge veterans, Armed Forces Service Medal veterans, and recently separated veterans (within 3 years of discharge). All four are captured separately in this actor's output, alongside a total veteran count that may include veterans in multiple categories.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom compliance workflows, bulk data access, or enterprise integrations, reach out through the Apify platform.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Weather Forecast Search
Get weather forecasts for any location worldwide using the free Open-Meteo API. Returns current conditions, daily and hourly forecasts with temperature, precipitation, wind, UV index, and more. No API key needed.
EUIPO EU Trademark Search
Search EU trademarks via official EUIPO database. Find registered and pending trademarks by name, Nice class, applicant, or status. Returns full trademark details and filing history.
Ready to try VETS-4212 Federal Contractor Veteran Hiring?
Start for free on Apify. No credit card required.
Open on Apify Store