awesome-phd-cv

LaTeX CV/resume templates for PhD students and researchers, covering ATS-optimized industry resumes and full academic CVs.

3,817 stars

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

$curl -o ~/.claude/skills/awesome-phd-cv/SKILL.md --create-dirs "https://raw.githubusercontent.com/openclaw/skills/main/skills/adisinghstudent/awesome-phd-cv/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/awesome-phd-cv/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How awesome-phd-cv Compares

Feature / Agentawesome-phd-cvStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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.

Related Guides

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

3817
from openclaw/skills

Reference guide for permanent free-tier LLM APIs with rate limits, model lists, and OpenAI-compatible integration patterns.

---

3891
from openclaw/skills

name: article-factory-wechat

Content & Documentation

humanizer

3891
from openclaw/skills

Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.

Content & Documentation

find-skills

3891
from openclaw/skills

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

General Utilities

tavily-search

3891
from openclaw/skills

Use Tavily API for real-time web search and content extraction. Use when: user needs real-time web search results, research, or current information from the web. Requires Tavily API key.

Data & Research

baidu-search

3891
from openclaw/skills

Search the web using Baidu AI Search Engine (BDSE). Use for live information, documentation, or research topics.

Data & Research

agent-autonomy-kit

3891
from openclaw/skills

Stop waiting for prompts. Keep working.

Workflow & Productivity

Meeting Prep

3891
from openclaw/skills

Never walk into a meeting unprepared again. Your agent researches all attendees before calendar events—pulling LinkedIn profiles, recent company news, mutual connections, and conversation starters. Generates a briefing doc with talking points, icebreakers, and context so you show up informed and confident. Triggered automatically before meetings or on-demand. Configure research depth, advance timing, and output format. Walking into meetings blind is amateur hour—missed connections, generic small talk, zero leverage. Use when setting up meeting intelligence, researching specific attendees, generating pre-meeting briefs, or automating your prep workflow.

Workflow & Productivity

self-improvement

3891
from openclaw/skills

Captures learnings, errors, and corrections to enable continuous improvement. Use when: (1) A command or operation fails unexpectedly, (2) User corrects Claude ('No, that's wrong...', 'Actually...'), (3) User requests a capability that doesn't exist, (4) An external API or tool fails, (5) Claude realizes its knowledge is outdated or incorrect, (6) A better approach is discovered for a recurring task. Also review learnings before major tasks.

Agent Intelligence & Learning

botlearn-healthcheck

3891
from openclaw/skills

botlearn-healthcheck — BotLearn autonomous health inspector for OpenClaw instances across 5 domains (hardware, config, security, skills, autonomy); triggers on system check, health report, diagnostics, or scheduled heartbeat inspection.

DevOps & Infrastructure

linkedin-cli

3891
from openclaw/skills

A bird-like LinkedIn CLI for searching profiles, checking messages, and summarizing your feed using session cookies.

Content & Documentation

notebooklm

3891
from openclaw/skills

Google NotebookLM 非官方 Python API 的 OpenClaw Skill。支持内容生成(播客、视频、幻灯片、测验、思维导图等)、文档管理和研究自动化。当用户需要使用 NotebookLM 生成音频概述、视频、学习材料或管理知识库时触发。

Data & Research