DevOps Job Hunting Flow — A Sankey Analysis
I applied to 112 DevOps-related roles to validate my CV and understand market expectations and tracked all outcomes including HR interviews, assessments, user interviews, offers, withdrawals, and ghosting using a Sankey diagram to visualize the flow.
This is a breakdown of my job search process while still an active student, before officially graduating in January 2026.
At that time I was interning full-time 9–17, had around one year of DevOps-related intern and work experience, and was not under pressure to accept any offer immediately. My initial goal was not to get hired right away but to validate CV positioning and understand market expectations.
Throughout December I iterated on my CV whenever I saw weak signals from applications. I used a single ATS-friendly version because I only applied to DevOps-related roles such as DevOps, Cloud, Infra, or SRE. All data below is from LinkedIn applications. I also applied through Glints and Dealls but got zero responses there so they are excluded.
Total applications: 112.
I visualized the application flow using a Sankey diagram to show all paths from Applied to final outcomes, including ghosted, withdrawn, rejected, declined, and accepted. This shows not just overall movement but the distribution of outcomes at each stage.

Stage 1 — Applied (112 → 18 HR)
Out of 112 applications 94 ghosted and 18 moved to HR interview, about 84% ghost rate. I did not tailor CVs per company because I only applied to DevOps-related roles. I did not care about location. Onsite, hybrid, shift, no shift, I still applied because at this stage it was more about testing signal strength than filtering based on location or work arrangement.
Most drop happened here. Observation: automated screening and experience requirements were the main bottlenecks. Many roles asked for 1–3 years experience and being labeled a fresh graduate probably hurt visibility. From this stage it was clear visibility mattered more than technical ability.
Stage 2 — HR Interview (18 → 10 Assessment)
Out of 18 HR interviews 10 progressed to assessment, 5 I withdrew, and 3 ghosted, conversion about 55%. HR questions were mostly about conflict resolution in previous teams, not tools or technical depth. When asked about experience I referenced my internship and prior work, showing roughly one year of practical DevOps exposure.
Salary expectation was 10–20% above minimum wage, which I could afford because I was not in urgent need of income. Withdrawals were due to already signing another contract, roles that were mislabeled as DevOps but mostly web development, in-person requirements in Jakarta, and scheduling issues with no follow-up.
Observation: this stage filtered for alignment more than technical capability.
Stage 3 — Assessment (10 → 8 User Interview)
Assessment included psychotests and take-home technical tests. 8 moved to user interview, 2 I withdrew, giving about 80% conversion. Technical scope included CI/CD pipelines, Docker, Kubernetes, Ansible, Terraform, VPN setup, and cloud architecture scenarios.
I built everything from scratch, no template reuse. Each assessment took around 3–4 days because I was still interning full-time so most work was done at night or weekends.
Observation: execution quality mattered more than resume wording.
Stage 4 — User Interview (8 → 2 Offer)
Out of 8 user interviews 2 offers, 4 withdrawals, 2 rejections, about 25% conversion. Interviews were with future supervisors and focused on tool understanding, when to use which tool, troubleshooting scenarios, hypothetical “what if” situations, and deep dives into past projects.
Withdrawals were mostly strategic because of in-person requirements, red-flag signals, or already accepting another contract.
Observation: evaluation was mutual, both sides assessing fit.
Stage 5 — Offer (2 → 1 Accepted)
The first offer came from a small city in Central Java, salary roughly 180% of minimum wage. Financially attractive but growth environment limited, exposure scale small, so I rejected it after clear communication with HR.
The second offer was from a large telco company with hybrid setup, salary slightly below expectation. Factors that led to acceptance included exposure to corporate-scale infrastructure, learning opportunities, and fundamental skill strengthening.
Also observation: 112 applications to 2 offers is about 1.8% offer rate, so rejecting both would increase uncertainty.
Personal factor: wanted to avoid visible gap after graduation month, preferred immediate transition rather than staying as intern post-graduation.
Observations
The diagram shows that most drop happened at the cold application stage. Ghosting was high but expected due to automated screening and experience mismatch. Once candidates passed HR and assessments, conversion rates were strong, indicating that technical ability was sufficient. Withdrawals at HR, assessment, and user interviews were mostly strategic alignment decisions based on role, location, or work arrangement rather than outright rejection.
The process felt iterative: apply, observe patterns, adjust CV, refine positioning, repeat. External constraints like company requirements, in-person interview requirements, and schedule alignment had a significant impact on outcomes.
A few practical notes from my experience: keep applying even if you don’t care much about location, role type, or schedule. The more you apply, the more interviews you get, which helps you spot weaknesses in your CV and improve it over time. Frequent interviews also make you stronger at answering questions and explaining experience. Even if you get an offer, it’s fine to decline if it doesn’t fit your priorities. By doing this, you get a clear signal of your market value and can be confident that your skills and experience meet industry standards.