USAJobs Jobs Search Scraper avatar

USAJobs Jobs Search Scraper

Pricing

from $2.99 / 1,000 job details

Go to Apify Store
USAJobs Jobs Search Scraper

USAJobs Jobs Search Scraper

Scrape rich, identity-verified federal job announcements from USAJOBS.

Pricing

from $2.99 / 1,000 job details

Rating

0.0

(0)

Developer

Jobs API

Jobs API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 hours ago

Last modified

Share

What does USAJOBS Jobs Search Scraper do?

USAJOBS Jobs Search Scraper extracts identity-verified federal job announcements from USAJOBS. It combines the public first-party search endpoint with each public announcement page to produce rich records without an applicant account or API credential.

Every emitted record verifies the numeric control number, title, agency, canonical URL, and substantial announcement sections. Search mode supports keyword/location pagination; single and multiple modes enrich known public announcement URLs.

Why use USAJOBS Jobs Search Scraper?

  • Build rich federal vacancy feeds with summary, duties, requirements, qualifications, evaluation, documents, and application instructions.
  • Track agencies, departments, locations, pay, schedules, appointment types, closing dates, and hiring paths.
  • Resolve known USAJOBS control numbers into canonical, source-verified records.
  • Schedule runs, use the Apify API, connect datasets to integrations, and monitor machine-readable diagnostics.
  • Preserve valid partial results when one detail fails or a bounded search exposes fewer jobs than requested.

The Actor uses native public HTTPS only. It does not use authenticated pages, private applicant data, browser automation, or private API credentials.

What data can USAJOBS Jobs Search Scraper extract?

FieldTypeDescription
jobId, controlNumber, announcementNumberstringOfficial announcement identity.
title, agency, departmentstringVerified position and organisation.
location, locationsstring/arrayPublic duty locations.
summary, duties, requirementsstringRich announcement sections.
qualifications, evaluation, requiredDocumentsstringEligibility and selection content.
salaryMin, salaryMax, payScaleGradenumber/stringPublished pay data.
datePosted, validThroughdate-timeOpening and closing timestamps.
hiringPaths, jobSeriesarrayPublic applicant paths and categories.
applicationUrl, applicationMethodsstring/arrayExternal application destinations only when published.
detailVerified, verificationEvidenceboolean/objectIdentity, canonical, and richness checks.

The public announcement URL is jobUrl; it is never reused as an application URL. Empty optional fields are omitted.

How to scrape USAJOBS announcements

  1. Open the Actor input tab in Apify Console.
  2. Select search, single, or multiple.
  3. For search mode, enter keywords and an optional location.
  4. For direct modes, provide official usajobs.gov/job/<control-number> URLs.
  5. Set maxPages, maxItems, pageSize, and maxRequests to bounded values.
  6. Start the run and inspect the dataset, RUN_SUMMARY, and RUN_DIAGNOSTICS.
  7. Export results or connect the dataset to an Apify integration.

One search page consumes one request and each inspected announcement consumes one request. The Actor stops at maxRequests.

How much will it cost to scrape USAJOBS?

Native HTTPS is efficient compared with browser automation. Actual cost depends on your Apify plan, memory, page count, detail count, response latency, and current platform pricing. Start with one page and five items, then use the run estimate in Apify Console before scaling. A practical request budget is maxPages + maxItems plus a small margin for rejected candidates.

Input

See the input tab for full configuration options.

{
"mode": "search",
"query": "software engineer",
"location": "",
"maxPages": 1,
"maxItems": 5,
"pageSize": 25,
"maxRequests": 12,
"requestDelayMs": 100,
"requestTimeoutSecs": 30
}

Direct URLs must use the USAJOBS host and contain a numeric control number. Duplicate URLs are removed. requestDelayMs applies between detail requests.

Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. Simplified examples:

[
{
"jobId": "882002700",
"title": "Software Engineer II",
"agency": "House of Representatives",
"location": "Washington, DC",
"detailVerified": true,
"jobUrl": "https://www.usajobs.gov/job/882002700"
},
{
"jobId": "881802100",
"title": "Computer Scientist (Enterprise Architect)",
"agency": "Defense Counterintelligence and Security Agency",
"applicationUrl": "https://agency.example.gov/application/881802100",
"detailVerified": true,
"jobUrl": "https://www.usajobs.gov/job/881802100"
}
]

Application URLs shown above are illustrative; runtime output includes only destinations actually published outside USAJOBS. RUN_SUMMARY reports page, candidate, request, result, rejection, runtime, and completion status. RUN_DIAGNOSTICS explains individual search, detail, or validation failures and never becomes a job record.

Tips and advanced options

  • Use single mode for the cheapest rich lookup.
  • Keep pageSize high enough to find maxItems within few pages.
  • Raise maxRequests when increasing pages or direct URLs.
  • A succeeded_with_limitations status means valid records were preserved despite fewer results or diagnostics.
  • Verify consequential hiring decisions against the canonical announcement.
  • Avoid collecting or retaining public contact details unless they are necessary for your lawful use.

Local development

npm ci --no-audit --no-fund
npm run check
npm test
apify validate-schema
apify run --purge --input-file INPUT.json
npm run validate

Local data remains under storage/ and is not uploaded to Apify Console.

FAQ, disclaimers, and support

Why did I receive fewer records than maxItems?

The query may expose fewer matching announcements, a detail page may fail strict verification, or the request budget may be reached. Valid records are retained with a limitation status; inspect diagnostics before raising limits.

Does the Actor submit applications?

No. It extracts public announcement data only and does not log in or submit forms.

Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

Respect USAJOBS terms, robots guidance, rate limits, and applicable law. Use the Actor API tab for programmatic access. Report issues with a redacted input and run ID in the Issues tab.