Danh sách bài viết

Bài 27: Viết phần Project — cách trình bày project trên CV gây ấn tượng

Đào sâu cách viết Project section trên CV cho AI Engineer trái ngành: cấu trúc STAR-like bullet, chọn action verb, quantify kết quả, thêm engineering detail, và checklist trước khi submit.

28/05/2026
0 lượt xem
1

Mục tiêu bài học

Sau bài này bạn sẽ:

  • ✅ Viết được bullet cho từng project theo cấu trúc STAR-like
  • ✅ Biết action verb nào nên dùng / tránh
  • ✅ Quantify kết quả với metric cụ thể
  • ✅ Thêm engineering detail để phân biệt với bài nộp của người chỉ học lý thuyết
  • ✅ Có checklist để kiểm tra trước khi submit CV
2

Vì sao Project section quan trọng nhất với trái ngành

Với người chuyển ngành sang AI, phần Experience thường không liên quan trực tiếp đến AI — nên recruiter sẽ không tìm thấy signal kỹ năng ở đó. Project section là nơi duy nhất chứng minh bạn đã thực sự làm được điều gì đó về AI/ML.

Lý do cụ thể:

  • Recruiter scan theo thứ tự: header → summary → project → experience → education. Project thường được đọc trước experience khi experience không AI-related.
  • Bằng chứng trực tiếp: 1 RAG chatbot đã deploy thuyết phục hơn 5 certificate.
  • Chất liệu cho interview: Hiring manager sẽ hỏi sâu về project trong vòng technical. Nếu bạn viết rõ trên CV, bạn kiểm soát được câu chuyện kể.
  • GitHub link = verifiable: Recruiter có thể click vào xem code — không thể fake như claim trên experience.

Project section yếu = CV yếu với trái ngành, dù experience domain cũ có hay đến đâu.

3

Cấu trúc STAR-like cho bullet

Mỗi bullet nên nén 4 yếu tố:

  • S — Situation/Problem: bài toán cụ thể là gì.
  • T — Tech stack: công nghệ / framework / model nào.
  • A — Action/Approach: bạn làm gì, lựa chọn kỹ thuật nào.
  • R — Result: kết quả đo lường được.

Một bullet hiệu quả compress cả 4 yếu tố vào 1–2 dòng. Không cần bao gồm hết 4 yếu tố trong 1 dòng — có thể phân bổ ra 2–3 bullet cho mỗi project, mỗi bullet nhấn vào 1–2 yếu tố.

Ví dụ phân tích:

"Built RAG system on 500-page Vietnamese Labor Code using LangChain + ChromaDB,
achieving Faithfulness 0.87 (Ragas eval) with P95 latency 1.2s on Render deploy."

S: Vietnamese Labor Code (500 pages)     → bài toán + quy mô
T: LangChain, ChromaDB                   → tech stack
A: Built RAG system                      → approach
R: Faithfulness 0.87, latency 1.2s      → measurable result + deploy
4

Format 4 dòng cho mỗi project

Mỗi project nên có tối đa 4 dòng (1 header + 3 bullet). Recruiter mất 6–8 giây cho mỗi project khi scan CV — quá 4 dòng sẽ bị skip.

Project Title                                              [github | demo]
• [Action verb] [tech stack] for [problem domain] (Aug-Oct 2024)
• [Quantified result]: [metric] [comparison hoặc context]
• [Engineering detail]: [deploy / scale / cost / architecture]

Header: tên project + link ngắn (căn lề trái/phải tùy template).

Bullet 1: what + how + when.

Bullet 2: result số.

Bullet 3: production thinking — deploy, latency, cost, monitoring.

Nếu project đơn giản, 2 bullet cũng được — nhưng không bao giờ chỉ 1 bullet (thiếu depth).

5

Action verb: tốt vs tệ

Action verb đứng đầu mỗi bullet. Động từ mạnh + cụ thể giúp recruiter hiểu ngay bạn đã làm gì.

Động từ nên dùng

  • Build/Develop/Engineer: Built, Developed, Engineered — cho project mới hoàn toàn.
  • Fine-tuned/Trained: Fine-tuned, Trained — cho model training.
  • Deployed/Served: Deployed, Served — cho deploy/infra.
  • Optimized/Reduced/Improved: Optimized, Reduced, Improved — cho kết quả tối ưu.
  • Implemented/Architected/Designed: cho quyết định kỹ thuật.
  • Automated/Migrated/Integrated: cho automation hoặc hệ thống kết hợp.

Động từ nên tránh

