The short version
A good resume is one page, single column, saved as a text-based PDF, and every bullet carries a number or a concrete technical detail. Write a two to three line summary with one proof point, list projects and experience by strongest evidence first, replace personality adjectives with measurable results, and skip photos, tables and graphics so applicant tracking systems can parse it.
I have written resumes that got ignored and resumes that got replies within hours. The content of my career barely changed between the two. What changed was how much of it was verifiable.
A resume is not an autobiography and it is not a personality test. It is a short evidence document. Every line either gives someone a reason to talk to you or takes up space that a better line could have used. That is the entire game.
What actually happens to your resume
Two things read your resume, usually in this order. First, an applicant tracking system parses it into structured fields. If your PDF is an image, or your layout uses multiple columns and text boxes, the parser mangles it and your experience section can arrive empty.
Second, a human skims it. Not reads, skims. Six to ten seconds on the first pass, and in that window they are looking for three things: does this person do the kind of work we need, have they done it at real scale, and is there a number anywhere that proves it. If none of those land, you are in the no pile before anyone has read your third bullet.
Everything below follows from that. Write for a parser and a skimmer, not for a careful reader who does not exist.
The shape of a good resume
One page. Single column. Sections in the order of what makes you hireable. For a student or a fresher that usually means:
- Name and contact details
- Summary, two or three lines
- Experience, if you have any
- Projects
- Skills
- Education
- Achievements or certifications, only the relevant ones
If you have two or more real internships, experience goes above projects. If your projects are stronger than your internships, flip them. The rule is simple: the strongest evidence goes highest, because the skim starts at the top and stops early.
A real before and after
Same person, same experience, same projects. The only thing that changed is how specific and verifiable every line is. This is the exact difference between a resume that gets skimmed and ignored, and one that gets a reply.
Suraj Kumar
Passionate Software Developer
suraj.dev.contact.me.2024@gmail.com·+91 98765 43210·Patna, Bihar·linkedin.com/in/suraj-kumar-dev-profile-2024·github.com/surajkumar
Passionate and hardworking final-year Computer Science student with a strong interest in web development and a good grasp of data structures and algorithms. Eager to learn new technologies and contribute to a dynamic team. Quick learner, detail-oriented, and a great team player who is always ready to take on new challenges.
Experience
A Local IT Company · Patna
- Worked on the frontend team and helped improve website performance
- Responsible for writing code and fixing bugs in the application
- Helped with other tasks assigned by the manager
- Learned a lot about teamwork and communication
- Attended daily standup meetings with the team
An Online Learning Platform · Patna
- Promoted the platform among college students
- Helped organize a few events on campus
- Worked with a team of other ambassadors
Projects
Built a full-stack e-commerce website using the MERN stack with login, cart and payment features. It was a great learning experience.
A simple to-do list application to manage daily tasks.
Skills
Skills: HTML, CSS, JavaScript, React, Node.js, Python, Java, C++, MySQL, MongoDB, Git, Figma, Photoshop, MS Office, Communication, Teamwork, Leadership, Problem Solving
Education
Nalanda College of Engineering, Chandi
Certifications
Introduction to Programming (6-hour online course) (2023) · Web Development Basics Certificate (2023)
Achievements
- Participated in college coding club activities
- Attended a webinar on web development
- Good academic record throughout school
Suraj Kumar
suraj.kumar@gmail.com·+91 98765 43210·Patna, India·linkedin.com/in/surajkumar·github.com/surajkumar
Final-year CS student who has shipped two production apps, one used by 500+ students with 1M+ requests in its first 60 days. Solved 400+ DSA problems, currently 1850 on LeetCode. Looking for a backend SDE role.
Experience
Ranchi Softworks · Remote
- Cut API p95 latency from 820ms to 210ms by adding Redis caching and eliminating N+1 queries across the 12 highest-traffic endpoints
- Raised test coverage from 41% to 78% across 60+ modules, cutting production incidents from roughly 6 to 1 per month
- Migrated 40+ components from JavaScript to TypeScript with zero runtime regressions
Codeverse Learning · Remote
- Grew campus community from 40 to 300+ members by running 6 workshops on Git, DSA, and web development
- Drove 150+ signups for the platform through referral campaigns, ranking in the top 5 ambassadors nationally
Projects
Placement-prep platform for 500+ students across 3 colleges; handled 1M+ requests in 60 days. Built role-based exam access with Permit.io and cut quiz load times 4x with cursor pagination.
Task manager with real-time sync used daily by 80+ classmates; added offline support with a local-first sync queue.
Skills
Languages: C++, Python, TypeScript, SQL
Frameworks: React, Next.js, Node.js, Tailwind
Tools: Git, Docker, PostgreSQL, Redis
Education
Nalanda College of Engineering, Chandi · CGPA 8.4
Certifications
Azure AI Fundamentals (2024)
Achievements
- 3rd place, Smart India Hackathon regional round (2025)
- 1850 rated on LeetCode, 400+ problems solved
Notice the before version is not badly written, it just hedges everywhere: vague adjectives, a bullet list of skills nobody can verify, an email address that looks unprofessional, and duties instead of outcomes. The after version says less overall and lands harder, because every line either proves scale, proves difficulty, or proves impact.
The summary
Your summary has one job: make the next ten seconds worth spending. Three sentences, maximum. Who you are, your single strongest proof point with a number in it, and what you are looking for.
The adjectives everyone uses, like hardworking, passionate, detail-oriented and quick learner, carry zero information because nobody has ever written the opposite. Delete them and use the space for a fact.
“Passionate and hardworking final-year CS student with a strong interest in web development and a good grasp of data structures. Eager to learn and contribute to a dynamic team.”
“Final-year CS student who has shipped two production apps, one used by 500+ students with 1M+ requests in its first 60 days. Solved 400+ DSA problems, currently 1850 on LeetCode. Looking for a backend SDE role.”
Both are three sentences. The second one tells a recruiter you can ship, you handle traffic, and you can pass a DSA screen. The first one tells them nothing they could not assume about any applicant.
Experience
This is where most resumes quietly collapse into a job description. People list what they were assigned instead of what changed because they were there.
Use this pattern for every bullet:
Action verb → what you built or changed → the measurable result → how you did it
“Worked on the backend team and helped improve website performance.”
“Cut API p95 latency from 820ms to 210ms by adding Redis caching and eliminating N+1 queries across the 12 highest-traffic endpoints.”
“Responsible for writing tests and fixing bugs in the application.”
“Raised test coverage from 41% to 78% across 60+ modules, cutting production incidents from roughly 6 to 1 per month.”
Notice what the good versions share. They contain a before and an after. They name the technique, so a technical interviewer has something to ask about. And they are falsifiable, which is exactly why they are believed.
One more thing about the word increased. “Increased website traffic by 60%” is weaker than it looks, because it says nothing about what you actually did. The number sits there with no mechanism attached, and an interviewer cannot follow up on it. Write “Grew organic traffic 60% in 4 months by publishing 24 technical tutorials and rewriting the docs IA” instead. Same metric, but now it is a story about your work rather than a statistic that happened near you.
Three to four bullets per role. The fifth bullet is almost always your weakest one, and it drags the average down.
Projects
For students and freshers, projects often carry more weight than internships, because they show what you do when nobody assigns you anything. But a project only counts if it shows evidence of engineering rather than evidence of following a tutorial.
Three things make a project entry land:
- Real usage. Users, requests, downloads, stars, anything that proves it left your laptop.
- A hard problem you solved. Not “built a CRUD app” but the specific thing that was difficult and how you handled it.
- A stack that matches the job. Trim the projects that do not, even if you are proud of them.
“E-commerce Website: Built a full-stack e-commerce site using MERN stack with login, cart and payment features.”
“PlacePrep Tracker: Placement-prep platform for 500+ students across 3 colleges; handled 1M+ requests in 60 days. Built role-based exam access with Permit.io and cut quiz load times 4x with cursor pagination.”
The first one describes a tutorial that ten thousand other applicants also built. The second one describes an engineer. Same effort, different framing, and the framing is the part you control.
Link the repo or the live site. A recruiter who clicks is a recruiter who is interested, and a dead link is worse than no link at all.
Skills
Group them by category and keep them honest. Languages, frameworks, tools. That is usually enough.
Do not list proficiency bars or star ratings, they are unverifiable and they eat space. Do not list twenty technologies you touched once in a weekend, because the interviewer picks the one you are weakest at and asks about it. Every item in that section is something you are volunteering to be tested on.
If a skill matters, it should also appear inside an experience or project bullet doing actual work. A skill that appears only in the skills list reads like a keyword, because that is usually what it is.
Education and extras
Degree, institution, years, and your CGPA if it is above roughly 7.5. Below that, leave it out and let your projects carry the page. Coursework lists are filler unless the role specifically asks for a subject you studied deeply.
Certifications and achievements belong at the bottom and only if they are relevant. A hackathon win, a competitive-programming rank, a real open-source contribution, a cloud certification for a cloud role: those earn their space. A generic six-hour course completion certificate does not.
Finding numbers when you think you have none
“I do not have any metrics” is the most common objection I hear, and it is almost never true. You have not measured them yet, which is a different problem with an easy fix. Go looking for:
- Scale: users, requests, records, files, rows, concurrent sessions, repositories
- Time: build time, load time, latency, hours saved per week, deployment frequency
- Quality: test coverage, bug count, crash rate, incidents per month, review turnaround
- Reach: stars, forks, downloads, readers, attendees, community members
- Scope: team size, number of services touched, number of endpoints, features shipped
Open your analytics, your repo insights, your database, your project board. The numbers are sitting there. If something is genuinely unmeasurable, describe the scope and difficulty concretely instead. “Migrated 40+ components from JavaScript to TypeScript with zero runtime regressions” works perfectly well without a percentage.
Estimates are fine as long as they are honest and you can defend them in an interview. “Roughly 200 daily active users” is far better than silence.
Formatting and typography
Good formatting is invisible. It should never be the thing someone notices. A few settings do most of the work:
| Font | Inter, Aptos, Helvetica, Arial, Source Sans 3, IBM Plex Sans, Roboto, Calibri, Georgia |
| Name | 20–24 pt, bold |
| Section headings | 11–12 pt, semibold |
| Body text | 10–10.5 pt |
| Dates and location | 9–9.5 pt |
| Line spacing | 1.05–1.15 |
| Margins | 14–18 mm on all sides |
| Columns | One. Always. |
Export as a text-based PDF, never an image and never a screenshot. Open the file afterwards and try to select your name with the cursor. If you cannot highlight it, no parser can read it either, and you have effectively submitted a blank application.
Name the file properly too. Rohan_Sharma_Resume.pdf rather than resume_final_v3_updated.pdf.
Mistakes I see constantly
- Writing duties instead of outcomes. If your bullet could appear in the job posting, it is describing the role and not you.
- One resume for every application. Reorder your projects and rewrite two bullets per role. Fifteen minutes of tailoring beats fifty untailored sends.
- Photos, graphics and colour blocks. They break parsers, and in most markets a photo introduces bias you do not want.
- Padding to fill the page. A dense two-thirds page beats a padded full page every time.
- Vague seniority words. “Led” and “spearheaded” mean nothing without a team size or a scope attached.
- Typos in the first three lines. Read it backwards, bullet by bullet. It breaks the autocomplete your brain runs when re-reading your own writing.
- Dead links. Click every one before you send.
The final checklist
Before you send it anywhere, go line by line:
- Does every bullet contain either a number or a concrete technical detail?
- Could a stranger tell what you actually built from the top third of the page alone?
- Is it one page, one column, with selectable text in the PDF?
- Have you removed every adjective that describes your personality rather than your work?
- Does the strongest thing you have ever done appear above the fold?
- Do the links work, and does the filename have your name in it?
If all six are yes, send it. Then keep a copy of every version you send, because six months from now you will want to know which one got replies.
Resume FAQ
What should I write in a resume summary?
- Two to three sentences covering who you are, your strongest proof point with a number in it, and what you are looking for. Skip adjectives like hardworking or passionate, they carry no information.
How do I write resume bullet points?
- Use the pattern: action verb, what you built or changed, the measurable result, and how you did it. For example, 'Cut API p95 latency from 820ms to 210ms by adding Redis caching and batching N+1 queries' instead of 'Improved website performance'.
What if I have no numbers to show on my resume?
- You almost always have some. Count users, requests, records, test coverage, team size, time saved, bugs fixed, or before-and-after timings. If nothing is measurable, describe scope and technical difficulty concretely instead.
Should a resume be one page?
- Yes for students, freshers and most people under roughly eight years of experience. Recruiters spend six to ten seconds on a first pass, so a second page usually dilutes rather than adds.
What makes a resume ATS-friendly?
- A single column, standard section headings, a clean sans-serif font and a PDF with selectable text. Avoid tables, text boxes, icons, photos and image-based PDFs, because parsers can scramble or skip them.
How do I know if my PDF is readable by an ATS?
- Open the PDF and try to select your name with the cursor. If you can highlight and copy the text, a parser can read it. If you cannot, it is an image and your application may arrive blank.
Should I put a photo on my resume?
- No, in most markets. Photos and graphics break ATS parsers and can introduce bias that works against you.
How many bullet points should each job have?
- Three to four per role. The fifth bullet is almost always the weakest and lowers the average quality of the section.
Now go write it
The builder handles the formatting, the sizing and the ATS-safe PDF export, so you can spend your time on the part that actually matters: the words.