DEV Community

Your Evenings Data
Your Evenings Data

Posted on Edited on

Five things to know before you build on the USAJOBS Search API

Article type: Explanation

Prerequisites: None to read it. To build on the API yourself, you need a free USAJOBS API key.

Tested on: 1 November 2026 (the five points, checked against the live Search API; the Actor input example was not run)

USAJOBS publishes an official Search API (data.usajobs.gov/api/Search) for US federal job announcements. We built a scheduled job feed on it, and these are the details that shaped the code. Disclosure: the hosted version at the end is ours, and we charge for it.

1. Pay comes with an interval code

Each pay range comes with a RateIntervalCode: PA for per year, PH for per hour, plus PD, BW and PM for daily, biweekly and monthly, and PW for piece work. In USAJOBS's own code list, WC means without compensation, so there's no pay to convert. To compare jobs on salary, convert everything to a yearly figure. We use 2,087 hours for a year of hourly pay (the federal standard), 260 days, 26 pay periods or 12 months. Filter on the top of the range, or you'll drop hourly jobs that pay well.

2. One query stops at 10,000 results

The API won't page past 10,000 results for one query. A broad search such as "all jobs posted this month" can hit that limit without telling you. Narrow it by location, agency, occupational series or a posted-within window, and log it whenever a query reaches the limit, so a short result is never mistaken for a complete one.

3. Ask for public jobs explicitly

Many announcements are open only to current federal employees or particular groups. If your users are the general public, request WhoMayApply=Public.

4. Codes need a lookup table

Schedule, appointment, service type and travel come back as codes. Map them to words (Full-time, Permanent, Competitive, Occasional travel) before anyone downstream sees them, or every consumer ends up writing their own mapping.

5. Announcements contain contact details

Rows can carry an agency contact email and phone number, and the announcement text can include more of them, sometimes with a named person. Unless your use case needs them, drop the contact fields and mask emails and phone numbers in free text. Don't store full announcement text by default.

The hosted version (disclosure: we built it)

Our Apify Actor, Government Jobs API: USAJOBS, does all five for you:

  • Yearly pay is worked out for every row with a standard pay interval, and the salary filter runs before you're charged.
  • A free scan_limit row tells you when a search hit the 10,000 limit.
  • Public jobs only (with the default input), with codes turned into words.
  • Contact details are dropped and masked by default.
  • No API key is needed on your side.
  • Monitor mode returns only jobs it hasn't returned before.
  • Pricing: $0.002 per job, plus $0.01 for a monitor run that finds new jobs (base prices; higher Apify plans pay less).
{ "keywords": ["data scientist"], "locations": ["Washington, District of Columbia"], "radiusMiles": 25, "postedWithinDays": 14, "minSalaryUsd": 100000 }
Enter fullscreen mode Exit fullscreen mode

Not an official USAJOBS or OPM product, and not endorsed by any federal agency. Always check the official announcement on usajobs.gov before you apply.

Top comments (0)