[{"data":1,"prerenderedAt":514},["ShallowReactive",2],{"project-nlp-hr-onboarding":3},{"id":4,"title":5,"description":6,"extension":7,"favorite":8,"icon":9,"meta":10,"publishedAt":503,"readingTime":496,"shortDescription":504,"slug":505,"status":506,"stem":507,"tags":508,"type":512,"__hash__":513},"projects\u002Fprojects\u002Fnlp-hr-onboarding.md","Intelligent HR Onboarding Assistant","Intelligent HR onboarding assistant using RAG, LangChain agents, and MistralAI embeddings to help new employees navigate company policies, employee directory, and administrative tasks.","md",false,"i-ph-robot-duotone",{"body":11},{"type":12,"value":13,"toc":486},"minimark",[14,28,33,43,46,50,90,94,105,109,117,121,226,230,235,251,254,275,279,285,289,380,384,425,429,435,439,456,460,477,482],[15,16,17,21,24],"p",{},[18,19,20],"strong",{},"NLP Project — Master M2",[22,23],"br",{},[25,26,27],"em",{},"Authors: Arthur DANJOU, Axelle MERIC, Moritz von SIEMENS",[29,30,32],"h2",{"id":31},"project-overview","Project Overview",[15,34,35,36,38,39,42],{},"The ",[18,37,5],{}," is a conversational AI system designed to guide new employees during their first week at ",[18,40,41],{},"TechCorp",". It combines retrieval-augmented generation, tool-using agents, and conversational memory to provide accurate and actionable HR support.",[15,44,45],{},"The assistant can answer policy questions, retrieve employee information, schedule internal meetings, and prepare leave requests from natural-language prompts.",[29,47,49],{"id":48},"key-features","Key Features",[51,52,53,60,66,72,78,84],"ul",{},[54,55,56,59],"li",{},[18,57,58],{},"Semantic HR policy search"," powered by a RAG pipeline.",[54,61,62,65],{},[18,63,64],{},"Employee directory lookup"," from structured JSON records.",[54,67,68,71],{},[18,69,70],{},"Meeting scheduling tools"," integrated through LangChain.",[54,73,74,77],{},[18,75,76],{},"Automated leave request workflow"," from chat instructions.",[54,79,80,83],{},[18,81,82],{},"Sliding-window memory"," to keep multi-turn context coherent.",[54,85,86,89],{},[18,87,88],{},"Interactive Gradio UI"," with visible agent actions and tool calls.",[29,91,93],{"id":92},"architecture","Architecture",[95,96,101],"pre",{"className":97,"code":99,"language":100},[98],"language-text","┌──────────────────────────────────────────────────────────┐\n│           HR Onboarding Assistant — TechCorp            │\n│                                                         │\n│  📝 System prompts (LangChain LCEL)                     │\n│  🧠 Sliding window conversational memory                │\n│  🔧 Tools:                                              │\n│     ├── 🔍 Knowledge base search (RAG)                  │\n│     ├── 👤 Employee directory                           │\n│     ├── 📅 Meeting scheduling                           │\n│     ├── 🏖️ Leave request submission                     │\n│     └── 🕐 Current date and time                        │\n│  🔄 ReAct loop: reason → act → observe                  │\n│  📊 MistralAI Embeddings + Qdrant Vector Store          │\n└──────────────────────────────────────────────────────────┘\n","text",[102,103,99],"code",{"__ignoreMap":104},"",[29,106,108],{"id":107},"prerequisites","Prerequisites",[51,110,111,114],{},[54,112,113],{},"Python ≥ 3.13",[54,115,116],{},"MistralAI API key",[29,118,120],{"id":119},"installation","Installation",[122,123,124,173,191],"ol",{},[54,125,126,129],{},[18,127,128],{},"Clone the repository",[95,130,134],{"className":131,"code":132,"language":133,"meta":104,"style":104},"language-bash shiki shiki-themes material-theme-lighter catppuccin-latte catppuccin-macchiato","git clone \u003Crepository-url>\ncd NLP-Intelligent-HR-Onboarding-Assistant-with-RAG-and-LangChain\n","bash",[102,135,136,163],{"__ignoreMap":104},[137,138,141,145,149,153,156,160],"span",{"class":139,"line":140},"line",1,[137,142,144],{"class":143},"sqbHp","git",[137,146,148],{"class":147},"sJlHP"," clone",[137,150,152],{"class":151},"sn2um"," \u003C",[137,154,155],{"class":147},"repository-ur",[137,157,159],{"class":158},"s0g_q","l",[137,161,162],{"class":151},">\n",[137,164,166,170],{"class":139,"line":165},2,[137,167,169],{"class":168},"sMj0x","cd",[137,171,172],{"class":147}," NLP-Intelligent-HR-Onboarding-Assistant-with-RAG-and-LangChain\n",[54,174,175,178],{},[18,176,177],{},"Install dependencies",[95,179,181],{"className":131,"code":180,"language":133,"meta":104,"style":104},"uv sync\n",[102,182,183],{"__ignoreMap":104},[137,184,185,188],{"class":139,"line":140},[137,186,187],{"class":143},"uv",[137,189,190],{"class":147}," sync\n",[54,192,193,196,198,199],{},[18,194,195],{},"Configure MistralAI API key",[22,197],{},"Set the environment variable:",[95,200,202],{"className":131,"code":201,"language":133,"meta":104,"style":104},"export MISTRAL_API_KEY=\"your_api_key\"\n",[102,203,204],{"__ignoreMap":104},[137,205,206,210,213,216,220,223],{"class":139,"line":140},[137,207,209],{"class":208},"s_I8y","export",[137,211,212],{"class":158}," MISTRAL_API_KEY",[137,214,215],{"class":151},"=",[137,217,219],{"class":218},"srDDN","\"",[137,221,222],{"class":147},"your_api_key",[137,224,225],{"class":218},"\"\n",[29,227,229],{"id":228},"usage","Usage",[231,232,234],"h3",{"id":233},"run-the-jupyter-notebook","Run the Jupyter notebook",[95,236,238],{"className":131,"code":237,"language":133,"meta":104,"style":104},"jupyter notebook projet.ipynb\n",[102,239,240],{"__ignoreMap":104},[137,241,242,245,248],{"class":139,"line":140},[137,243,244],{"class":143},"jupyter",[137,246,247],{"class":147}," notebook",[137,249,250],{"class":147}," projet.ipynb\n",[15,252,253],{},"Execute cells sequentially to:",[122,255,256,259,262,265,268],{},[54,257,258],{},"Analyze tokenization of HR documents",[54,260,261],{},"Create the Qdrant vector database",[54,263,264],{},"Initialize the ReAct agent",[54,266,267],{},"Run demonstrations",[54,269,270,271,274],{},"Launch the Gradio interface (runs on ",[102,272,273],{},"http:\u002F\u002F127.0.0.1:7860",")",[231,276,278],{"id":277},"data-structure","Data structure",[95,280,283],{"className":281,"code":282,"language":100},[98],"data\u002F\n├── entreprise.md    # HR knowledge base (leave policy, remote work, etc.)\n└── employés.json    # TechCorp employee directory\n",[102,284,282],{"__ignoreMap":104},[29,286,288],{"id":287},"learning-modules","Learning Modules",[290,291,292,308],"table",{},[293,294,295],"thead",{},[296,297,298,303,306],"tr",{},[299,300,302],"th",{"align":301},"left","TP",[299,304,305],{"align":301},"Concept",[299,307,229],{"align":301},[309,310,311,325,338,351,367],"tbody",{},[296,312,313,319,322],{},[314,315,316],"td",{"align":301},[18,317,318],{},"TP1",[314,320,321],{"align":301},"Embeddings",[314,323,324],{"align":301},"Document vectorization and cosine similarity retrieval",[296,326,327,332,335],{},[314,328,329],{"align":301},[18,330,331],{},"TP2",[314,333,334],{"align":301},"BPE Tokenization",[314,336,337],{"align":301},"Token-cost analysis with FR\u002FEN comparison",[296,339,340,345,348],{},[314,341,342],{"align":301},[18,343,344],{},"TP3",[314,346,347],{"align":301},"LLM + LangChain",[314,349,350],{"align":301},"ChatMistralAI setup, prompts, and LCEL chains",[296,352,353,358,361],{},[314,354,355],{"align":301},[18,356,357],{},"TP4",[314,359,360],{"align":301},"Agents + Memory",[314,362,363,366],{"align":301},[102,364,365],{},"@tool"," usage, ReAct orchestration, sliding-window memory",[296,368,369,374,377],{},[314,370,371],{"align":301},[18,372,373],{},"TP5",[314,375,376],{"align":301},"RAG + Gradio",[314,378,379],{"align":301},"Qdrant indexing, semantic retrieval, interactive UI",[29,381,383],{"id":382},"technologies","Technologies",[51,385,386,392,401,407,413,419],{},[54,387,388,391],{},[18,389,390],{},"LangChain",": LLM orchestration framework",[54,393,394,397,398,274],{},[18,395,396],{},"MistralAI",": LLM inference and embeddings (",[102,399,400],{},"mistral-embed",[54,402,403,406],{},[18,404,405],{},"Qdrant",": In-memory vector database",[54,408,409,412],{},[18,410,411],{},"Gradio",": Interactive web interface",[54,414,415,418],{},[18,416,417],{},"tiktoken",": BPE tokenization analysis",[54,420,421,424],{},[18,422,423],{},"pandas",": Employee data manipulation",[29,426,428],{"id":427},"main-dependencies","Main Dependencies",[95,430,433],{"className":431,"code":432,"language":100},[98],"langchain>=1.2.11\nlangchain-mistralai>=1.1.1\nlangchain-qdrant>=1.1.0\ngradio>=6.9.0\ntiktoken>=0.12.0\npandas>=3.0.1\n",[102,434,432],{"__ignoreMap":104},[29,436,438],{"id":437},"example-prompts","Example Prompts",[51,440,441,444,447,450,453],{},[54,442,443],{},"\"How many days of annual leave do I have?\"",[54,445,446],{},"\"What is the remote work policy?\"",[54,448,449],{},"\"Give me Claire Petit's contact information\"",[54,451,452],{},"\"Schedule a meeting with the Data Science team tomorrow at 2pm\"",[54,454,455],{},"\"I want to request leave from January 15th to 20th\"",[29,457,459],{"id":458},"authors","Authors",[51,461,462,467,472],{},[54,463,464],{},[18,465,466],{},"Arthur DANJOU",[54,468,469],{},[18,470,471],{},"Axelle MERIC",[54,473,474],{},[18,475,476],{},"Moritz von SIEMENS",[15,478,479],{},[25,480,481],{},"Project completed as part of the Natural Language Processing course — Master M2",[483,484,485],"style",{},"html pre.shiki code .sqbHp, html code.shiki .sqbHp{--shiki-light:#E2931D;--shiki-light-font-style:inherit;--shiki-default:#1E66F5;--shiki-default-font-style:italic;--shiki-dark:#8AADF4;--shiki-dark-font-style:italic}html pre.shiki code .sJlHP, html code.shiki .sJlHP{--shiki-light:#91B859;--shiki-default:#40A02B;--shiki-dark:#A6DA95}html pre.shiki code .sn2um, html code.shiki .sn2um{--shiki-light:#39ADB5;--shiki-default:#179299;--shiki-dark:#8BD5CA}html pre.shiki code .s0g_q, html code.shiki .s0g_q{--shiki-light:#90A4AE;--shiki-default:#4C4F69;--shiki-dark:#CAD3F5}html pre.shiki code .sMj0x, html code.shiki .sMj0x{--shiki-light:#6182B8;--shiki-light-font-style:inherit;--shiki-default:#D20F39;--shiki-default-font-style:italic;--shiki-dark:#ED8796;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s_I8y, html code.shiki .s_I8y{--shiki-light:#9C3EDA;--shiki-default:#8839EF;--shiki-dark:#C6A0F6}html pre.shiki code .srDDN, html code.shiki .srDDN{--shiki-light:#39ADB5;--shiki-default:#40A02B;--shiki-dark:#A6DA95}",{"title":104,"searchDepth":165,"depth":165,"links":487},[488,489,490,491,492,493,498,499,500,501,502],{"id":31,"depth":165,"text":32},{"id":48,"depth":165,"text":49},{"id":92,"depth":165,"text":93},{"id":107,"depth":165,"text":108},{"id":119,"depth":165,"text":120},{"id":228,"depth":165,"text":229,"children":494},[495,497],{"id":233,"depth":496,"text":234},3,{"id":277,"depth":496,"text":278},{"id":287,"depth":165,"text":288},{"id":382,"depth":165,"text":383},{"id":427,"depth":165,"text":428},{"id":437,"depth":165,"text":438},{"id":458,"depth":165,"text":459},"2026-03-13","An AI-powered assistant for streamlining HR onboarding processes and improving new hire experience.","nlp-hr-onboarding","Completed","projects\u002Fnlp-hr-onboarding",[509,510,390,511],"Python","NLP","RAG","Academic Project","QPGNgildBBYmWgNT8evTqzK-DJYN8C71LMgJx_bYw9E",1777982163834]