US Federal Government Jobs Search avatar

US Federal Government Jobs Search

Pricing

$1.00 / 1,000 job openings

Go to Apify Store
US Federal Government Jobs Search

US Federal Government Jobs Search

Search current US federal government job openings through the USAJOBS Search API. Filter by keyword, location, occupational series, pay grade, salary, remote work and posting date. One clean row per opening, without agency contacts or free-text descriptions. Needs your own free USAJOBS API key.

Pricing

$1.00 / 1,000 job openings

Rating

0.0

(0)

Developer

IOCODO LLC

IOCODO LLC

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Security

Limited permissions

Share

What does US Federal Government Jobs Search do?

US Federal Government Jobs Search finds current US federal government job openings and returns them in one clean row per opening. It reads the USAJOBS Search API, which lists the openings of federal agencies. Give it keywords, places, occupational series, pay grades or a salary floor. You get back the title, agency, location, pay range, grade, schedule, hiring paths, remote and telework flags, closing date and the link to apply.

It works as a simple federal jobs API: no browser, no scraping. You need your own free USAJOBS API key, and the steps to get one are below.

Why use it?

  • Job boards and career sites. Fill a page or a feed with federal openings, filtered by series, grade, place or pay.
  • Job alerts. Run it every day for only the openings posted in the last 24 hours and send them to a channel or a spreadsheet.
  • Labour research. Count and compare openings by agency, occupational series, pay range, location or remote work.
  • Career planning. Watch what an agency or a series pays and how often it hires.

On Apify you can schedule runs, call the Actor through the API, and send results to Google Sheets, Zapier, Make or a webhook.

What data does it return?

FieldExample
titleIT SPECIALIST (INFOSEC)
organization, departmentForest Service, Department of Agriculture
positionIdFS-26-12345678-DE
url, applyUrllinks to the opening and to apply
locations, locationTextcity, state, country, latitude, longitude
jobCategories2210 Information Technology Management
payPlanGrades, lowGrade, highGradeGS, 12, 13
salaryMin, salaryMax, salaryInterval107305, 139493, year
schedule, appointmentTypeFull-time, Permanent
whoMayApply, hiringPathsUnited States Citizens, public, vet
telework, remotetrue or false, null when USAJOBS does not say
securityClearance, drugTest, relocation, travelSecret, false, false, Occasional travel
openedOn, closesOn2026-10-19, 2026-11-02

Every record also carries source, license, source_updated_at and retrieved_at, so you always know where a row came from and when it was read.

No contacts and no free text. The output is a fixed list of fields.

  • Agency contact names, e-mail addresses and phone numbers are left out.
  • So are all free-text parts of the announcement: summary, duties, qualifications and how to apply. They can name people.

Open url on USAJOBS for the full announcement and for the instructions to apply.

How to get your free USAJOBS API key

  1. Open the USAJOBS API request page, fill in the short form and accept the USAJOBS terms.
  2. USAJOBS sends the key to the e-mail address you entered.
  3. Paste the key into the key field of the Actor input, and the same e-mail address into the e-mail field below it.

The key stays secret. The Actor stores it as a secret input and sends it to USAJOBS only, in the request headers. It is never written to the results, the logs or any URL.

How to search for federal jobs

  1. Open the Actor and paste your key and e-mail address.
  2. Add keywords, one per line. Each keyword is a separate search. Leave the list empty to search without a keyword.
  3. Narrow the search with locations, occupational series, pay grades, a minimum salary, remote work or the posting date.
  4. Set Maximum openings and click Start. Download the results as JSON, CSV, Excel or HTML.

An opening that several keywords find is returned once, under the first keyword that found it. The query field tells you which keyword that was.

How much does it cost?

You pay $1 per 1,000 job openings returned ($0.001 each). Searches that find nothing cost nothing. A run stops by itself at the maximum charge you set. The monthly credit of the free Apify plan is enough to try it. The USAJOBS key itself is free.

The Actor sends at most one request per second to USAJOBS, so a large run takes a few minutes.

Input

See the input tab for every option. In short:

  • apiKey and apiEmail: your USAJOBS key and the e-mail address it was registered with
  • keywords: one search per keyword
  • locations: places in the form Atlanta, Georgia, searched together; radiusMiles widens them
  • jobCategoryCodes: four-digit occupational series such as 2210 or 0830
  • payGradeLow and payGradeHigh: grades from 1 to 15
  • minSalary: minimum salary in dollars
  • remoteOnly and teleworkOnly: keep remote or telework eligible openings
  • postedWithinDays: only openings posted in the last 0 to 60 days
  • whoMayApply: all (everything your key may see), public or status
  • maxResults: up to 10,000 openings in total, 500 by default

