0
0
Lập trình
Sơn Tùng Lê
Sơn Tùng Lê103931498422911686980

SmartCV: Phân Tích Hồ Sơ Ứng Tuyển AI với Jetpack Compose & Kotlin

Đăng vào 1 tuần trước

• 2 phút đọc

Giới thiệu SmartCV

Trong bối cảnh tìm kiếm việc làm, việc tùy chỉnh hồ sơ ứng tuyển cho từng mô tả công việc là một thách thức lớn. SmartCV ra đời như một giải pháp giúp bạn phân tích hồ sơ và so sánh nó với yêu cầu công việc, từ đó gợi ý những kỹ năng còn thiếu và cải thiện hồ sơ của bạn.

Công Nghệ Sử Dụng

SmartCV được phát triển với một bộ công nghệ hiện đại:

  • Kotlin Multiplatform (KMP): cho phép chia sẻ logic điểm số và so khớp mô tả công việc.
  • Jetpack Compose: để xây dựng giao diện người dùng trên Android.
  • PdfBox-Android: để phân tích định dạng PDF.
  • Công Cụ Đánh Giá Dựa Trên NLP: thực hiện phân tích chất lượng hồ sơ và so khớp từ khóa trong mô tả công việc.
  • GitHub Actions CI: tự động hóa quy trình xây dựng và kiểm tra.

Phân Tích Hồ Sơ (Logic Chính)

Dưới đây là hàm phân tích hồ sơ:

kotlin Copy
fun analyzeResumeText(text: String): AnalysisResult {
    val wordCount = text.split("\\s+".toRegex()).size
    val verbHits = ACTION_VERBS.count { text.contains(it, ignoreCase = true) }

    val score = (verbHits * 10) + (if (wordCount in 400..900) 20 else 0)

    return AnalysisResult(
        overallScore = score,
        signals = mapOf("Số từ" to wordCount, "Động từ hành động" to verbHits),
        recommendations = buildRecommendations(wordCount, verbHits)
    )
}

Hàm này sẽ kiểm tra số lượng từ, số lượng động từ hành động và tạo ra các gợi ý như:

  • “Thêm nhiều điểm mạnh có số liệu cụ thể.”
  • “Hồ sơ quá dài — cắt ngắn xuống 2 trang.”

So Khớp Với Mô Tả Công Việc

Logic so khớp hồ sơ với mô tả công việc được thực hiện như sau:

kotlin Copy
val resumeTokens = tokenize(resumeText).tokens.keys.map(::stem).toSet()
val jdTokens = tokenize(jdText).tokens.keys.map(::stem).toSet()

val present = jdTokens.intersect(resumeTokens)
val matchScore = (present.size.toDouble() / jdTokens.size * 100).roundToInt()

SmartCV sẽ tính toán điểm số so khớp (%) và đánh dấu các từ khóa còn thiếu. Ví dụ: nếu mô tả công việc yêu cầu CI/CD và DataStore nhưng hồ sơ của bạn không đề cập đến chúng, chúng sẽ được đánh dấu là thiếu sót.

Giao Diện Người Dùng (Jetpack Compose)

Giao diện của SmartCV bao gồm:

  • Đồng hồ tròn hiển thị điểm số tổng thể.
  • Thanh tiến trình cho các điểm số phụ (số từ, động từ, chỉ số).
  • Chips cho các kỹ năng đã so khớp và còn thiếu.
  • Thẻ hiển thị mô tả công việc với các gợi ý từ khóa còn thiếu.

Quy Trình CI/CD

Repo của SmartCV được cấu hình với quy trình làm việc GitHub Actions:

  • Xây dựng và kiểm tra trên mỗi pull request.
  • Biên dịch APK và tải lên dưới dạng artifact.

Kế Hoạch Tương Lai

SmartCV sẽ được phát triển thêm với các tính năng:

  • Xuất dữ liệu sang PDF/CSV.
  • Thêm điểm số theo phong cách ATS (đọc hiểu, định dạng).
  • Mở rộng KMP cho iOS.

Liên Kết Hữu Ích

Phản Hồi Từ Người Dùng

Chúng tôi rất mong nhận được phản hồi từ bạn! Những tính năng nào khác sẽ giúp SmartCV trở nên hữu ích hơn cho các nhà phát triển và người tìm việc?

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào