Mục lục
- Mục tiêu bài học
- Vì sao Project section quan trọng nhất với trái ngành
- Cấu trúc STAR-like cho bullet
- Format 4 dòng cho mỗi project
- Action verb: tốt vs tệ
- Bullet tốt vs bullet tệ — 3 ví dụ
- Quantification — mỗi project cần ít nhất 1 con số
- Engineering detail — tư duy production
- Số lượng và thứ tự project
- Đa dạng domain — show breadth
- Project description style
- Link, date, và tailor theo JD
- Tránh fake và over-claim
- Ví dụ: 4-project section đầy đủ
- Checklist trước khi submit CV
- Bài tiếp theo
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
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.
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
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).
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.
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.
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.
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.
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".
Đ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ó.
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 |
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ể.
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.
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.
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)?
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.
