JobMatchAI-An Intelligent Job Matching Platform Using Knowledge Graphs, Semantic Search and Explainable AI
Organizations: Arizona State University
Abstract
Recruiters and job seekers rely on search systems to navigate labor markets, making candidate matching engines critical for hiring outcomes. Most systems act as keyword filters, failing to handle skill synonyms and nonlinear careers, resulting in missed candidates and opaque match scores. We introduce JobMatchAI, a production-ready system integrating Transformer embeddings, skill knowledge graphs, and interpretable reranking. Our system optimizes utility across skill fit, experience, location, salary, and company preferences, providing factor-wise explanations through resume-driven search workflows. We release JobSearch-XS benchmark and a hybrid retrieval stack combining BM25, knowledge graph and semantic components to evaluate skill generalization. We assess system performance on JobSearch-XS across retrieval tasks, provide a demo video, a hosted website and installable package.
Figures & tables
| Factor ( ) | Feature ( ) | |
|---|---|---|
| Skill match | 0.35 | Jaccard + KG relatedness bonus |
| Experience | 0.25 | Level-distance penalty |
| Location | 0.15 | Tiered: exact / state / remote |
| Salary | 0.10 | Expectation-to-midpoint ratio |
| Semantic sim. | 0.10 | |
| Company fit | 0.05 | Industry & size preference |
| BM25 | Sem. | KG | NDCG@5 | NDCG@10 | R@50 | R@100 | P50 (ms) |
|---|---|---|---|---|---|---|---|
| ✓ | ✗ | ✗ | 0.721 | 0.756 | 0.49 | 0.57 | 79 |
| ✗ | ✗ | ✓ | 0.758 | 0.790 | 1.00 * | 1.00 * | – |
| ✓ | ✓ | ✗ | 0.740 | 0.771 | 0.36 | 0.42 | 80 |
| ✓ | ✗ | ✓ | 0.747 | 0.776 | 0.33 | 0.39 | 81 |
| ✓ | ✓ | ✓ | 0.750 | 0.780 | 0.29 | 0.35 | 82 |
| ✓ | ✓ | ✓ +R | 0.785 | 0.810 | 0.29 | 0.35 | 82 |
| Intent type | n | Mean | Std | IQR |
|---|---|---|---|---|
| Job title | 3 | 0.90 | 0.09 | 0.08 |
| Natural language | 6 | 0.74 | 0.34 | 0.39 |
| Skill synonym | 6 | 0.60 | 0.31 | 0.46 |
| Overall | 15 | 0.72 | 0.30 | 0.45 |
| Extractor | NDCG@10 | R@100 |
|---|---|---|
| High-precision (current) | 0.791 | 0.336 |
| High-recall | 0.817 | 0.326 |
| (recall precision) | +0.026 |
| Metric | Mean Std |
|---|---|
| Task-based evaluation | |
| Top-5 relevance (Smart Search) | 3.92 0.79 |
| Skill synonym handling | 3.75 0.87 |
| Explanation helpfulness | 4.17 0.72 |
| Weight adjustment usefulness | 3.83 0.94 |
| Usability | |
| Feature | JobMatchAI | Jobright | Teal | Jobscan | |
|---|---|---|---|---|---|
| Semantic search | ✓ | ~ | ✓ | ✗ | ✗ |
| Knowledge graph | ✓ | ✗ | ✗ | ✗ | ✗ |
| Hybrid retrieval | ✓ | ✗ | ✗ | ✗ | ✗ |
| Explainable scores | ✓ | ✗ | ✗ | ✗ | ~ |
| Factor-level control | ✓ | ✗ | ✗ | ✗ | ✗ |
| Resume-driven search | ✓ | ~ | ✓ | ✓ | ✓ |
Appendix figures & tables8 assets
Supplementary material from the paper’s appendix.
Appendix
| Field | Base P | Base R | Base F1 | Ours P | Ours R | Ours F1 | F1 |
|---|---|---|---|---|---|---|---|
| Name | – | – | 0.33 | – | – | 0.64 | +0.31 |
| Skills | 0.41 | 0.60 | 0.48 | 0.94 | 0.12 | 0.19 | 0.29 |
| Education | 0.74 | 0.31 | 0.42 | 1.00 | 1.00 | 1.00 | +0.58 |
| Model | Acc. | F1 | AUROC | Notes |
|---|---|---|---|---|
| Pairwise MLP | 0.70 | 0.45 | 0.72 | Concatenated embedding features; reasonable baseline |
| Cross-encoder | 0.30 | 0.34 | 0.51 | Off-the-shelf without fine-tuning; poor calibration |
| Dimension | Slice | NDCG@10 | Recall@100 | Notes |
|---|---|---|---|---|
| Location | Same-region | 0.78 | 0.21 | Best precision with location match |
| Location | Cross-region | 0.50 | 0.85 | High recall, low ranking precision |
| Location | Remote-friendly | 0.66 | 0.57 | Moderate precision and recall |
| Salary | Within band | 0.77 | 0.23 | Highest NDCG with salary overlap |
| Salary | Unknown/noisy | 0.63 | 1.00 | Perfect recall; fallback when salary missing |
| Seniority | Junior | 0.62 | 0.92 | High recall, lower ranking quality |
| Statistic | Value |
|---|---|
| Total Queries | 30 |
| Total Jobs | 1,283 |
| Silver Labels | 29,013 |
| Gold Labels | 30 |
| Train / Dev / Test | 15 / 6 / 9 |
| P50 | P90 | P95 | Mean Std | |
|---|---|---|---|---|
| Latency (ms) | 81.55 | 84.66 | 86.00 | 81.67 2.69 |
| Metric | @1 | @3 | @5 | @10 | @20 | @50 |
|---|---|---|---|---|---|---|
| NDCG | 0.667 | 0.720 | 0.733 | 0.756 | 0.759 | 0.772 |
| Recall | 0.010 | 0.037 | 0.061 | 0.131 | 0.262 | 0.574 |
| Precision | 0.667 | 0.733 | 0.747 | 0.773 | 0.767 | 0.703 |
| Split | Queries | NDCG@10 | MRR | P50 (ms) |
|---|---|---|---|---|
| Train | 15 | 0.890 | 0.922 | 79.08 |
| Dev | 6 | 0.402 | 0.389 | 77.23 |
| Test | 9 | 0.769 | 0.749 | 78.23 |
| Profile | NDCG@10 | R@10 | MRR | P50 (ms) |
|---|---|---|---|---|
| Entry SWE | 0.721 | 0.144 | 0.780 | 81.90 |
| Senior Data Eng | 0.642 | 0.148 | 0.747 | 82.32 |
| H1B ML | 0.642 | 0.148 | 0.747 | 83.10 |
| Public Health | 0.721 | 0.144 | 0.780 | 82.87 |
| GIS Analyst | 0.721 | 0.144 | 0.780 | 82.88 |