USA Jobs Scraper avatar

USA Jobs Scraper

Pricing

from $0.90 / 1,000 results

Go to Apify Store
USA Jobs Scraper

USA Jobs Scraper

Scrape USAJOBS listings fast and reliably. Extract federal job titles, agencies, locations, salaries, descriptions, requirements, and application links. Ideal for job boards, recruitment data, market research, and career analytics.

Pricing

from $0.90 / 1,000 results

Rating

5.0

(6)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

3

Bookmarked

66

Total users

5

Monthly active users

4 days ago

Last modified

Share

What does USA Jobs Scraper do?

USA Jobs Scraper collects public federal job listings from USAJobs.gov and saves them as structured records. Enter a keyword, location, or USAJobs search URL, then set the date window and result limit. Each result can include the job title, hiring agency, location, salary range, application dates, eligibility, work details, description, and application links.

Use the dataset for federal hiring intelligence, salary benchmarking, workforce research, recruitment workflows, career services, and recurring monitoring of public-sector opportunities.

Why use USA Jobs Scraper?

  • Federal job coverage - Collect positions published by U.S. departments, agencies, and sub-agencies from one search workflow.
  • Practical search controls - Filter by job keyword, location, posting recency, and whether closed positions should be included.
  • Detailed job records - Review compensation, pay grade, appointment type, work schedule, candidate eligibility, security clearance, telework, travel, and descriptions.
  • Flexible collection size - Start with a small test run or collect a larger dataset by increasing maxJobs.
  • Automation-ready results - Download JSON, CSV, Excel, or XML data, schedule recurring runs, send webhooks, or connect the dataset to another application.

What data can you extract from USAJobs.gov?

FieldTypeDescription
sourceStringSource identifier, returned as usajobs.
titleStringJob title shown in the listing.
companyStringHiring agency or organization.
locationStringDisplay location for the position.
salaryStringHuman-readable salary range and pay period.
job_typeStringAppointment type or work schedule label.
date_postedStringPublication start date.
urlStringDirect USAJobs detail page URL.
controlNumberStringUSAJobs control number for the listing.
positionIdStringPosition identifier supplied by USAJobs.
positionTitleStringOfficial job title from the announcement.
organizationNameStringHiring organization.
departmentNameStringParent department.
subAgencyNameStringSub-agency when available.
locationDisplayStringFull display-friendly location string.
positionLocationsArrayLocation objects returned for the position.
positionOpenDateStringDate when the announcement opened.
positionCloseDateStringApplication closing date.
open_close_datesStringCombined opening and closing dates.
detailUrlStringDetailed job announcement URL.
applyUrlStringDirect application URL when available.
minimumSalaryNumberLower salary value.
maximumSalaryNumberUpper salary value.
payGradeStringPay grade range, such as 13-13.
pay_scale_gradeStringCompatibility copy of the pay grade range.
workScheduleStringWork schedule, such as full-time.
work_scheduleStringCompatibility copy of the work schedule.
appointmentTypeStringAppointment type, such as permanent.
appointment_typeStringCompatibility copy of the appointment type.
whoMayApplyStringCandidate eligibility category.
serviceStringService type when available.
promotion_potentialStringPromotion potential value.
securityClearanceStringSecurity clearance information.
security_clearanceStringCompatibility copy of the security clearance.
supervisory_statusStringSupervisory status when available.
telework_eligibleStringTelework eligibility information.
travel_requiredStringTravel requirement information.
jobCategoriesArrayJob category codes and names.
description_htmlStringStructured description content.
description_textStringPlain-text description for analysis and search.

The dataset also includes compatibility fields such as pay_scale_grade, work_schedule, appointment_type, and security_clearance. The overview fields title, company, location, salary, job_type, date_posted, and url make the dataset easy to scan in Apify.

How to scrape USAJobs data

  1. Open USA Jobs Scraper in Apify Console.
  2. Enter a keyword, location, or public USAJobs search URL.
  3. Set daysBack to define the posting recency window.
  4. Choose whether to include closed positions and set maxJobs.
  5. Start the run, review the dataset preview, and download or connect the results.

If both searchUrl and keyword or location values are provided, the keyword and location parsed from the search URL take priority.

Input Parameters

ParameterTypeRequiredDefaultDescription
searchUrlStringNoNonePublic USAJobs search results URL. The Actor reads keyword and location values from its query parameters.
keywordStringNoNoneJob title, skill, or phrase such as software engineer or data analyst.
locationStringNoNoneCity, state, region, or other USAJobs location filter.
daysBackIntegerNo30Number of days back to search for recently posted jobs. Values are limited to a maximum 60-day search window.
includeClosedBooleanNofalseSet to true to keep positions whose application closing date has passed.
maxJobsIntegerNo20Maximum number of job records to save. Must be at least 1.
proxyConfigurationObjectNo{"useApifyProxy": false}Optional Apify proxy settings for request routing.

You can run a search with only a keyword, only a location, both values, or a USAJobs search URL. A search URL is useful when you already prepared filters on USAJobs.gov.

Usage Examples

Collect up to 50 current data analyst positions in Washington, DC.

{
"keyword": "data analyst",
"location": "Washington, DC",
"maxJobs": 50
}

Reuse a USAJobs search URL