Tệ Tại sao Thay bằng
Made Quá chung chung Built / Developed
Did Không nói lên gì Implemented / Engineered
Used Passive — không thể hiện vai trò Built X using Y
Helped Mờ nhạt — ai cũng "helped" Contributed to / Implemented
Worked on Không rõ contribution Designed / Developed
Was responsible for Passive voice — nhạt Owned / Architected

Tense: past tense cho project đã hoàn thành ("Built"), present tense cho project ongoing ("Building, Maintaining"). Nhất quán trong toàn CV.

6

Bullet tốt vs bullet tệ — 3 ví dụ

Project 1: RAG Chatbot

Tệ:

• Built a RAG chatbot using LangChain that answers questions about documents.

Vấn đề: không có số, không có domain cụ thể, không có deploy, không có eval metric.

Tốt:

• Built RAG system on 500-page Vietnamese Labor Code using LangChain 0.3 + ChromaDB
• Achieved Faithfulness 0.87, Answer Relevancy 0.91 (Ragas eval on 30-Q test set)
• Deployed FastAPI + Streamlit on Render with Docker, P95 latency 1.2s, $0.02/100 queries

Project 2: Image Classifier

Tệ:

• Made image classifier with deep learning.

Vấn đề: không có dataset, không có architecture, không có accuracy, không có deploy.

Tốt:

• Fine-tuned EfficientNet-B0 for 8-class Vietnamese food classification on 3.2k self-collected images
• Achieved 92% test accuracy with mixed augmentation + label smoothing (vs 78% baseline ResNet-18)
• Deployed Gradio on HF Spaces, CPU inference latency 80ms

Project 3: Churn Predictor

Tệ:

• Created machine learning model for customer churn prediction.

Vấn đề: không có model, dataset, metric, deploy, hay interpretability.

Tốt:

• Built XGBoost churn classifier on Telco dataset (7k samples, 21 features) — AUC 0.87 vs 0.70 logistic baseline
• Implemented SHAP-based feature interpretability + drift monitoring with Evidently
• FastAPI + Postgres deployment on Render with rate limiting

Pattern chung của bullet tốt: verb + model/tech + domain + số liệu + deploy/infra.

7

Quantification — mỗi project cần ít nhất 1 con số

Con số làm cho bullet có thể kiểm chứng và phân biệt được với người khác cũng làm cùng project template. Mỗi project cần ít nhất 1 số.

Các loại metric nên có

  • Result metric: accuracy, F1, AUC, Faithfulness, BLEU, ROUGE — tùy task.
  • Data scale: số samples, dataset size, số features, số tham số model.
  • Comparison: so với baseline (logistic, ResNet, keyword search) hoặc improvement %.
  • Latency/Scale: P95 latency, RPS, concurrent users.
  • Cost: $X / 1000 query, $Y / month infra.
  • Effort: built in X weeks, reduced manual work by Y hours/week.

Ví dụ cụ thể

"AUC 0.87"                                          → classification metric
"F1 0.84, Precision 0.74, Recall 0.69"             → full classification report
"Faithfulness 0.87 (Ragas on 30-Q eval set)"       → RAG eval với số câu cụ thể
"Reduced inference latency from 200ms to 50ms (4x)" → latency + improvement ratio
"Deployed model serving 100 RPS on 1 vCPU"         → scale + infra cost hint
"Trained on 50k samples, 12 features"              → data scale
"Multi-stage Docker build: 4GB → 800MB image"      → engineering optimization + số

Không có số? Đặt câu hỏi: "Tôi đã đo gì?" — nếu chưa đo, đây là lúc đo trước khi submit CV. Nếu project nhỏ, ít nhất ghi dataset size hoặc thời gian build.

8

Engineering detail — tư duy production

Accuracy một mình không đủ phân biệt junior học lý thuyết với người thực sự build hệ thống. Engineering detail cho thấy bạn suy nghĩ về production, không chỉ notebook.

Các loại engineering detail nên thêm

  • Deploy method: Docker, Render, AWS Lambda, HF Spaces, Fly.io.
  • Latency / scale: P95, P99, RPS đo được.
  • Monitoring / eval: Ragas eval, Evidently drift detection, MLflow tracking.
  • Cost optimization: caching, batching, model quantization.
  • Architecture decision: tại sao ChromaDB thay vì FAISS, tại sao XGBoost thay vì neural net.

Ví dụ engineering detail

"Multi-stage Docker build reducing image size from 4GB to 800MB"
→ optimization + số cụ thể

"Implemented Redis caching reducing OpenAI API cost 40% on duplicate queries"
→ cost optimization + mechanism + số

