Skip to content

Repository files navigation

LibMatch: Automated Talent Acquisition from GitHub

LibMatch is an AI-powered framework for proactive talent acquisition that identifies qualified developers for a given job posting by matching job requirements with technology libraries used by GitHub developers.

Annals of Data Science, 2026

Paper · Installation · Usage · Citation

Python package implementing LibMatch for developer talent acquisition by matching job descriptions with developer libraries using KeyBERT and SentenceBERT.

Quick Start

Installation

pip install -r requirements.txt

Run Validation

python libmatch/devlibmatcher/pipeline.py --use-library-ranking-csv --use-anonymized

Or using Python:

from libmatch.devlibmatcher.pipeline import devlibmatcher

results = devlibmatcher(
    use_library_ranking_csv=True,
    use_anonymized=True
)

Data Files

The package includes anonymized data files in libmatch/data/:

  • library_similarity_ranking.csv - Pre-computed library similarity ranking
  • developer_pool_anonymized.csv - Anonymized developer pool data
  • validation_labels_anonymized.csv - Anonymized validation labels
  • finetuning_training_data.csv - Training data for fine-tuning (4,471 library description-keyword pairs)
  • ToolBERT.csv - StackShare.io tool data (2,237 entries)

Model

Fine-tuned SentenceBERT model is included in libmatch/model/:

  • all-mpnet-base-v2-finetuned-stackwiki-accelerate/ - Fine-tuned model (418MB, tracked via Git LFS)

Structure

libmatch/
├── libselector/          # Phase 1: LibSelector
├── devlibscraper/       # Phase 2: DevLibScraper
├── devlibmatcher/       # Phase 3: DevLibMatcher
├── data/                # Data files
└── model/               # Fine-tuned model

Fine-tuning

To fine-tune your own SentenceBERT model:

from libmatch.libselector.fine_tuning import fine_tune_sentencebert

fine_tune_sentencebert(
    training_data_path='libmatch/data/finetuning_training_data.csv',
    output_path='output/my-model'
)

Paper Reference

Treasure Hunting in the Talent Ocean: Automating Talent Acquisition for Competent Developers from GitHub

This repository implements the three-phase framework proposed in the paper:

  1. LibSelector — Selects software libraries relevant to a given job posting.
  2. DevLibScraper — Identifies GitHub developers who have used the selected libraries.
  3. DevLibMatcher — Matches and classifies developer candidates according to the job requirements.

Citation

@article{kim2026libmatch,
  title   = {Treasure Hunting in the Talent Ocean: Automating Talent Acquisition for Competent Developers from GitHub},
  author  = {Kim, Minchan and Lee, Hakyeon},
  journal = {Annals of Data Science},
  year    = {2026},
  doi     = {10.1007/s40745-026-00705-4}
}

About

Official implementation of LibMatch, an AI-powered proactive talent acquisition framework that matches job postings with qualified GitHub developers based on their software library usage (Annals of Data Science, 2026).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages