awesome-phd-cv
LaTeX CV/resume templates for PhD students and researchers, covering ATS-optimized industry resumes and full academic CVs.
Best use case
awesome-phd-cv is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
LaTeX CV/resume templates for PhD students and researchers, covering ATS-optimized industry resumes and full academic CVs.
Teams using awesome-phd-cv should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/awesome-phd-cv/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How awesome-phd-cv Compares
| Feature / Agent | awesome-phd-cv | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
LaTeX CV/resume templates for PhD students and researchers, covering ATS-optimized industry resumes and full academic CVs.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Awesome PhD CV
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
A curated collection of LaTeX CV/resume templates for PhD students, postdocs, and researchers. Covers three distinct use cases: ATS-safe industry resumes (Jake's format), high-density two-column resumes (Deedy format), and full multi-page academic CVs (Awesome-CV format).
---
## What This Project Provides
| Template | Use Case | Engine | Columns | Pages |
|----------|----------|--------|---------|-------|
| `research-cv/` (Awesome-CV) | Faculty, postdoc, academic CV | XeLaTeX | 1 | Multi |
| `jakes-format/` | Industry SWE, big tech, ATS-critical | pdfLaTeX | 1 | 1 |
| `deedy-format/` | Experienced tech professionals | XeLaTeX | 2 | 1 |
---
## Installation & Setup
### Prerequisites
Install a full TeX distribution:
```bash
# macOS
brew install --cask mactex
# Ubuntu/Debian
sudo apt-get install texlive-full
# Windows — download MiKTeX from https://miktex.org/
```
For XeLaTeX templates (Awesome-CV, Deedy), ensure font packages are available:
```bash
# Ubuntu
sudo apt-get install fonts-font-awesome texlive-xetex
```
### Clone the Repo
```bash
git clone https://github.com/LimHyungTae/Awesome-PhD-CV.git
cd Awesome-PhD-CV
```
---
## Template 1: Jake's Format (Industry / ATS-Safe)
**File:** `jakes-format/resume.tex`
**Engine:** pdfLaTeX — no custom fonts, no multi-column, passes ATS parsers at Google, Meta, Amazon, Apple, Microsoft.
### Compile
```bash
cd jakes-format
pdflatex resume.tex
```
### Key Commands in Jake's Format
```latex
% Section header
\section{Experience}
% Job/project entry
\resumeSubheading
{Company or Institution Name}{City, Country}
{Your Title}{Start Date -- End Date}
\resumeItemListStart
\resumeItem{Built X system achieving Y metric on Z dataset/platform.}
\resumeItem{Deployed model to production serving N requests/day.}
\resumeItemListEnd
% Education entry (same command)
\resumeSubheading
{Massachusetts Institute of Technology}{Cambridge, MA}
{Postdoctoral Associate, CSAIL}{Jan 2025 -- Present}
% Skills section
\resumeSubHeadingListStart
\resumeSubItem{Languages}{Python, C++, CUDA, Bash}
\resumeSubItem{Frameworks}{PyTorch, ROS2, Open3D, PCL}
\resumeSubHeadingListEnd
```
### Full Minimal Example: Jake's Format
```latex
\documentclass[letterpaper,11pt]{article}
\usepackage{latexsym}
\usepackage[empty]{fullpage}
\usepackage{titlesec}
\usepackage{marvosym}
\usepackage[usenames,dvipsnames]{color}
\usepackage{verbatim}
\usepackage{enumitem}
\usepackage[hidelinks]{hyperref}
\usepackage{fancyhdr}
\usepackage[english]{babel}
\usepackage{tabularx}
\pagestyle{fancy}
\fancyhf{}
\fancyfoot{}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\oddsidemargin}{-0.5in}
\addtolength{\evensidemargin}{-0.5in}
\addtolength{\textwidth}{1in}
\addtolength{\topmargin}{-.5in}
\addtolength{\textheight}{1.0in}
\urlstyle{same}
\raggedbottom
\raggedright
\setlength{\tabcolsep}{0in}
% Section formatting
\titleformat{\section}{
\vspace{-4pt}\scshape\raggedright\large
}{}{0em}{}[\color{black}\titlerule \vspace{-5pt}]
% Custom commands
\newcommand{\resumeItem}[1]{\item\small{#1 \vspace{-2pt}}}
\newcommand{\resumeSubheading}[4]{
\vspace{-2pt}\item
\begin{tabular*}{0.97\textwidth}[t]{l@{\extracolsep{\fill}}r}
\textbf{#1} & #2 \\
\textit{\small#3} & \textit{\small #4} \\
\end{tabular*}\vspace{-7pt}
}
\newcommand{\resumeItemListStart}{\begin{itemize}}
\newcommand{\resumeItemListEnd}{\end{itemize}\vspace{-5pt}}
\newcommand{\resumeSubHeadingListStart}{\begin{itemize}[leftmargin=0.15in, label={}]}
\newcommand{\resumeSubHeadingListEnd}{\end{itemize}}
\begin{document}
%-----------HEADER-----------
\begin{center}
\textbf{\Huge \scshape Hyungtae Lim} \\ \vspace{1pt}
\small +1-617-000-0000 $|$
\href{mailto:htlim@mit.edu}{htlim@mit.edu} $|$
\href{https://linkedin.com/in/yourprofile}{linkedin.com/in/yourprofile} $|$
\href{https://github.com/LimHyungTae}{github.com/LimHyungTae}
\end{center}
%-----------EDUCATION-----------
\section{Education}
\resumeSubHeadingListStart
\resumeSubheading
{Korea Advanced Institute of Science and Technology (KAIST)}{Daejeon, South Korea}
{Ph.D., Electrical Engineering (Robotics)}{Mar. 2019 -- Feb. 2024}
\resumeSubheading
{Massachusetts Institute of Technology (MIT)}{Cambridge, MA}
{Postdoctoral Associate, CSAIL}{Jan. 2024 -- Dec. 2024}
\resumeSubHeadingListEnd
%-----------SELECTED PROJECTS-----------
\section{Selected Projects}
\resumeSubHeadingListStart
\resumeSubheading
{KISS-ICP — LiDAR Odometry System}
{\href{https://github.com/PRBonn/KISS-ICP}{\underline{GitHub ★3.1k}}}
{Core Contributor}{2022 -- 2023}
\resumeItemListStart
\resumeItem{Designed adaptive threshold module reducing localization drift by 30\% on KITTI benchmark.}
\resumeItem{Maintained C++/Python codebase used in production AV pipelines at 3 companies.}
\resumeItemListEnd
\resumeSubHeadingListEnd
%-----------SKILLS-----------
\section{Technical Skills}
\resumeSubHeadingListStart
\item{
\textbf{Languages}{: C++17, Python, CUDA, CMake} \\
\textbf{Frameworks}{: PyTorch, ROS2, Open3D, PCL, Eigen} \\
\textbf{Tools}{: Docker, Git, AWS, GCP}
}
\resumeSubHeadingListEnd
\end{document}
```
---
## Template 2: Awesome-CV Format (Academic / Faculty Applications)
**Directory:** `research-cv/`
**Engine:** XeLaTeX
**Structure:** Modular — each section lives in `cv/` subdirectory.
### Compile
```bash
cd awesome-cv-format
xelatex cv.tex
```
### Directory Layout
```
awesome-cv-format/
├── cv.tex # Main file — includes section files
├── awesome-cv.cls # Class file (do not edit unless customizing)
└── cv/
├── education.tex
├── experience.tex
├── publications.tex
├── honors.tex
├── projects.tex
└── skills.tex
```
### Main File Structure (`cv.tex`)
```latex
\documentclass[11pt, a4paper]{awesome-cv}
% Personal info
\name{Hyungtae}{Lim}
\position{Ph.D. Candidate{\enskip\cdotp\enskip}Robotics Researcher}
\address{Daejeon, South Korea}
\email{shapelim@kaist.ac.kr}
\homepage{limhyungtae.github.io}
\github{LimHyungTae}
\googlescholar{your-scholar-id}{Google Scholar}
% Optional: accent color
\colorlet{awesome}{awesome-skyblue}
\begin{document}
\makecvheader
\cvsection{Education}
\input{cv/education.tex}
\cvsection{Research Experience}
\input{cv/experience.tex}
\cvsection{Publications}
\input{cv/publications.tex}
\cvsection{Honors \& Awards}
\input{cv/honors.tex}
\end{document}
```
### Section File Examples
**`cv/education.tex`**
```latex
\begin{cventries}
\cventry
{Ph.D. in Electrical Engineering}
{Korea Advanced Institute of Science and Technology}
{Daejeon, South Korea}
{Mar. 2019 -- Feb. 2024}
{
\begin{cvitems}
\item {Dissertation: \textit{Robust LiDAR Odometry and Mapping for Outdoor Environments}}
\item {Advisor: Prof. Hyun Myung, Urban Robotics Laboratory}
\item {GPA: 4.1/4.3}
\end{cvitems}
}
\end{cventries}
```
**`cv/publications.tex`**
```latex
\begin{cvpubs}
\cvpub
{\textbf{H. Lim}, S. Jung, H. Myung}
{ERASOR: Egocentric Ratio of Pseudo Occupancy-based Dynamic Object Removal for Static 3D Point Cloud Map Building}
{IEEE Robotics and Automation Letters (RA-L) + ICRA 2021}
{2021}
{Citations: 280+, \href{https://github.com/LimHyungTae/ERASOR}{GitHub ★500+}}
\end{cvpubs}
```
**`cv/honors.tex`**
```latex
\begin{cvhonors}
\cvhonor
{Best Paper Award}
{IEEE International Conference on Robotics and Automation (ICRA)}
{Philadelphia, PA}
{2022}
\cvhonor
{Korea Presidential Science Scholarship}
{Korea Student Aid Foundation}
{South Korea}
{2019 -- 2024}
\end{cvhonors}
```
---
## Template 3: Deedy Format (Two-Column, High Density)
**File:** `deedy-format/resume.tex`
**Engine:** XeLaTeX
**Note:** Requires `deedy-resume.cls` from [deedy/Deedy-Resume](https://github.com/deedy/Deedy-Resume).
### Compile
```bash
cd deedy-format
xelatex resume.tex
```
### Key Commands
```latex
% Left column (narrow — education, skills, links)
\begin{minipage}[t]{0.33\textwidth}
\section{Education}
\subsection{MIT}
\descript{Postdoc | CSAIL}
\location{Jan 2024 – Dec 2024 | Cambridge, MA}
\sectionsep
\subsection{KAIST}
\descript{PhD | Electrical Eng.}
\location{Mar 2019 – Feb 2024 | Daejeon, KR}
\sectionsep
\section{Skills}
\subsection{Programming}
C++ \textbullet{} Python \textbullet{} CUDA \\
ROS2 \textbullet{} PyTorch \textbullet{} Open3D
\sectionsep
\end{minipage}
\hfill
% Right column (wide — experience, projects)
\begin{minipage}[t]{0.66\textwidth}
\section{Experience}
\runsubsection{Google DeepMind}
\descript{| Senior Research Engineer}
\location{Jan 2025 – Present | Mountain View, CA}
\begin{tightemize}
\item Built real-time 3D scene understanding pipeline for robotics team.
\item Reduced inference latency by 40\% via CUDA kernel optimization.
\end{tightemize}
\sectionsep
\section{Selected Projects}
\runsubsection{ERASOR}
\descript{| Dynamic Object Removal for LiDAR Maps}
\location{GitHub ★500+ | RA-L 2021 | 280+ citations}
\begin{tightemize}
\item Designed ego-ratio occupancy method; first open-source tool for this task.
\item Adopted by 3 autonomous driving companies in production mapping pipelines.
\end{tightemize}
\sectionsep
\end{minipage}
```
---
## Core Insight: Academic CV → Industry Resume Conversion
### The Mindset Shift
| Academic CV | Industry Resume |
|-------------|----------------|
| Publication-driven | Project-driven |
| Venue and novelty | Impact, scale, deployment |
| Full paper titles + co-authors | One-line signal: venue + citations |
| Long, multi-page | One page, ATS-parseable |
| Human reviewer (domain expert) | ATS first → recruiter → engineer |
### What to Keep, Cut, and Reframe
```
KEEP (reframed as impact):
✓ Open-source projects with GitHub stars → proves production-quality code
✓ Deployed systems / real-world validation
✓ Quantified results: "30% reduction in drift on KITTI"
✓ Scale: "serves N users / processes N points/sec"
CUT or COMPRESS:
✗ Full publication list → keep top 2-3 most relevant
✗ Teaching history → omit unless applying to EdTech
✗ Conference reviewer service
✗ Verbose paper abstracts as bullet points
REFRAME:
Before: "Published paper on real-time LiDAR odometry at IROS 2023"
After: "Built real-time LiDAR odometry system (30ms/frame on embedded GPU);
open-sourced with 800+ GitHub stars; adopted by 2 AV startups"
```
### Tailoring Projects Per Application
```latex
% For an AV Perception team — lead with detection/segmentation work
\resumeSubheading{3D Object Detection System}{GitHub ★420}
{Lead Developer}{2022 -- 2023}
\resumeItemListStart
\resumeItem{Implemented PointPillars variant achieving 72.1 mAP on nuScenes val set.}
\resumeItemListEnd
% For a Mapping/Localization team — lead with SLAM work
\resumeSubheading{KISS-ICP Contribution}{GitHub ★3.1k}
{Core Contributor}{2022 -- 2023}
\resumeItemListStart
\resumeItem{Designed adaptive threshold reducing drift 30\% on KITTI; merged upstream.}
\resumeItemListEnd
```
---
## Common Patterns
### Adding GitHub Stars to Entries (Any Template)
```latex
% Jake's format — in the right-hand date position
\resumeSubheading
{ERASOR — Dynamic Object Removal}{\href{https://github.com/LimHyungTae/ERASOR}{\underline{★ 500+ stars}}}
{Lead Developer, Open Source}{2020 -- 2021}
```
```latex
% Awesome-CV format — in the description items
\begin{cvitems}
\item {Open-sourced at \href{https://github.com/LimHyungTae/ERASOR}{GitHub ★500+};
adopted in 3 production AV pipelines.}
\end{cvitems}
```
### Hyperlinks in PDFs
```latex
% Jake's / pdfLaTeX — use \href with \underline for visibility
\href{https://github.com/LimHyungTae}{\underline{github.com/LimHyungTae}}
% Awesome-CV / XeLaTeX — \href renders colored by default via class
\href{https://limhyungtae.github.io}{limhyungtae.github.io}
```
### Controlling Page Breaks in Awesome-CV
```latex
% Force new page between major sections
\newpage
\cvsection{Publications}
\input{cv/publications.tex}
```
### Custom Accent Color in Awesome-CV
```latex
% In cv.tex preamble — choose a preset
\colorlet{awesome}{awesome-red} % red
\colorlet{awesome}{awesome-skyblue} % sky blue (default)
\colorlet{awesome}{awesome-emerald} % emerald
\colorlet{awesome}{awesome-concrete} % gray
% Or define your own
\definecolor{awesome}{HTML}{0E76A8} % LinkedIn blue
```
---
## Troubleshooting
### XeLaTeX: Font Not Found
```
! fontspec error: "font-not-found"
```
**Fix:**
```bash
# Install FontAwesome system-wide
sudo apt-get install fonts-font-awesome # Ubuntu
fc-cache -fv # Rebuild font cache
```
Or inside the `.cls` file, comment out `\newfontfamily` lines for missing fonts and substitute system fonts.
---
### pdfLaTeX: Undefined Control Sequence `\resumeSubheading`
```
! Undefined control sequence \resumeSubheading
```
**Fix:** Ensure all custom `\newcommand` definitions appear in the preamble before `\begin{document}`. Jake's template is self-contained — do not split across files without copying the command definitions.
---
### ATS Rejects Resume (No Text Extracted)
If an ATS returns your resume blank:
- Switch to `jakes-format/` (pdfLaTeX, no custom fonts).
- Remove `\includegraphics` (profile photos).
- Avoid `tabular`-heavy layouts; use plain `itemize`.
- Test extraction: `pdftotext resume.pdf -` should return readable text.
```bash
# Install poppler-utils then test
pdftotext jakes-format/resume.pdf -
```
---
### Overleaf Compilation
- Jake's format: set compiler to **pdfLaTeX** in Overleaf settings.
- Awesome-CV and Deedy: set compiler to **XeLaTeX**.
- Upload the `.cls` file alongside `.tex` if Overleaf can't find it.
---
## Quick Reference
```bash
# Jake's (pdfLaTeX)
cd jakes-format && pdflatex resume.tex
# Awesome-CV (XeLaTeX)
cd awesome-cv-format && xelatex cv.tex
# Deedy (XeLaTeX)
cd deedy-format && xelatex resume.tex
# Check ATS text extraction
pdftotext <output>.pdf -
# Clean auxiliary files
rm -f *.aux *.log *.out *.toc *.fls *.fdb_latexmk
```Related Skills
awesome-free-llm-apis
Reference guide for permanent free-tier LLM APIs with rate limits, model lists, and OpenAI-compatible integration patterns.
awesome-design-md-jp
Create accurate Japanese UI DESIGN.md files for AI agents with proper CJK typography, font stacks, line-height, kinsoku shori, and mixed typesetting rules.
```markdown
---
zeroboot-vm-sandbox
Sub-millisecond VM sandboxes for AI agents using copy-on-write KVM forking via Zeroboot
yourvpndead-vpn-detection
Android app that detects VPN/proxy servers (VLESS/xray/sing-box) via local SOCKS5 vulnerability, exposing exit IPs and server configs without root
xata-postgres-platform
Expert skill for Xata open-source cloud-native Postgres platform with copy-on-write branching, scale-to-zero, and Kubernetes deployment
x-mentor-skill-nuwa
AI-powered X (Twitter) content strategy skill that distills methodologies from 6 top creators + open-source algorithm data into actionable writing, growth, and monetization guidance.
wx-favorites-report
End-to-end pipeline to extract, decrypt, and visualize WeChat Mac favorites from encrypted SQLite DB into an interactive HTML report.
wterm-web-terminal
Web terminal emulator with Zig/WASM core, DOM rendering, and React/vanilla JS bindings
worldmonitor-intelligence-dashboard
Real-time global intelligence dashboard with AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking
witr-process-inspector
CLI and TUI tool that explains why processes, services, and ports are running by tracing causality chains across supervisors, containers, and shells.
wildworld-dataset
WildWorld large-scale action-conditioned world modeling dataset with 108M+ frames from a photorealistic ARPG game, featuring per-frame annotations, 450+ actions, and explicit state information for generative world modeling research.