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

Block or report mohammadi-hadi

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

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

Report abuse
mohammadi-hadi/README.md

Hadi Mohammadi

Senior AI & Data Science Expert at AcademicTransfer
PhD in Explainable NLPUtrecht 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 16% 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 · [email protected]


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