Hôm nay mình sẽ hướng dẫn anh em dùng ai-job-search để đánh giá tin tuyển dụng và soạn hồ sơ sát từng vị trí, từ lúc nhập kinh nghiệm đến lúc đọc lại bản nháp.
Mình soạn hướng dẫn từ tài liệu của chính repo, tức thư mục chứa code và các hướng dẫn cho công cụ.
Đây là project độc lập dùng Claude Code, công cụ AI nhận yêu cầu và làm việc với file trên máy, chứ không do Anthropic duy trì. Mình chưa chạy thử toàn bộ quy trình từ lúc cài công cụ đến khi soạn thư trên một máy cài mới, nên anh em đọc kỹ từng bước nhé.
Bước 1: Chuẩn bị ai-job-search riêng
Anh em cần chỗ riêng tư để lưu hồ sơ tìm việc. Tài liệu của repo cảnh báo: bản fork trên GitHub luôn công khai, mà bước nhập hồ sơ lại ghi tên, liên hệ, mức lương của anh em vào file.

Bản fork là repo được chép về tài khoản GitHub của anh em. Nếu anh em fork rồi đưa hồ sơ lên GitHub, tên, thông tin liên hệ, lịch sử làm việc và mức lương mong muốn có thể xuất hiện công khai.
Anh em cần một repo private, tức repo chỉ người được cấp quyền mới xem được. Đừng fork nhé. Cứ tạo repo private trên GitHub rồi đặt repo gốc làm upstream.
Anh em mở file SETUP.md trong repo, làm theo mục 8 để tạo repo private với repo gốc làm upstream. Tạo xong repo private, anh em clone nó về máy rồi mới sang phần cài công cụ, vì lệnh ở bước 2 phải chạy trong thư mục này.
Anh em chỉ fork khi muốn đóng góp code cho repo này. Còn để tìm việc thì anh em bỏ qua đoạn lệnh này.
gh repo fork MadsLorentzen/ai-job-search --clone
cd ai-job-searchBước 2: Cài công cụ tìm việc
Anh em gõ lệnh trong terminal, tức cửa sổ nhập lệnh trên máy. Anh em cần Python 3.10 trở lên và Bun trước khi cài công cụ tìm việc; Python chạy lệnh cài bên dưới, còn Bun phục vụ các công cụ tìm trên trang tuyển dụng.