"Deployed FastAPI + Uvicorn workers=4, achieving 80 RPS on 1 vCPU"
→ config + measured throughput

"MLflow tracking for hyperparameter sweep (40 experiments, grid search)"
→ reproducibility + scale

"Evidently drift monitor on 3 features (age, tenure, monthly_charges)"
→ monitoring + cụ thể features nào

Không cần đưa tất cả vào CV — chọn 1 detail nổi bật nhất cho mỗi project, ưu tiên cái có thể đo được hoặc có decision rationale rõ ràng.

9

Số lượng và thứ tự project

Số lượng

  • Tối thiểu: 3 project mạnh.
  • Sweet spot: 4–5 project.
  • Tối đa: 6 (chỉ khi tất cả đều có metric + deploy).
  • Trái ngành: 3–4 project mạnh tốt hơn 6 project yếu. Chất quan trọng hơn lượng.

Thứ tự

Có 3 chiến lược sắp xếp:

  • Most impressive first (default): đặt project có metric, deploy, và complexity cao nhất lên đầu.
  • Most relevant to JD first (tailored CV): nếu JD nhấn mạnh RAG thì RAG project lên đầu, dù không phải project phức tạp nhất.
  • Most recent first (chronological): chỉ dùng khi project gần nhất cũng là project mạnh nhất.

Với trái ngành, "most impressive first" thường là lựa chọn an toàn cho CV generic. Khi apply job cụ thể, đổi sang "most relevant to JD".

10

Đa dạng domain — show breadth

Nếu bạn có 4–5 project, hãy đảm bảo chúng cover các loại kỹ năng khác nhau — không phải 5 project RAG chatbot.

  • 1 ML cổ điển: tabular data, sklearn, feature engineering (churn, fraud, recommendation).
  • 1 DL/CV hoặc NLP: PyTorch, fine-tuning classification hoặc NER.
  • 1 LLM/RAG/Agent: LangChain, prompt engineering, vector DB.
  • 1 deploy/MLOps focus: Docker, CI/CD, monitoring, FastAPI.
  • +1 domain crossover (optional): kết hợp background cũ với AI (vd: finance + fraud detection, y tế + image classification).

Domain crossover đặc biệt có giá trị với trái ngành vì nó cho thấy bạn hiểu cả kỹ thuật lẫn domain business — một lợi thế mà người học AI thuần túy không có.

11

Project description style

Quy tắc viết

  • Action-oriented: "Built X" — không "X was built" (passive).
  • Implied first person: không "I built", không "We built". Chỉ "Built". CV là ngữ cảnh cá nhân, "I" là thừa.
  • Tense nhất quán: past tense cho project xong, present tense cho ongoing. Không trộn lẫn trong cùng 1 project.
  • No filler: không "successfully", "effectively", "very efficiently" — nếu kết quả đo được thì số liệu đã nói thay.
  • No vague quantifier: không "various tools", "multiple models", "several datasets". Thay bằng số cụ thể: "3 models", "2 datasets", "5 tools".
  • No marketing tone: không "innovative", "cutting-edge", "state-of-the-art" — chỉ state fact.

Ví dụ so sánh

Tệ Tốt
I successfully built an innovative RAG system using various LLM tools Built RAG system using LangChain 0.3 + GPT-4o-mini on 500-page corpus
The model was trained effectively on multiple datasets Trained on 50k samples from 3 public datasets (Telco, UCI, Kaggle)
Was responsible for deploying the cutting-edge model to production Deployed FastAPI on Render, Docker, P95 latency 1.2s
12

Link, date, và tailor theo JD

Link

  • GitHub repo: bắt buộc. Repo phải public, có README.
  • Demo URL: nếu có — cộng điểm nhiều với recruiter non-technical.
  • Blog post / Loom video: optional nhưng có giá trị với JD cần communication skill.
  • Format: viết ngắn "[github]", "[demo]", "[video]" thay vì URL dài.
  • Kiểm tra: test link hoạt động trước khi submit. Link chết = bad impression ngay từ đầu.

Date

  • Single project: "Aug–Oct 2024".
  • Ongoing: "Jan 2025 – Present".
  • Project cũ (> 2 năm): chỉ ghi năm "2023" hoặc bỏ date.
  • Tránh: project 3 năm cũ không update — recruiter hỏi "còn maintain không?" mà không có câu trả lời tốt.

Tailor theo JD

