8 min read
Your contract years might be the strongest part of the file, but the employer line still says the staffing agency, or four clients sit under one Consulting header with no dates. That's not a keyword problem. It's a header problem, and it shows up in the first ten seconds of a Greenhouse review.
You can't fix that with a prettier template if the parser never tied bullets to the right employer. And you won't get a callback when the skim thinks you hopped every quarter without delivering anything.
Before you rewrite bullets, check your resume for free on the same export you'll upload. You're checking whether Experience rows imported with employers and dates intact, not whether the PDF looks pretty on your phone.
Tonight you'll pick one contract period, fix the three-line header, and paste the block into plain text. How to list contract work so recruiters don't get confused is mostly about making each client look like a normal job row with honest dates, not a side project buried at the bottom.
Quick wins
- Move the client name to line one; tuck the agency in parentheses if needed.
- End finished contracts on a real month and year, not Present.
- Give each client its own row instead of one vague Freelance lump.
What recruiters misread on contract rows
Contract work is normal in tech, clinical, creative, and project finance roles. Recruiters still scan for continuity: who you worked for, what you did, and whether the dates line up with the posting's seniority band.
The agency-as-employer trap. When Apex Staffing owns line one, the skim assumes you were a recruiter, not an engineer at the bank client. Client first fixes the story in one line.
The invisible client pile. A single Freelance Consulting entry with no client names forces the reader to open the attachment or guess. Parsers often dump that block below Skills, so keyword match never ties to tenure.
Present on a closed contract. Present belongs on active work only. A finished March 2024 gig that still says Present looks like overlap or dishonesty when the next row starts in April.
Title-only Contractor. Contractor without a function tells ATS and humans nothing about fit. Contract Business Analyst or Freelance UX Designer pairs employment type with the req title family.
If you're also listing solo client work, read how to put self-employment on a resume the right way for LLC and 1099 rows that still belong in Experience, not a Projects footer.
NDA clients still need a shape. When you cannot print the logo, use industry and size: Contract Product Manager, Fortune 500 payments firm | April 2024 to July 2024. The reader gets sector context without a name violation.
Extensions count as one row. If the client renewed you three times in one year, keep one employer line with the full span and note phase work in bullets instead of three duplicate headers that look like job hopping.
Before and after contract listing examples
Copy the shape, swap your clients, and keep Month Year on every line. These are illustration blocks, not claims about any real employer.
Staffing agency placement
Before: Apex Staffing, Software Engineer | January 2024 to March 2024
After: Northwind Bank, Software Engineer (Contract, W2 via Apex Staffing) | January 2024 to March 2024
Add one bullet that names the client's stack or deliverable so the row matches the posting: shipped API rate limiting in Java for retail payments, cut timeout errors in staging by a measurable margin in QA logs.
Several short clients in one year
Before: Freelance Marketing Consultant | 2023
After: Separate rows, each with dates:
Brightline SaaS, Content Strategist (Contract) | September 2023 to December 2023
Harbor Manufacturing, Marketing Coordinator (Contract) | May 2023 to August 2023
Before: One bullet says assisted with campaigns.
After: Each row carries one proof bullet with a deliverable, channel, or asset count the req repeats.
Concurrent contract plus full-time job
Before: Two rows share January 2024 to June 2024 with no explanation.
After: Keep both date ranges honest and add a short note on the part-time line: Evenings and weekends alongside full-time role.
Overlap with context reads planned. Identical ranges with different employers and no note reads like a duplicate import error.
How to list contract work on one Experience row
When title and function match across gigs, you may group under one header with sub-lines per client. Do not use this to hide gaps.
Copy-paste skeleton:
Contract Data Analyst, Select Clients | 2022 to 2024
City Utilities (Contract) | March 2023 to August 2023
Built monthly variance dashboards in Power BI for finance stakeholders.
Regional Health Co-op (Contract) | January 2022 to February 2023
Standardized SQL extracts for quality reporting; documented refresh cadence.
I've screened Workday profiles where the candidate listed only the payroll vendor and three strong client bullets never attached to an employer field. The fix was moving Northwind onto line one, not adding more keywords to Skills.
Finished gig still marked Present
Before: UX Designer (Contract), Lattice Apps | June 2023 to Present (project ended October 2023).
After: UX Designer (Contract), Lattice Apps | June 2023 to October 2023
Then list the next contract or a dated gap line if you took time between clients. Recruiters map Present to still employed at that site.
Direct client W2 contract (no agency)
Before: Acme Robotics, Engineer | 2023 (no months, no contract tag on a fixed-term hire).
After: Acme Robotics, Manufacturing Engineer (Contract) | March 2023 to November 2023
You do not need via Agency when payroll was the client. The Contract tag still signals the role was term-limited, which helps recruiters compare you to permanent reqs without guessing.
Bullet proof for short gigs
Before: Supported engineering team on various tasks.
After: Closed 14 production defects in Jira for the checkout service; paired with QA on release notes for two sprint cutovers.
Short tenure needs one concrete artifact per row: shipped feature, audit result, training count, or system you touched. That is how contract work earns a second look instead of a shrug.
Parser habits overlap with resume formatting errors that break ATS parsing when dates sit in side columns or tables. Flatten before you debate contract labels.
Labels that look fine but fail the skim
- Using Consultant alone with no function or client.
- Mixing Jan 2024, January 2024, and 01/2024 on different rows.
- Dropping a two-month contract to avoid looking jumpy while leaving a blank season.
- Stuffing contract bullets into Projects while W2 jobs sit in Experience.
- Repeating the same client twice because the agency changed mid-assignment without a note.
Before: You hope the cover letter explains the agency.
After: The Experience row states client, contract type, and dates so the attachment is optional.
Many short W2 stints follow different rules. See how to explain multiple short jobs in the US without panic when the issue is tenure pattern, not contract labeling.
Confirm rows before you tailor keywords
Tailor bullets only after each contract row shows the client and dates in plain text or the portal preview.
Check your resume for free on the file you plan to submit. You're validating Experience structure, not decorating the layout.
Build your resume if you need a single-column template that keeps one row per client without text boxes splitting dates from employers.
Make each contract read like a job, not a footnote
Recruiters don't need an essay about the gig economy. They need a row that answers client, title, contract type, and dates in one skim. Fix those headers tonight and your proof bullets finally attach to the right employer in ATS search.
Start with the messiest contract year on your file. Rewrite one before/after pair, paste into plain text, and only then tune keywords for the next posting.
Need a short note that frames contract work as deliberate? Use the cover letter generator with the same client names and dates as the repaired Experience section.
Read more
Frequently asked questions
Lead with the client company where you did the work, your functional title, and Month Year dates. Put the agency on the same line in parentheses only when payroll ran through them, such as Data Analyst (Contract, W2 via Apex Staffing), Northwind Bank. Recruiters screen on client scope first. Payroll detail matters when onboarding paperwork differs.
Give each client its own Experience row with its own dates and at least one outcome bullet. Do not merge unrelated clients into one Freelance block with no dates. Reverse chronological order still applies. Short tenure is normal in contract markets; missing months between honest end dates raise more questions than a three-month row.
Label any role that was not a standard full-time hire with the client. Use Contract, Freelance, or Independent contractor once in the title or employer line and keep the same word family across the file. Direct W2 employment with the client does not need a contract tag. Mixed files should not hide W2 jobs inside a generic Consulting header.
Parsers struggle with tables and missing dates more than the word Contract. Keep Month Year on one line, avoid special characters in employer names, and paste your export into plain text before you upload. If Experience imports empty, fix layout first. Contract clarity helps humans in the second scan after the row survives import.
