The skills section is the highest-density ATS keyword real estate on your entire resume. It is also where most candidates lose points through bad formatting. Jobscan's 2024 ATS testing found that 30% of resumes are downgraded by skill bars, icons, multi-column layouts, or tables that parsers cannot read cleanly. This guide shows exactly how to list skills on a resume: where to put the section, how to format it, how to group skills, how many to include, and how to defend them in an interview.
Where to Place the Skills Section
The right placement depends on your experience level and the role you are targeting. The rule of thumb: the more a role depends on specific technical tools, the higher your skills section should be.
High on page 1 (below summary)
- Technical roles (engineer, data, devops, security)
- Early-career candidates with thin work history
- Career changers who need to signal new skills up front
- Any role with a long explicit tools list in the JD
After experience (end of resume)
- Senior and executive roles where experience leads the case
- Roles where soft skills matter more than specific tools
- General management and leadership positions
- Consulting, legal, and advisory roles
The 3 ATS-Safe Formats (and 3 That Break Parsing)
Format is where most skills sections fail. Graphical elements look impressive in a template preview and get destroyed by enterprise ATS parsers.
Format 1: Grouped labeled lists (best)
Group skills by subcategory (Languages, Frameworks, Tools, Certifications). Each line is a label plus a comma-separated list. This is the pattern Workday and Greenhouse parsers read with the highest accuracy.
TECHNICAL SKILLS Languages: Python, JavaScript, SQL, Go Frameworks: React, Next.js, Django, FastAPI Cloud: AWS (EC2, S3, Lambda), Docker, Kubernetes Tools: Git, GitHub Actions, Terraform, Datadog
Format 2: Comma-separated single line (good)
For shorter skills sections (under 15 items), a single comma-separated line works. Avoid bullets or pipes that can confuse parsers.
SKILLS Python, SQL, Tableau, Looker, A/B testing, cohort analysis, dbt, GA4, Amplitude, Excel (advanced)
Format 3: Two-column text (acceptable)
True text columns (created with tabs, not tables) parse correctly on most modern ATS systems. Keep columns simple and avoid inserting images.
SKILLS Python AWS JavaScript Docker SQL Kubernetes React Terraform
Avoid: Skill bars
Proficiency bars and percentage meters are parsed as empty text by 30% of ATS systems. The bar image does not contain the skill name.
Avoid: Star ratings
"Python ★★★★☆" is cute but meaningless. Recruiters ignore the rating. Parsers drop it entirely.
Avoid: Skill icons
Icons representing Python or AWS look modern but are images with no alt text. Parsers see nothing.
How Many Skills to List
Too few and you miss keyword matches; too many and you trip density filters. The sweet spot is 12 to 20 skills grouped into 3 to 5 subcategories. Workday's 2024 documentation explicitly flags "excessive keyword density" as a downranking signal, and Greenhouse's parsing rules discount skill sections that exceed 25 unique items.
What Order to List Skills In
Order within each group matters more than most candidates realize. Both recruiters (scanning left to right) and ATS systems (parsing in document order) weight the first items in a list more heavily. List your strongest, most JD-relevant skills first.
- Match the JD's order where possible. If the job description lists "Python, SQL, AWS" in that order, put them in that order in your skills section. This is a micro-signal that takes 30 seconds to apply and improves keyword match.
- Most defensible first. Within each group, lead with the skills you can defend at the whiteboard, not the ones you used once. If you cannot code Go live, do not list Go first even if the JD does.
- Most recent first for rapidly changing stacks. For roles where the tech stack moves fast (ML, frontend), put the skills you have used in the last 12 months first and older ones last.
Hard Skills vs Soft Skills: Keep Them Separate
Do not mix hard and soft skills in the same list. "Python, SQL, communication, teamwork, AWS" confuses both recruiters and parsers. The industry convention is to keep the technical skills section purely technical, and to demonstrate soft skills through the bullet points of your experience. For the full taxonomy, see our guides on hard skills for a resume, technical skills for a resume, and soft skills vs hard skills.
Should You Show Proficiency Levels?
Generally no. Proficiency labels ("Expert," "Advanced," "Intermediate") are unverifiable self-assessments that recruiters discount. The exception: languages (spoken, not programming), where CEFR levels (B2, C1, C2) or common labels (Native, Fluent, Conversational) carry meaning. For programming languages, frameworks, and tools, let the interview handle the proficiency conversation.
Tailoring the Skills Section to Each Job
Your skills section should be re-ordered and partly rewritten for every application. Here is the 4-step process:
- Extract every skill keyword from the JD. Copy the exact strings. "Microsoft Azure" is not the same token as "Azure" in some ATS systems.
- Cross-reference your real experience. Only list skills you can defend. Padding the list with unused tools is the fastest way to fail the technical screen.
- Reorder to match the JD's priority. The skills the JD mentions in the "required" section go first.
- Prune to 20 or fewer. Cut the weakest matches. A focused list beats a keyword dump.
Next Steps
Rewrite your skills section using Format 1 (grouped labeled lists), cap it at 20 skills, and reorder to match your target job description. When you are done, paste the resume into our free ATS resume checker to confirm the parser is reading every skill correctly. For related guidance, see our how to write a resume guide, how to create a great resume, how to start a resume, ideal resume length, and our skills to put on a resume hub.