CV generic và CV tailored là 2 file khác nhau:

  • JD nhấn mạnh RAG/LLM → đặt RAG project lên đầu, thêm keyword "LangChain", "vector database", "eval".
  • JD nhấn mạnh MLOps → highlight deploy + monitoring bullet, thêm "Docker", "CI/CD", "drift detection".
  • JD nói về tabular/analytics → ML cổ điển project lên đầu, thêm "feature engineering", "SHAP", "AUC".

Việc edit 2–3 bullet và đổi thứ tự project cho mỗi JD tốn 15 phút nhưng tăng tỷ lệ pass screening đáng kể.

13

Tránh fake và over-claim

Project section có thể verify được — đây là điểm khác biệt với phần Experience. Các rủi ro cụ thể:

  • Demo URL fail: recruiter click vào demo không load → instant reject.
  • Metric không verify được: claim "99% accuracy" trên project không có eval code trong repo → red flag khi hiring manager kiểm tra.
  • GitHub repo empty: link repo nhưng không có README hoặc chỉ có 1 commit → cho thấy project chưa xong.
  • Không explain được trong interview: hiring manager hỏi "tại sao chọn ChromaDB?", "chunk size là bao nhiêu?", "tại sao không dùng Pinecone?" — nếu không trả lời được → mất tin tưởng vào toàn CV.

Quy tắc: chỉ list những gì bạn thực sự đã làm và có thể giải thích trong 5 phút interview. Metric thấp hơn mà honest tốt hơn metric cao nhưng không defend được.

14

Ví dụ: 4-project section đầy đủ

Ví dụ dưới đây minh hoạ 4 project cover đủ 4 loại kỹ năng: ML cổ điển, DL, LLM/RAG, Agent.

PROJECTS

RAG Chatbot — Vietnamese Legal Documents                Aug–Oct 2024
[github.com/anhnv/rag-legal | demo.anhnv.dev/rag]
• Built RAG system on 500 pages of Vietnamese Labor Code using LangChain 0.3 + ChromaDB + GPT-4o-mini
• Achieved Faithfulness 0.87, Answer Relevancy 0.91 (Ragas eval on 30-Q test set)
• Deployed FastAPI + Streamlit on Render with Docker, P95 latency 1.2s, $0.02 per 100 queries

Customer Churn Predictor                                Jul–Aug 2024
[github.com/anhnv/churn | demo.anhnv.dev/churn]
• Built XGBoost classifier on Telco dataset (7k samples, 21 features) — AUC 0.87 vs 0.70 logistic baseline
• Implemented SHAP feature interpretability + Evidently drift monitoring (3 key features)
• Deployed FastAPI + Postgres on Render with rate limiting

Email Triage Agent                                      Sep–Nov 2024
[github.com/anhnv/agent | loom.com/share/xxx]
• LangGraph stateful agent: classify → search history → draft reply → human-in-the-loop approval
• Integrated PostgreSQL checkpointer for production state persistence across sessions
• Reduced email triage time from 30 min/day to 5 min for 10 test users (manual log)

Vietnamese Food Image Classifier                        Jun–Jul 2024
[github.com/anhnv/food | huggingface.co/spaces/anhnv/food]
• Fine-tuned EfficientNet-B0 for 8-class classification on 3.2k self-collected images
• Achieved 92% test accuracy with mixed augmentation + label smoothing (vs 78% ResNet-18 baseline)
• Deployed Gradio on HF Spaces, CPU inference latency 80ms

Nhận xét: mỗi project có 3 bullet, đủ verb + tech + domain + số + deploy. Project header có link ngắn. Không có bullet nào dài quá 1.5 dòng.

15

Checklist trước khi submit CV

Chạy qua checklist này cho mỗi project trước khi nộp CV:

  • [ ] GitHub repo public và có README?
  • [ ] Demo URL hoạt động? (test trên browser incognito)
  • [ ] Mỗi project có ít nhất 1 metric số?
  • [ ] Có thể giải thích project trong 5 phút phỏng vấn?
  • [ ] Tech stack trong bullet khớp với code trong repo?
  • [ ] Tất cả verb ở past tense (nếu project đã xong)?
  • [ ] Không có bullet nào quá 2 dòng?
  • [ ] Không có "various", "multiple", "several" — thay bằng số cụ thể?
  • [ ] Không có "successfully", "effectively", "innovative"?
  • [ ] Project ordering khớp với JD đang apply (most relevant first)?
16

Bài tiếp theo

Bài 28: Viết phần Experience khi chưa có kinh nghiệm AI chính thức — cách chuyển hoá kinh nghiệm domain cũ thành signal liên quan cho JD AI Engineer.