Output

Example record. The values are illustrative.

{
"query": "security",
"positionId": "FS-26-12345678-DE",
"title": "IT SPECIALIST (INFOSEC)",
"organization": "Forest Service",
"department": "Department of Agriculture",
"url": "https://www.usajobs.gov/job/800123456",
"applyUrl": "https://www.usajobs.gov/job/800123456?PostingChannelID=RESTAPI",
"locations": [{ "city": "Washington, District of Columbia", "state": "District of Columbia", "country": "United States", "latitude": 38.895, "longitude": -77.0366 }],
"locationText": "Washington, District of Columbia",
"jobCategories": [{ "code": "2210", "name": "Information Technology Management" }],
"payPlanGrades": ["GS"],
"lowGrade": "12",
"highGrade": "13",
"promotionPotential": "13",
"salaryMin": 107305,
"salaryMax": 139493,
"salaryInterval": "year",
"salaryIntervalCode": "PA",
"schedule": ["Full-time"],
"appointmentType": ["Permanent"],
"whoMayApply": "United States Citizens",
"hiringPaths": ["public", "vet"],
"openings": "2",
"telework": true,
"remote": false,
"securityClearance": "Secret",
"drugTest": false,
"relocation": false,
"travel": "Occasional travel",
"openedOn": "2026-10-19",
"closesOn": "2026-11-02",
"startsOn": "2026-10-19",
"endsOn": "2026-11-02",
"source": { "name": "USAJOBS Search API (U.S. Office of Personnel Management)", "url": "https://developer.usajobs.gov/" },
"license": { "name": "USAJOBS API Terms of Service (public data)", "url": "https://developer.usajobs.gov/guides/terms-of-service" },
"source_updated_at": "2026-10-19T00:00:00.000Z",
"retrieved_at": "2026-10-24T09:00:00.000Z"
}

A SUMMARY record in the key-value store holds:

  • for each keyword, totalAvailable (openings USAJOBS reported) and pushed (openings the run returned)
  • pushed for the whole run
  • stoppedAtLimit, which is true when the run stopped at the maximum charge

Tips

  • Daily alerts. Schedule the Actor once a day with postedWithinDays set to 1, then send the new rows to Slack, e-mail or a sheet through an Apify integration.
  • Series beat keywords. An occupational series such as 2210 is exact. A keyword matches the words anywhere in the announcement, synonyms included.
  • Compare pay with care. Compare salaryMin and salaryMax only between rows with the same salaryInterval. Hourly and yearly pay mix in one result.
  • Remote openings. A remote opening often has no entry in locations. Read locationText instead.
  • More than 10,000 openings. USAJOBS returns at most 10,000 rows for one search. Split the work by keyword, place or series.
  • Keep maxResults low when you only need the newest rows. You pay per opening returned.
  • Check before you apply. Dates and details can change after a run. Open url on USAJOBS and follow the instructions in the announcement.

Data source and licence

The Actor selects and renames fields and leaves out agency contacts and free-text descriptions; it does not change other values.

A few values change type or wording to make the rows easier to use:

  • pay becomes a number
  • "True" and "False" become booleans
  • dates are cut to the day
  • travel and clearance codes become words

The pay interval code as USAJOBS sends it stays in salaryIntervalCode.

This Actor is independent and is not affiliated with, endorsed by or approved by USAJOBS, the U.S. Office of Personnel Management or any federal agency.

FAQ

Why do I need my own USAJOBS key?

USAJOBS gives a key to each person or organisation, and its terms do not allow sharing it.

Requesting one takes a few minutes and costs nothing. The steps are in the section on getting your key.

Does it return agency contacts or job descriptions?

No. Contact details and free-text descriptions are left out on purpose. The link in url leads to the full announcement on USAJOBS.

Why is telework, remote or drugTest empty?

The value is null when USAJOBS does not send that flag for the opening.

Why did I get fewer openings than maxResults?

Fewer openings matched, an opening was already returned by an earlier keyword, or the search reached the 10,000 rows USAJOBS allows for one search.

The run failed with a message about the key

USAJOBS refused the key or the e-mail address. Check that apiKey is the key USAJOBS sent you and that apiEmail is the e-mail address you registered it with.

Can I limit the search to one agency?

There is no agency filter yet. Filter the results by organization or department, or narrow the search with an occupational series and a location.

Found a problem?

Open an issue in the Issues tab and describe the search that went wrong. Never paste your key into an issue.