Mình báo trước: theo tài liệu, Claude Code không có gói miễn phí, anh em cần gói Claude Pro/Max/Team hoặc credit API của Anthropic. Vì anh em tạo repo private thay vì fork, hãy mở terminal trong thư mục repo private có chứa tools/install_portal_clis.py rồi chạy lệnh dưới đây.
python3 tools/install_portal_clis.pyLệnh này cài dependency, tức thư viện cần để công cụ chạy. Nếu công cụ nào có script tự chạy lúc cài, lệnh sẽ bỏ qua công cụ đó và báo cho anh em biết.
Anh em cần cài LaTeX để dàn trang CV và thư xin việc; tài liệu nêu TeX Live, MacTeX, TinyTeX hoặc MiKTeX. lualatex và xelatex là hai chương trình biến file LaTeX thành PDF. Tài liệu dùng lualatex cho CV và xelatex cho thư xin việc, nên anh em cài LaTeX nào cũng phải có đủ hai công cụ này.
Nếu dùng TinyTeX hoặc BasicTeX bản gọn, anh em cài thêm các gói LaTeX được liệt kê trong SETUP.md.
Bước 3: Đưa hồ sơ thật vào
Mình nói thẳng: anh em nhập hồ sơ thế nào thì bản nháp ra thế đó, nên anh em ghi những việc thật sự đã làm, kèm sản phẩm làm bằng chứng. Giờ anh em mở phiên chat: chạy lệnh dưới đây trong terminal đang đứng ở thư mục repo.
claudeKhi Claude Code đã mở, anh em gõ /setup ngay trong đó, đừng gõ vào terminal thường.
/setupLệnh /setup cho anh em ba cách: đọc tài liệu trong thư mục documents/, nhận CV dán vào chat, hoặc hỏi đáp từng câu. Với cách đọc thư mục, anh em đặt CV, file đã export từ LinkedIn và thư người khác viết giới thiệu anh em vào documents/ để công cụ đọc.
Cách dễ nhất là dán CV vào chat. Xong anh em đọc lại phần kinh nghiệm công cụ vừa ghi, chỗ nào sai hoặc thừa thì sửa ngay.
Bước 4: Tìm việc rồi chọn tin
Anh em gõ /scrape trong Claude Code, như lúc gõ /setup, để tìm việc theo hồ sơ đã nhập.
/scrapeMình đọc tài liệu thì thấy /scrape sẽ tìm trên nhiều trang tuyển dụng, loại tin trùng rồi xếp theo mức hợp với hồ sơ của anh em.
Nếu anh em tìm việc ở Việt Nam, đừng mặc định /scrape sẽ tìm đúng thị trường, vì Jobindex và Jobnet được viết cho Đan Mạch. Tài liệu ghi linkedin-search dùng được cho mọi nước, còn /add-portal giúp thêm công cụ tìm trên trang tuyển dụng tại thị trường anh em cần.
Nếu anh em đã có sẵn link tin thì nhảy thẳng sang /apply, khỏi cần /scrape hay /rank. Khi kết quả nhiều hơn mức muốn đọc, anh em gõ /rank trong Claude Code để chấm điểm hàng loạt, rồi chọn số thứ tự để chuyển sang /apply.
/rankBước 5: Soạn hồ sơ cho một vị trí
Công cụ sẽ đánh giá độ hợp của tin trước, rồi mới viết CV và thư. Với tin có link, anh em nhập /apply kèm link trong Claude Code; ví dụ dưới đây được chép từ tài liệu và dùng trang tuyển dụng của Đan Mạch.
/apply https://jobindex.dk/job/1234567Nếu trang tuyển dụng chặn truy cập tự động, anh em gõ /apply rồi dán nguyên nội dung tin ngay sau đó trong phiên chat. Theo tài liệu, quy trình /apply đánh giá độ hợp, soạn CV và thư xin việc, nhờ một agent thứ hai nhận xét, chỉnh lại rồi đưa bản cuối.
Một agent ở đây là một phiên AI được giao riêng một việc trong quy trình, chẳng hạn đọc lại bản nháp CV hoặc thư xin việc để chỉ ra chỗ còn yếu. Câu nào kể kinh nghiệm anh em chưa từng có thì xoá hết trước khi gửi nhé.
Mình lưu ý: repo coi nội dung tin tuyển dụng là dữ liệu không đáng tin, Nguồn nói tin sẽ qua một bước kiểm tra cố định trước (phát hiện chữ ẩn, ký tự vô hình, câu giống lệnh, link ẩn), nhưng phần các agent đọc và viết thì chỉ dựa vào lời dặn cho AI, không phải môi trường cô lập. Với trang tuyển dụng lạ, anh em đọc lại những gì công cụ lấy về và viết ra trước khi gửi.
Mình chạy thử một prompt đánh giá hồ sơ
Log ghi mình gửi một prompt cho Claude Sonnet qua Claude Code (claude -p), không kèm file hay công cụ nào. Mình kể lại lần chạy theo đúng những gì log ghi. Anh em coi như một ví dụ minh hoạ, đừng xem là kết quả chắc chắn cho hồ sơ của anh em.
Prompt là yêu cầu anh em viết cho AI để giao việc cụ thể. Mình yêu cầu đánh giá hồ sơ địa vật lý biết Python cho vị trí kỹ sư AI cần kinh nghiệm làm ứng dụng, rồi gợi ý mở đầu thư theo hướng tương lai.
Theo log, Claude Sonnet trả lời sau 16,2 giây cho yêu cầu đánh giá hồ sơ. Câu trả lời của Claude Sonnet dài 692 chữ, gồm phần đánh giá và gợi ý viết thư.
Trong câu trả lời, Claude Sonnet chấm mức phù hợp 5,5/10 cho hồ sơ trong prompt. Theo log, model khen phần Python, xử lý dữ liệu và tiếng Anh, còn chỉ ra phần thiếu kinh nghiệm làm ứng dụng AI và triển khai cloud. Anh em có thể hiểu cloud là máy chủ thuê trên mạng để chạy ứng dụng.
Anh em lấy kết quả làm khung để điền kinh nghiệm thật. Câu nào gợi ý anh em từng làm một project chưa hề có thì xoá đi, dù nghe hợp với vị trí đến mấy.
Phần này chỉ cho anh em thấy kiểu đánh giá AI đưa ra; nó không thay cho việc tự chạy /apply với tin thật rồi đọc kỹ CV và thư xuất ra. Mình chưa chạy /apply với tin thật, nên chưa thấy bước agent thứ hai nhận xét làm ra sao.
Lỗi hay gặp
Theo tài liệu, pdflatex hay lỗi font-expansion của fontawesome5 trên MiKTeX bản mới, nên CV được biên dịch bằng lualatex. Nếu CV không ra được PDF, anh em kiểm tra xem máy đang dùng lualatex chứ không phải pdflatex, rồi hãy sửa nội dung.
Mình nói thêm về phần kiểm tra PDF: công cụ sẽ thử xem hệ thống lọc hồ sơ có đọc được chữ trong file của anh em không. pypdf và Poppler là hai công cụ nhỏ để đọc chữ trong file PDF. Nếu máy thiếu cả hai, bước kiểm tra này chỉ còn cách xem từ khóa bằng mắt.
Anh em cài pypdf bằng lệnh dưới đây để công cụ đọc được chữ trong PDF, khỏi phải kiểm tra bằng mắt.
pip install pypdfDù cài hay không, anh em vẫn mở file PDF xuất ra và đọc như người tuyển dụng trước khi gửi.
Mình khuyên anh em đọc bản nháp hai lượt: lượt đầu chỉ gạch những câu viết quá tay so với việc mình đã làm, lượt hai mới chỉnh câu cho hay. Vào phỏng vấn, anh em phải giải thích được từng dòng đã viết.



