Open your resume and look at the last four years. If the answer is four months at one company, a seven-month contract at another, three weeks of nothing, then a nine-month assignment through an agency whose name is not the name on the building, you already know what you are worried about. It reads like someone who cannot hold a job. You know it was one continuous run of work, most of it back to back, some of it your best work. The page does not say that.
This is a presentation problem with a structural fix, and it is worth being precise about what is going wrong, because the usual advice covers only half of it. Two readers see your history. The first is a parser, which builds a table of employer, title, start date and end date and does not care what you meant. The second is a person scanning that table for a pattern. A fragmented history fails with the first for reasons of layout, and with the second for reasons of framing. You have to fix both, and the fixes are different.
Short stints are ordinary now, and the official numbers say so
It helps to know the ground you are standing on. The US Bureau of Labor Statistics runs a survey specifically on this, the Contingent and Alternative Employment Arrangements supplement, and its most recent results come from July 2023, published in November 2024. On their sole or main job, 11.9 million people were independent contractors, 7.4% of total employment, up from 6.9% in the previous survey in May 2017. 6.9 million held contingent jobs, meaning work they did not expect to last, at 4.3% of workers, up from 3.8%.
One number in that release runs the other way and is worth knowing if you came through an agency: temporary help agency workers were 945,000, or 0.6% of total employment, down from 0.9% in 2017. Agency work is a smaller share of the picture than it was, and independent contracting is a larger one. If your history is a run of agency assignments, you are in a genuinely smaller group than the internet's tone suggests, which is a reason to explain the arrangement on the page rather than assume the reader recognises it.
In the UK the equivalent figure is published monthly. The ONS series LFS: Temporary employees put the count at 1.61 million in the three months to May 2026, seasonally adjusted. So this is a normal way to work in both markets. It is still on you to make it legible, because a screener reading fast does not reconstruct your intent from a list of dates.
What a parser does with a fragmented history
An applicant tracking system does not read your work history as prose. It walks the document top to bottom looking for repeating units, and for each one it tries to fill four fields: employer, job title, start date, end date. Everything downstream depends on those four. Total years of experience, the recency filter a recruiter sets, the search that pulls up candidates who held a title in the last two years: all of it is computed from that table, not from your bullets.
That is why fragmented histories break in a specific way rather than a vague one. Three failures account for most of it:
- The client's name sits where the employer's should be. You wrote the household name you worked at, because that is the impressive one. Your reference and your payroll record say the agency. The two disagree, and the disagreement surfaces at verification rather than at application.
- Sub-entries have no dates of their own. An agency heading with a date range, then four assignments listed underneath with nothing but client names, gives the parser one job of four years and loses every title you held inside it.
- The grouping is built out of a table or a nested column. Visually it reads as a hierarchy. Structurally it is cells, and cells are the thing parsers most reliably scramble. The entries come out interleaved, or in the wrong order, or merged into one string.
None of that is exotic. It is the ordinary result of formatting a complicated history the way you would if you were designing it to be looked at rather than read. The good news is that the fix costs you nothing visually.
Three shapes, and which one your history is
Almost every contract history is one of three shapes, or a mix of two of them. Work out which before you touch the formatting, because the right answer to "whose name goes on the employer line" is different in each.
Shape one: one or two contracts inside a mostly permanent history
This is the easy case and it is over-thought constantly. List the role exactly as you would a permanent one, and put the word Contract on the title line: Financial Analyst (Contract), or Financial Analyst, 9-month fixed term. The employer is the company you actually worked at if they engaged you directly, and the agency if they engaged you through one.
That single word does a surprising amount of work. Without it, an eight-month stay is an unexplained departure and the reader supplies their own explanation. With it, the end date is a contract expiring, which is the most boring possible reason to leave a job and therefore the best one.
Shape two: a run of assignments through one agency
This is the shape that goes wrong. The agency employed you, paid you and holds your record, so the agency is the employer heading, with the continuous span across all assignments: Kelly Services, Jan 2022 to Present. Underneath it, one line per assignment carrying the title, the client and that assignment's own dates, then the bullets for the ones worth expanding.
The reason to do it this way is not tidiness. It converts what a screener reads as five employers into one employer of four years' standing, which is a genuinely different first impression, and it does it without misrepresenting anything. Every client and every date is still on the page and still checkable.
Shape three: independent contracting or freelancing
If you invoiced clients yourself with no agency in between, you are the employer. Use your own trading name if you have one and your own name if you do not, put your actual function as the title (Independent Marketing Consultant, not Freelancer), give it a single continuous date range, and name the clients in the bullets. Do not create a separate work-history entry per client. That is the fastest way to turn two solid years into eleven jobs.
The grouping advice everyone gives, and the one place it breaks
"Group your assignments under the agency" is the standard advice and it is correct. What almost nobody says is how to build the group, and that is where the advice quietly stops working, because the natural way to build a visual hierarchy is the one thing an ATS handles worst.
The version that breaks: an agency heading, then a two-column table or an indented block where the client names run down the left and the dates down the right, with the assignments' own titles set smaller so they read as subordinate. It looks right. Fed to a parser, the cells come apart and the dates detach from the clients they belong to.
The version that works looks nearly identical and is built entirely out of ordinary text lines:
Adecco, 2022–Present, followed by a two-column table whose left cells read Baxter Foods and Halewood Logistics and whose right cells read Jan 22–Aug 22 and Sep 22–Jul 24, with the job titles set smaller underneath.
Adecco (staffing agency), Jan 2022 to Present. Then one text line per assignment: “QA Technician, Baxter Foods — Jan 2022 to Aug 2022”, “QA Team Lead, Halewood Logistics — Sep 2022 to Jul 2024”.
Same information, same visual hierarchy once it is typeset, completely different parse. Each assignment line carries its own title, its own client and its own dates as running text, so if the parser treats them as separate records they are complete records, and if it treats them as one it still has the agency and the full span. There is no arrangement of that content that produces nonsense.
Two smaller rules go with it. Name the agency as an agency, in brackets, the first time it appears, because half of them are named things like Impellam and mean nothing to a reader outside the industry. And do not list the same client twice under two different agencies without saying so, since that reads as a duplicated entry rather than as what it usually is, which is the client moving their contract from one supplier to another and keeping you.
Dates, and the gaps between contracts
Months and years, everywhere, on every line. Years alone (2022–2023) is a common instinct with contract work because it makes the churn look calmer, and it backfires: it reads as concealment to a person, and it gives a parser a twelve-month uncertainty on both ends of every role. If your work history is already the thing being questioned, ambiguity is the last thing you want in it.
Then there is the question underneath the question. Contract work produces short gaps between assignments as a matter of routine, and people either panic about them or stretch a date to cover them. Neither is right. A few weeks between contracts is invisible and needs no explanation. A stretched date is a discrepancy against a payroll record, which is the one category of resume problem that can survive an interview and kill an offer.
- Under about two months: say nothing. Nobody counts weeks between contracts, and the agency heading with a continuous span usually absorbs it anyway.
- Two to six months: one clause is enough, and it can live in the assignment line: “between assignments, completed AWS Solutions Architect certification”.
- Longer than six months: treat it as an actual employment gap and give it a line of its own rather than hoping the reader does not subtract. We wrote a separate guide to gaps that covers the wording.
Contract bullets have a job that permanent bullets do not
Here is the part that turns a defensible history into a persuasive one, and it is almost always missing. A permanent employee's bullets describe an ongoing responsibility. A contractor was brought in for a reason, and that reason is the most interesting thing about the engagement. Most contract resumes throw it away and describe the duties instead, which makes eight months of specialist work read like a temporary version of a normal job.
Write the engagement, not the tasks. Three questions produce it:
- Why did they need someone? Backfill for a maternity leave, a system going live, a backlog, an audit finding, a team that had lost two people at once. This is the frame the whole entry hangs on.
- What state was it in when you arrived, and when you left? Contract work has a start and an end, so it comes with a before and after built in. Use it. This is the natural home for your one strong number.
- What did you hand over? Documentation, a trained permanent hire, a process that survived you. Handover is the quiet signal that you were the kind of contractor a client re-books, and clients re-booking you is the strongest thing a fragmented history can say.
Responsible for accounts payable processing and vendor queries during a temporary assignment.
Brought in to clear a 3,200-invoice AP backlog after two resignations; cleared it in 11 weeks, cut the average approval cycle from 9 days to 3, and documented the process for the two permanent hires who took it over.
The second version is a longer sentence and a much shorter argument. It says why you were there, what shape the problem was in, what changed, and that it kept working after you left. A screener who reads that does not think about the eight-month tenure at all, because the tenure has been explained by the first six words.
One more, if a client brought you back: say so. “Re-engaged twice by the same client across three years” is worth more than any adjective you could put in a summary, and it is the single most useful line available to someone whose page is full of short entries.
The same history, five countries
The structure travels. The vocabulary does not, and using the wrong word for the arrangement makes an otherwise clear history read as confused.
United States
The distinction that matters is whether you were a W-2 employee of a staffing agency or an independent contractor invoicing on a 1099. Agency employment goes under the agency, per shape two. Independent work goes under your own name, per shape three. Do not describe yourself as a consultant if you were on an agency's payroll: it is the arrangement, not the seniority, and the payroll record disagrees with you.
United Kingdom
The UK adds a fourth party, and it confuses more resumes than anything else in this piece. GOV.UK's guidance on working through an umbrella company describes it as “a business often used by recruitment agencies to pay temporary workers” which “employs you and pays your wages through PAYE” but “does not find temporary work for you”. So there can be four names in the chain: you, the umbrella company that employed you, the recruitment agency that found the work, and the client whose building you were in.
Put the agency on the employer heading, because that is the relationship a reader understands and the one that produced the run of assignments. Name the umbrella only if you are asked, on a reference form or a background check, where it is the legally correct answer. A resume that leads with the umbrella company is describing its payroll arrangement to a hiring manager who was asking what it did.
Australia and New Zealand
The local term is labour hire, and it works exactly like shape two: the labour hire firm is the employer, the host is the client, and both belong on the page. Casual employment is a separate thing again and is worth naming as casual where that is what it was, because in these markets it is a recognised category with its own conditions rather than a euphemism for insecure work. Several Australian states license labour hire providers, so the firm's name is often verifiable in a way the client relationship is not.
Canada
Same structure as the US, with one addition worth knowing in Quebec and in the trades: where a role carries a certification or a licence, the certificate is the strongest line in an otherwise short entry, and it belongs near the top rather than in a certifications block at the bottom. A twelve-month contract read alongside a current ticket is a specialist. The same twelve months alone is a short job.
A checklist before you send it
Ten minutes, once, and it applies to every application after it.
- Name the real employer on every heading. Agency, umbrella, labour hire firm or yourself, whichever would answer the verification call.
- Group assignments under one agency heading with the continuous span at the top, and give every assignment underneath its own client and its own months.
- Rebuild any grouping made of tables or columns as plain text lines. This is the change that moves your parse from unreliable to reliable.
- Put “Contract” or “Fixed term” on the title line of every fixed-term role, so no ending has to be guessed at.
- Convert year-only dates to month and year, everywhere, including the ones you shortened deliberately.
- Open each engagement with why they needed someone, and close the strongest one with what you handed over.
- Mark repeat engagements. Re-booked by the same client is the best evidence a contract history contains.
- Read the block back cold and count what it looks like at a glance: one employer of four years, or six employers of eight months.
See how a machine reads your work history
The free ATS score check pulls the employer, title and dates out of your file the way an employer's system does, so you can see whether your grouped assignments survived the parse. Free to run.
If it helps to see a full history annotated line by line, our automotive technician resume sample walks through one whose fixed-term fleet contract sits between two permanent shop jobs, and pulling keywords from the posting covers the other half of the ATS problem. Both are more useful once the structure underneath is right, which is what this page was about.
The last thing worth saying is the thing people find hardest to believe about their own resume. A contract history is not a weaker version of a permanent one. It is a record of being hired repeatedly, by different organisations, to do a specific job at a specific time, which is a claim a permanent history cannot make at all. It just has to be written so that is what a reader sees.
Frequently asked questions
Should you put contract work on your resume?
Yes, and leaving it off causes the problem people are trying to avoid. An omitted contract creates a gap in your dates, and dates are the part of your resume most likely to be checked against a payroll or tax record. Include every engagement, label it as contract or fixed term on the title line, and group short assignments under the agency that employed you so the page reads as continuous work rather than as a list of short jobs.
How do you list temp agency work on a resume?
Put the staffing agency on the employer line with one continuous date range covering all your assignments, then list each assignment underneath with its own job title, the client's name and its own months. Write those lines as ordinary text rather than as a table or a two-column block, because tables are the layout an applicant tracking system is most likely to scramble. That way five short entries read as one employer you worked for over several years.
Do you put the staffing agency or the client company as the employer?
The agency, if the agency employed and paid you. The client's name still belongs on the page, on the assignment line beneath the agency, because that is where the work actually happened and it is often the recognisable name. Leading with the client and omitting the agency creates a mismatch with your payroll record, which surfaces later at employment verification when it is much more expensive to explain.
Does contract work look bad to employers?
Unexplained short tenures look bad. Contract work that is labelled as contract does not, because the ending has an obvious cause. The US Bureau of Labor Statistics measured 11.9 million independent contractors on their main job in July 2023, 7.4% of total employment, so this is a mainstream way to work. What changes the impression is labelling the arrangement, grouping agency assignments under one employer, and showing repeat engagements by the same client.
How do you list freelance work on a resume?
As one entry, not one per client. Use your trading name or your own name as the employer, a title that says what you do rather than the word freelancer, and a single continuous date range from your first paid engagement to now. Name the clients inside the bullets. Splitting freelance work into a separate entry per client is the most common way people turn two productive years into what looks like a dozen abandoned jobs.
How do you list an umbrella company on a CV?
Usually you do not put it on the employer line. GOV.UK describes an umbrella company as a business often used by recruitment agencies to pay temporary workers, which employs you and pays your wages through PAYE but does not find work for you. The relationship a hiring manager understands is the agency and the client, so lead with those. Give the umbrella company's name when a reference form or background check asks who employed you, where it is the legally correct answer.
How do you explain gaps between contracts?
By length. Under about two months, say nothing, and a grouped agency entry with a continuous span usually covers it anyway. Two to six months takes one clause, such as a certification you completed between assignments. Longer than six months should be treated as a real employment gap with a line of its own. What you should never do is extend a date to cover a gap, because employment dates are checkable and a mismatch is discovered late.
Do short contracts hurt your ATS score?
The number of entries does not, by itself. What hurts is the formatting people reach for to make many entries look tidy: nested tables, two-column assignment blocks, and sub-entries with no dates of their own. Those produce records with missing employers or missing dates, and a system computing your years of experience from those fields gets the wrong answer. Plain text lines, each carrying title, client and months, parse reliably no matter how many of them there are.