Most skills sections are written from memory: you sit down, list everything you have ever touched, and hope the reader is impressed by the length. The reader is not. A hiring manager who sees "Python, Java, C++, SQL, Excel, Leadership, Communication, Team Player, Fast Learner" learns one thing about you — that you could not decide what mattered. And the ATS, which matches literal text, learns even less.
Think of the section as a toolbox, not a trophy shelf. A toolbox holds the tools you actually use, in working order, laid out so you can reach the right one. Nobody is impressed by a toolbox with forty tools, half of them rusty. They are impressed by the one where every tool earns its place.
The short version: take the skills from the specific posting, keep only the ones you can back with evidence, put hard skills in the list and soft skills in your bullets, and stop at about a dozen. The rest of this article is how to do each of those steps without padding, and without underselling yourself either.
Start with the posting, not your memory
Your skills section is not a biography. It is an answer to one document: the posting you are applying for. Open it and pull out every skill it names, in its own words. Split them into two piles:
- Required. Listed under "requirements", "must have", or "essential". These are non-negotiable: if you have them, they go on the resume, in the posting's exact wording.
- Preferred. Listed under "nice to have", "bonus", or "preferred". These are tiebreakers: include the ones you genuinely have, and they move you up the pile.
Now check each one against your actual experience. This is the honest part, and it is where the section earns its trust. If the posting asks for "PostgreSQL" and you have used it on a real project, it goes in. If it asks for "Kubernetes" and you once watched a tutorial, it does not — no matter how much you want the job. A missing requirement is a decision, not a rejection: you can learn it, reframe adjacent experience truthfully, or leave it off. What you cannot do is claim it.
Use the posting's exact terminology. If it says "Microsoft Excel", write "Microsoft Excel", not just "Excel". If it says "customer onboarding", do not paraphrase it as "client success". Keyword matching in an ATS is often literal, and paraphrasing a skill you genuinely have into words the parser does not recognise helps nobody. This is matching the posting's language where it is true, not stuffing: you are naming a real skill in the words the reader used.
Hard skills go in the list; soft skills go in the bullets
This is the distinction most skills sections get wrong. Hard skills — tools, languages, systems, methods, certifications — belong in the list. They are checkable facts: you either know Python or you do not, and the reader can test it. Soft skills — communication, leadership, teamwork, problem-solving — do not belong in the list, because a bare claim proves nothing. Anyone can type "excellent communication skills". It carries exactly as much weight as the paper it is printed on, which is none.
Soft skills earn their place by showing up as evidence in your bullet points. Compare:
Claim vs. evidence
Skills list: "Communication, Leadership, Teamwork"
Bullet: "Ran the weekly stand-up for a team of six and wrote the release notes that cut support questions after each release from about twenty to about five."
The bullet proves all three soft skills at once, with numbers the interviewer can ask about. The list proves nothing, and worse, it spends three slots that could have held real hard skills.
There is one exception. If the posting names a soft skill as a literal requirement — "exceptional written communication required" — include it in the skills section so the keyword matches, and then still prove it in a bullet. The list entry gets you past the filter; the bullet gets you believed.
The three-pass filter
Once you have the posting's skills and an honest read on which ones you have, run the list through three passes.
- Pass one: required and real. Every required skill you genuinely have goes in. No judgement calls here — if the posting requires it and you have it, it is on the page.
- Pass two: preferred and real. Add the preferred skills you genuinely have, most relevant first. These are what separate you from other candidates who merely meet the requirements.
- Pass three: cut everything else. Delete anything the posting did not ask for, anything you cannot evidence, and anything so generic it applies to every applicant for the role. "Microsoft Word" for a non-specialised office role, "internet research", "email communication", "fast learner", "self-motivated", "detail-oriented" — these do not differentiate you. They dilute the skills that do.
What is left is usually 8 to 15 skills. That is the right size. Fewer than five and the section looks thin for most roles; more than fifteen and the reader stops reading. If you are over fifteen after three passes, you are not being rigorous in pass three — or you are applying for a role that genuinely needs a broad stack, in which case group them (next section) so the list stays scannable.
One more cut to consider: drop the skill you are weakest at if it is not required. Every skill on the page is an invitation for the interviewer to ask about it. If you list a skill you barely know, you have handed them the easiest question in the interview and given yourself the hardest answer. The skills section should be a list of conversations you want to have.
Format it so both the parser and the human can read it
Order matters. List your most relevant skills first, not alphabetically and not in the order you learned them. The recruiter reads the first few and skims the rest; the first few should be the ones most directly tied to the role. A data analyst posting should meet "SQL, Python, Tableau" before it meets anything else.
For the format itself, keep it plain:
- One or two lines, comma-separated. "Python · SQL · Tableau · dbt · Airflow · Google BigQuery" parses cleanly and reads fast. Columns, tables, and multi-column layouts risk confusing the parser.
- Group when the list is long. Short group labels help both readers: "Languages: Python, SQL" / "Tools: Tableau, dbt, Airflow" / "Platforms: Google BigQuery, Snowflake". Keep the labels short and the groups to two or three.
- No proficiency bars, stars, or percentages. A row of five dots next to "Python" tells the reader nothing — five dots by whose standard? — and parsers cannot read it. If a skill needs a qualifier, say it in words: "Python (daily use, 3 years)" carries information a bar chart never will.
- No logos, icons, or images. Text in images is invisible to the ATS. Every skill must be plain, selectable text in the body of the resume.
- Be consistent. If you write one skill as "Google BigQuery", do not write another as just "BQ". Consistency reads as care; inconsistency reads as copy-paste.
Placement: put the skills section where the posting puts its weight. If the role is skill-heavy — a technical role where the posting leads with requirements — place it high, right under your summary. If the role is experience-heavy, place it after your work history and let the bullets carry the argument. Either way, the section should be findable in two seconds: a clear heading ("Skills" or "Technical skills") and nothing fancy around it.
The honesty tests
Before a skill goes on the page, it should pass two tests.
Test one: the one-sentence defence. Can you say, in one sentence, where and how you used this skill? "Built the team's weekly reports in Tableau for a year" passes. "I know it" does not. If you cannot name the project, the team, or the outcome, the skill is not yours to list yet — it is yours to learn.
Test two: the interview question. Imagine the interviewer points at the skill and says, "Tell me about a time you used this." If your honest answer starts with "Well, I once…" and trails off, take the skill off. Every entry on the page is a question you are inviting. Only invite questions you can answer.
What about adjacent skills — the ones you have touched but not mastered? The honest wording is "exposure to" or "familiar with", used sparingly and only for preferred skills, never required ones. "Exposure to Kubernetes" tells the reader the truth: you have seen it, you are not claiming to run it. Used once or twice, it signals a learning direction. Used five times, it signals padding. And never dress up exposure as expertise with a synonym: "working knowledge" means you have worked with it, not that you have read about it.
The same work, two skills sections
Before: written from memory
Python, Java, C++, SQL, Excel, HTML, CSS, JavaScript, Communication, Leadership, Team Player, Problem-Solving, Fast Learner, Detail-Oriented, Microsoft Office, Internet Research
Sixteen skills, no priorities, half of them generic, and no way for the reader to tell which ones the posting asked for.
After: written from the posting
Posting asked for: Python, SQL, Tableau, dbt, stakeholder reporting.
Skills: Python · SQL · Tableau · dbt · Airflow · Google BigQuery · Stakeholder reporting
Seven skills. Every one was in the posting or directly supports it. Every one is defensible in one sentence. The soft skill — stakeholder reporting — is in the list because the posting named it, and it is also proven in a bullet about the weekly reports. Nothing is padded; nothing real is missing.
Skills and the ATS
The ATS does not judge your skills. It matches text, and the skills section is the densest patch of matchable text on the page. A posting that asks for "dbt" is more likely to surface a resume that says "dbt" than one that says "data transformation tools". That is the whole ATS effect of the skills section, and it is a side effect of writing it from the posting, not the goal.
Two checks before you send. First, confirm the finished file actually parses: run it through the ATS checker and verify the skills you care about are extracted. If they are not, the formatting is hiding them — a table, a text box, or an image — and now you know what to fix. Second, re-read the list against the posting one last time. Every required skill you have should appear in the posting's own words. If one is missing, it is not a formatting problem; it is a missing line.
The quick checklist
Before you send the resume, run through this list:
- Every skill came from this posting's required or preferred list — not from memory, not from a template.
- Every skill passes the one-sentence defence and the interview-question test.
- Hard skills are in the list; soft skills are proven in bullets, not claimed in the list.
- The list is 8 to 15 skills, most relevant first, in the posting's exact wording.
- No proficiency bars, stars, logos, or text hidden in images. Plain, selectable text throughout.
- Nothing generic survived pass three: no "fast learner", no "Microsoft Word" for a role that assumes it.
- The ATS checker extracts the skills you care about.
If the answer to all seven is yes, your skills section is doing its job: telling the reader, in one glance, that you have the tools for this specific job — and that you can prove it.
The bottom line
Listing skills is not an inventory of everything you have ever touched. It is a short, honest answer to one question: does this person have the tools for this job? Take the skills from the posting, keep only the ones you can prove, put hard skills in the list and soft skills in your bullets, and stop when the list is done. A toolbox with seven tools you trust beats a shelf of sixteen you cannot defend — and the interviewer can tell the difference.
