Skip to content
View mohammadi-hadi's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report mohammadi-hadi

Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
mohammadi-hadi/README.md

Hadi Mohammadi, PhD

Senior AI & Data Science Expert at AcademicTransfer
PhD in Explainable NLP — Utrecht University, 2026

Production LLM & ranking systems · LLM evaluation & explainability research

Website CV Google Scholar ORCID LinkedIn Email


What I do

Industry — AcademicTransfer. I lead AI and data-science work across CV–vacancy matching and ranking, LLM content optimisation, recruiter analytics, and end-to-end ML tooling for the two-sided Dutch academic-jobs marketplace (22 research universities and university medical centres).

Research — Utrecht University. My doctoral thesis develops explainable NLP across the full LLM life cycle, from token-level SHAP analysis to cross-cultural moral-alignment evaluation of LLMs. Recent work centers on LLM evaluation: LLM-as-judge frameworks (EvalMORAAL) and preference optimization under annotator disagreement (RA-DPO, MAP-PO).

I work where engineering rigor meets explainability research — shipping models that deliver in production and expose why they make each decision.


Doctoral research

Let Me Explain! — wrap cover

Let Me Explain! Explainable NLP for Understanding Large Language Models

Utrecht University, 2026

A six-chapter empirical thesis on explainability across the full LLM life cycle: a survey of XAI for NLP, a transparent BERT pipeline for online sexism detection, SHAP-driven probing of AI-text-detector robustness, content-vs-demographic explanations for LLM annotators, cross-cultural moral-alignment evaluation of 26 LLMs against the World Values Survey and PEW, and the EvalMORAAL chain-of-thought-plus-LLM-as-judge framework benchmarking 20 LLMs across 64 countries.

Publications & code

Each chapter has a paper and a public companion repository with citation metadata and a tagged release.

# Paper Venue Links
1 Explainability in Practice: A Survey of Explainable NLP Across Various Domains under review arXiv · code
2 A Transparent Pipeline for Identifying Sexism in Social Media: Combining Explainability with Model Prediction Applied Sciences, 2024 doi · code
3 Explainability-Based Token Replacement on LLM-Generated Text arXiv, 2025 arXiv · code
4 Assessing the Reliability of LLM Annotations in the Context of Demographic Bias and Model Explanation GeBNLP @ ACL 2025 doi · page · code
5 Exploring Cultural Variations in Moral Judgments with Large Language Models CLIN Journal 15, 2026 journal · arXiv · code
6 EvalMORAAL: Interpretable Chain-of-Thought and LLM-as-Judge Evaluation for Moral Alignment in Large Language Models *SEM 2026 paper · arXiv · code

Full publication list on mohammadi.cv and Google Scholar.


Industry projects

AcademicTransfer — production AI for academic recruitment (2024–present)

LLM and ML systems serving the Dutch academic job market, end to end: data pipelines, model serving, monitoring, and recruiter-facing tools.

  • Semantic CV-to-vacancy matching and LLM-assisted priority ranking of applicants, evaluated with A/B tests, uplift analysis, and bandit simulations
  • LLM-based job-description optimisation and vacancy-text rewriting (OpenAI API)
  • Recruiter analytics and model-monitoring dashboards
  • CRM and workflow automation for recruitment teams

Internal repositories at @academictransfer (private; access on request):

Repository What it does
at-ai Core AI/NLP services behind CV ranking and job-description optimisation
at-cv-matcher Semantic CV-to-vacancy matching service
at-cv-sorter Production CV priority-sorting pipeline
at-vacature-rewriter LLM-based vacancy-text rewriting for recruiters
at-concept-extractor Concept extraction from CVs and job descriptions
at-dashboard Internal analytics and ML-monitoring dashboard
at-crm CRM and ML integration for recruiter workflows
at-elearning Recruiter training and onboarding platform

Bdood.bikes — bike-sharing operations intelligence (2019–2020)

As Head of Data Science & BI I built the operations-intelligence layer for a city-scale bike-sharing fleet: bicycle-transportation-intelligence — a Streamlit dashboard on live Oracle fleet data, with GeoPandas geofencing and H3 spatial indexing plus folium maps to plan rebalancing and collection.

Earlier: Senior Data Scientist at SnowaTec (2021–2023) — details on mohammadi.cv.


Open source

The evaluation libraries are one line of work rather than a collection. Each takes a single way evaluation goes wrong — a judge with a position bias, a label set nobody checked, a leaderboard read past its own confidence intervals, an experiment called too early — and makes it measurable, with the headline finding stated as a number instead of a claim. evalstack is the map of all eleven: what each measures, what it found, and the two chains that run end to end.