Use an existing search URL and limit results to positions posted during the last two weeks.

{
"searchUrl": "https://www.usajobs.gov/Search/Results?k=cybersecurity&l=Texas",
"daysBack": 14,
"maxJobs": 100
}

Recurring federal hiring monitor

Collect a larger set of open program manager positions for a scheduled monitoring workflow.

{
"keyword": "program manager",
"daysBack": 30,
"includeClosed": false,
"maxJobs": 500,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Sample Output

The following example shows one dataset item. Optional values can be null when USAJobs does not publish them for a particular announcement.

{
"source": "usajobs",
"title": "IT Specialist (Application Software)",
"company": "Department of Veterans Affairs",
"location": "Washington, District of Columbia",
"salary": "$112,015 - $145,617 Per Year",
"job_type": "Permanent",
"date_posted": "2026-03-01T00:00:00Z",
"url": "https://www.usajobs.gov/job/826008100",
"controlNumber": "826008100",
"positionId": "ABCD-1234",
"positionTitle": "IT Specialist (Application Software)",
"organizationName": "Department of Veterans Affairs",
"departmentName": "Department of Veterans Affairs",
"subAgencyName": "Office of Information and Technology",
"locationDisplay": "Washington, District of Columbia",
"positionLocations": [
{
"LocationName": "Washington, District of Columbia"
}
],
"positionOpenDate": "2026-03-01T00:00:00Z",
"positionCloseDate": "2026-04-01T23:59:59Z",
"open_close_dates": "2026-03-01T00:00:00Z - 2026-04-01T23:59:59Z",
"detailUrl": "https://www.usajobs.gov/job/826008100",
"applyUrl": "https://www.usajobs.gov/job/826008100/apply",
"minimumSalary": 112015,
"maximumSalary": 145617,
"payGrade": "13-13",
"pay_scale_grade": "13-13",
"workSchedule": "Full-time",
"work_schedule": "Full-time",
"appointmentType": "Permanent",
"appointment_type": "Permanent",
"whoMayApply": "Public",
"service": "Competitive service",
"promotion_potential": "13",
"securityClearance": "Not Required",
"security_clearance": "Not Required",
"supervisory_status": "No",
"telework_eligible": "Yes",
"travel_required": "Occasional travel",
"jobCategories": [
{
"code": "2210",
"name": "Information Technology Management"
}
],
"description_html": "<h2>Summary</h2><div>Serve as an IT specialist supporting federal applications and services.</div>",
"description_text": "Summary Serve as an IT specialist supporting federal applications and services."
}

Tips for best results

  • Start with a focused search - Test a specific keyword and one location with maxJobs between 20 and 50 before expanding the collection.
  • Choose the right date window - Use a small daysBack value for fresh job alerts and a larger value for labor-market analysis.
  • Use search URLs for repeatable filters - Save a USAJobs search URL when you want to reuse a prepared search in a schedule.
  • Check closing dates - Keep includeClosed set to false for active opportunity lists. Set it to true when building an announcement history.
  • Review optional fields - Salary, telework, clearance, travel, and application links may be absent from individual source listings.
  • Increase the limit gradually - Validate the dataset preview before scheduling larger runs or sending results to another system.

Integrations and export formats

  • Google Sheets - Review jobs, compare agencies, and share hiring reports.
  • Airtable - Create a searchable federal opportunity database.
  • Webhooks - Send completed run notifications and dataset links to another service.
  • Make or Zapier - Route new job records into alerts, spreadsheets, email, or internal workflows.
  • Apify API - Start runs and read dataset items from your own application.
  • JSON, CSV, Excel, and XML - Download the dataset in a format suited to analysis or data pipelines.

Frequently Asked Questions

Can I collect USAJobs listings without a keyword?

Yes. Provide a location, use a prepared searchUrl, or leave both filters broad when you want a wider federal jobs dataset.

How many jobs can I collect in one run?

You can request any positive maxJobs value. The final count cannot exceed the number of matching USAJobs listings and may be lower when listings lack the required identifying fields.

Can I include closed federal positions?

Yes. Set includeClosed to true. The default false value keeps positions with past closing dates out of the saved dataset.

Why are some salary or description fields empty?

USAJobs does not publish every field for every announcement. Missing values usually reflect the source listing rather than a problem with the run.

Can I schedule recurring USAJobs searches?

Yes. Create an Apify schedule to run the Actor hourly, daily, weekly, or on a custom interval, then connect the dataset to a webhook or export workflow.

Can I export USAJobs data to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other supported formats.

Public data collection can be subject to applicable laws, privacy requirements, and USAJobs.gov terms. You are responsible for using the data lawfully, respecting access restrictions, and handling job-seeker information responsibly.

  • LinkedIn Job Scraper - Collect job listings with titles, companies, locations, salary information, and direct job URLs.
  • Talent Job Scraper - Gather structured job postings from Talent.com for hiring research and market monitoring.
  • Naukri Jobs Scraper - Collect job listings with company, salary, experience, location, skills, and description fields.

Support

For issues, feature requests, or source changes, use the Issues tab on the Actor page or contact the developer through Apify.

This Actor is designed for legitimate collection of publicly available USAJobs listings. Users are responsible for complying with applicable laws, website terms, privacy requirements, and internal data-handling policies.