11 min read
You're staring at a USAJOBS employment block that asks for hours and salary before it asks for your proudest bullet. If you're coming from corporate resumes, you'll want to type 40 and your current W-2. That combo is how qualified people get sent back for metadata fixes while less experienced applicants sail through with SF-50 numbers copied cleanly.
The fields aren't vanity. Certifiers prorate specialized experience from hours and check whether your past pay band plausibly matches the series you're targeting. Check your resume for free after you export, mostly to confirm employer strips and hour lines survived paste, not because a corporate ATS score replaces federal builder rules.
Job searching is brutal enough without redoing a five-page file because salary was typed as take-home pay. Below: why annualized hours beat weekly guesses, salary wording that matches GS language, the exceptions part-timers and seasonals hit, and a copy-paste block you can run job by job tonight. You won't fix referral with prettier bullets alone if the hour math is wrong.
Quick wins
- Pull SF-50, W-2, or offer letter base for each block before you touch USAJOBS.
- Annualize hours: average weekly hours times weeks worked in that appointment year.
- Match salary labels: GS grade/step for federal rows; annual base for private rows.
Why hours and salary sit above your best bullet
Federal hiring rates experience in time and grade context, not just duty verbs. A bullet that says budget analysis tells a certifier what you did. Hours tell them how much of your week that was while you did it. Salary tells them whether your past compensation aligns with the band on the announcement or if you're jumping two grades without proof.
Private-sector uploads hide that metadata in HR systems. USAJOBS forces it beside each employer strip so a human can defend your rating if challenged. When hours are wrong, specialized experience math breaks. When salary reads like a negotiation target instead of historical base pay, reviewers assume you didn't read the instructions.
This won't fix applying to a GS-13 req with six months of intern hours. It stops solid candidates from losing referral because they typed corporate totals into fields built for proration and GS vocabulary.
And if you've only ever seen "full time" on a LinkedIn profile, the builder's annual hour total will feel foreign. That friction is normal. The fix is arithmetic tied to pay stubs, not another adjective in bullet three.
OPM publishes pay tables by locality. Use them when you need to sanity-check whether your old GS step matches the number you're about to type, not when you're inventing a future salary.
For how long the surrounding file should run once those fields are filled, see federal resume length what's normal and why . Length is a side effect of complete blocks, not a substitute for correct hours.
Federal resume work hours: annualize the role, don't guess the week
Start from records, not memory. For each appointment, note Month Year start and end, average hours per week while you held it, and how many weeks you worked that calendar year in that appointment. Multiply weekly average by weeks worked to get the annualized total the builder expects beside that job.
Before: Full-time analyst row lists 40 hours per week with no annual total; certifier cannot tell if you worked three months or three years at that cadence.
After: Same row lists 40 hours per week for 52 weeks in 2023 in that appointment, or 1,560 annual hours, matching W-2 dates Jan 2023 to Dec 2023.
Salary on the same row follows the pay you actually received during those dates. Federal rows: copy grade, step, and locality from the SF-50 effective during that stretch. Private rows: annual base salary from offer letter or W-2 box 1 adjusted only if the announcement tells you to exclude bonuses.
Before: Salary field shows $145,000 because that's today's market target for a lead role.
After: Salary field shows GS-11 step 5, Denver locality, matching SF-50 effective Mar 2021, or $72,400 annual base for a 2021 private analyst role per offer letter.
Part-time and shared appointments
Part-time work prorates specialized experience. If you averaged 24 hours per week for 52 weeks, your annualized hours are 1,248, not 2,080. Do not bump to 40 to "look full time." Certifiers compare hours to questionnaire thresholds.
Before: Two concurrent part-time jobs each list 40 hours per week; totals imply 80-hour weeks.
After: Job A lists 20 hours per week, Job B lists 24 hours per week, each with its own annual total and salary for that employer only.
Edge case: promotion mid-year
Split into two blocks when grade or step changes mid appointment if the builder treats them separately. Each block gets its own hours for the months at that grade and its own SF-50 salary. One blended salary across a promotion forces certifiers to guess which step you held during specialized duties.
Edge case: military or uniformed service
Use the service's documented duty hours and pay grade fields the announcement accepts. Translate specialty titles into civilian keywords in bullets, but keep hours and pay fields in the format USAJOBS labels for that service block. Mixing civilian salary guesses with military time breaks proration.
Copy-paste block: hours and salary per job
Employer | City, ST | Month Year to Month Year
Average hours per week: __ (from timesheets or SF-50)
Weeks worked this year in this appointment: __
Annual hours (weekly × weeks): __
Salary: GS __ step __ + locality OR $____ annual base (offer/W-2)
Supervisor name + phone
Bullet 1 ties specialized experience to announcement keywords
Example for a 0343 analyst block: City agency | Denver, CO | Jan 2020 to Present | 40 hrs/wk × 52 wks = 2,080 annual hrs | GS-12 step 3 Denver | Supervisor Jane Doe, 303-555-0100 | Bullet 1 names Oracle obligation reporting tied to questionnaire phrase.
I've screened USAJOBS exports where bullet one was strong and annual hours were copied from a blog saying always type 2,080. The applicant worked 32-hour weeks on a term appointment. Referral stalled until hours matched pay stubs.
When bullets are done but salary still feels fuzzy, generate a cover letter that names one specialized experience line. Cover letters don't replace hour fields, but they help when remarks allow you to explain a complex appointment split.
Where guesses on hours and salary break referral
Typing 40 because you're "basically full time." Seasonals, term limits, and leave without pay weeks drop annual totals. Fix the math, not the adjectives in bullet four.
Pasting current private compensation onto old jobs. Each block needs pay for that period. Inflation-adjusted storytelling belongs in remarks only when allowed.
Using hourly wage in a field labeled annual salary without converting. If you earned $38 per hour at 30 hours per week for 50 weeks, annual base is $57,000, not $38.
Duplicating the same employer with conflicting hours. Two blocks for one agency with different annual totals trigger manual review. Merge or split by appointment type with consistent records.
Leaving salary blank when the builder marks it required. Incomplete metadata stops before certifiers read bullet one.
Putting total compensation with bonus in a base salary field. Unless the announcement asks for full comp, base keeps you aligned with GS comparisons.
Edge case: unpaid internships. Hours may still count for specialized experience when documented; salary may be zero with explanation in remarks if the form allows. Do not invent a dollar figure to avoid looking unpaid.
Edge case: contractor pay without grade. Use annual base from the contract vendor's W-2 and spell the employer as the agency name the announcement expects, not your staffing firm's internal label if the questionnaire distinguishes them.
Tables and sidebars in uploaded PDFs can detach hour lines from employer names on import. Read resume formatting errors that break ATS parsing before you blame USAJOBS for scrambled metadata.
Check paste before you certify the application
Export or print preview each employment block after paste. Confirm annual hours sit next to the correct employer and salary strings match SF-50 or W-2 base. Run HireFlow's free ATS resume checker on any upload PDF to see whether columns survived as plain text.
If your master file is still a two-column corporate template, build your resume in a single-column federal master before you copy blocks into USAJOBS. You're protecting hour and salary rows from drifting away from job titles on import.
Do this now: Open one target announcement, pull records for your last three roles, fill annual hours and base salary per block, then preview the builder before you hit submit.
What to do on the next USAJOBS req
Federal Resume Work Hours and Salary Fields aren't optional flavor text. Annualized hours per role and base pay tied to those dates let certifiers prorate experience and defend grade choices. Weekly guesses and private-sector wish numbers slow you down even when bullets are strong.
Tonight: stack SF-50s, W-2s, or offer letters for your last three employers, run the copy-paste block once per role, preview the builder, then submit one clean application before you batch five more with sloppy metadata.
- Calculate annual hours from weekly average times weeks worked.
- Match salary wording to GS grade and step or historical base pay.
- Split promotions and overlapping part-time jobs instead of double counting.
- Preview paste so hours stay attached to the right employer strip.
When metadata is clean and referral still stalls, look at specialized experience wording and assessment scores next. Hours and salary fix incomplete files; they don't override every gate on the req.
Save a federal master with hours and salary filled once per employer. Tailor bullets per announcement instead of re-guessing 40-hour weeks on every apply.
Read more
Frequently asked questions
Use the annualized hours the builder asks for per employment block: average weekly hours multiplied across the weeks you actually worked in that role, expressed as the total the form labels Hours worked per year or equivalent. Do not type 40 because it sounds full time when you averaged 24. Certifiers reconcile hours to experience claims and part-time proration.
Report the base pay you earned during that job period, not a target GS salary for the req you want. If you were federal before, mirror pay grade and step language from your SF-50. If you were private sector, use annual base salary at the time and avoid bonus-heavy totals unless the announcement asks for full compensation. Match the field label, not your dream band.
When the builder marks salary required, blank fields stall referral. Enter base pay tied to that role's dates. If you truly cannot reconstruct a number, use official records first, then estimate from offer letter base only, and note in remarks only when the announcement allows. Skipping salary to hide a low private wage still reads as incomplete metadata.
Annualize only the weeks you worked. A seasonal park aide might show 32 hours per week for 16 weeks, not 40 for the full calendar year. Intermittent on-call roles use the same rule: average weekly hours during active periods, then multiply by weeks worked that year in that appointment. Split appointments get separate blocks with their own totals.
Builders and certifiers use hours to prorate specialized experience and salary to sanity-check grade alignment. Wild weekly guesses that do not match annual totals flag manual review. Inconsistent salary across duplicate blocks for the same employer slows rating. Clean metadata lets humans spend time on questionnaire proof, not arithmetic fixes.