Evaluation

  • EvalMORAAL — chain-of-thought plus LLM-as-judge evaluation of moral alignment, benchmarking 20 LLMs across 64 countries against the World Values Survey and PEW (*SEM 2026).
  • trajectory-judge — how much an LLM judge misses when an agent reaches the right answer the wrong way: a tool-using environment with injected faults, five judge designs compared on detection, step localisation, calibration and cost.
  • judgekit — bias probes for LLM judges, each with a bootstrap confidence interval: position, verbosity, self-preference and calibration, where qwen2.5:14b picks whichever answer is shown first 77% of the time.
  • judgepanel — estimate how accurate your judges are without any gold labels: Dawid–Skene EM over the disagreement pattern alone, which exposes a flag-everything judge exactly (estimated specificity 0.000).
  • abkit — sample-ratio mismatch, peeking, multiple testing and winner's-curse checks for experiment readouts, applied to 4,873 real Upworthy tests where 15% fail the sample-ratio check.

Ranking and production

  • spark-search-ranking — counterfactual learning-to-rank for marketplace search logs in PySpark: position-bias estimation, IPS-weighted training, NDCG evaluation with a full test suite.
  • rankkit — ranking metrics with error bars, and click metrics that survive position bias: on the bundled example, counting raw clicks rejects a ranker that is genuinely better and correcting for position reverses the verdict.
  • dynamic-pricing-dashboard — dynamic-pricing simulator with Thompson sampling demand learning and forward-looking customers, running fully in the browser via WebAssembly (live demo).

Curated

  • awesome-explainable-nlp — 145 papers, tools, datasets, tutorials and venues on explainability for NLP and LLMs, with weekly automated link checking. Contributions welcome.

The other six evaluation libraries — raterkit, retainkit, calikit, abeval, arenakit and judgewatch — are described in evalstack.

Also maintained: MAP-PO and RA-DPO (preference optimization under annotator disagreement), explainkit (explainability audits), ml-foundations · modern-ai-engineering (from-scratch ML and production LLM notes), and guides to ML learning paths, European summer schools and Dutch AI master's programmes.

Elsewhere: FBB Sustainability Analysis — an environmental-impact analysis CLI on a Dutch firm panel, built for the Firmbackbone research infrastructure.

Everything else is in the repositories tab.


Toolbox

Languages Python · R · SQL · Bash · LaTeX
ML / DL PyTorch · TensorFlow · scikit-learn · XGBoost · Keras
LLMs & NLP Hugging Face Transformers · OpenAI API · LangChain · spaCy
Explainability SHAP · LIME · Captum
Data engineering pandas · NumPy · Polars · DuckDB · Spark · PostgreSQL
MLOps Docker · Kubernetes · GitHub Actions · MLflow · Weights & Biases
Cloud & HPC AWS · Google Cloud · Azure · SURF Snellius
Serving & viz FastAPI · Flask · Streamlit · Plotly · Matplotlib

Get in touch

Open to applied AI roles and consulting in NL / EU, and to research collaboration on explainability, LLM evaluation, and cultural alignment.

mohammadi.cv · LinkedIn · ORCID · hadi.mohammadi@outlook.com


Industry work lives in private AcademicTransfer repositories · research code is open at the chapter repos linked above.

Pinned Loading

  1. MAP-PO MAP-PO Public

    Behavioral cluster-driven multi-agent preference optimization (SFT / DPO / GRPO) for sexism detection on EXIST 2024

    Python

  2. EvalMORAAL EvalMORAAL Public

    EvalMORAAL: chain-of-thought and LLM-as-judge evaluation of moral alignment in LLMs (*SEM 2026). pip-installable evaluation framework.

    Python 1

  3. spark-search-ranking spark-search-ranking Public

    Counterfactual learning-to-rank for marketplace search logs in PySpark: position-bias estimation, IPS-weighted training, NDCG evaluation against known ground truth

    Python

  4. trajectory-judge trajectory-judge Public

    How much an LLM judge misses when an agent reaches the right answer the wrong way: a synthetic tool-using environment with injected faults, and a controlled comparison of outcome-only, step-rubric …

    Python

  5. calikit calikit Public

    Calibration auditing for probabilistic predictions: reliability diagrams, ECE, Brier decomposition, temperature scaling. Zero dependencies.

    Python

  6. judgekit judgekit Public

    Bias probes for LLM judges, each with a bootstrap confidence interval: position, verbosity, self-preference, calibration and stability — qwen2.5:14b picks whichever answer is shown first 77% of the…

    Python