{"id":27957478,"url":"https://github.com/shivsharcode/shl-assessment-recommender","last_synced_at":"2026-05-01T08:31:54.175Z","repository":{"id":291508367,"uuid":"977731155","full_name":"shivsharcode/shl-assessment-recommender","owner":"shivsharcode","description":"RAG based assessment Recommender","archived":false,"fork":false,"pushed_at":"2025-05-05T13:19:33.000Z","size":1911,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T00:22:53.766Z","etag":null,"topics":["pydantic","python","rag","streamlit","transformers","uvicorn"],"latest_commit_sha":null,"homepage":"https://shl-assignment-shivamsharma.streamlit.app/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shivsharcode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-04T21:05:26.000Z","updated_at":"2025-05-05T13:19:37.000Z","dependencies_parsed_at":"2025-05-07T18:13:15.571Z","dependency_job_id":null,"html_url":"https://github.com/shivsharcode/shl-assessment-recommender","commit_stats":null,"previous_names":["shivsharcode/shl-assessment-recommender"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/shivsharcode/shl-assessment-recommender","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivsharcode%2Fshl-assessment-recommender","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivsharcode%2Fshl-assessment-recommender/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivsharcode%2Fshl-assessment-recommender/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivsharcode%2Fshl-assessment-recommender/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shivsharcode","download_url":"https://codeload.github.com/shivsharcode/shl-assessment-recommender/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shivsharcode%2Fshl-assessment-recommender/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32490810,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pydantic","python","rag","streamlit","transformers","uvicorn"],"created_at":"2025-05-07T18:13:13.815Z","updated_at":"2026-05-01T08:31:54.160Z","avatar_url":"https://github.com/shivsharcode.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SHL Assessment Recommendation System\n\nThis project is a recommendation system for SHL assessments. It uses a combination of web crawling, vectorization, and a backend API to recommend assessments based on user queries. The system is built using Python, FastAPI, and machine learning models for semantic search.\n\n\n## LINKS\n\n\n#### BACKEND API ENDPOINTS  (hosted on render)\n1. activate : https://shl-backend-api-1.onrender.com/\n2. health : https://shl-backend-api-1.onrender.com/health\n3. recommend : https://shl-backend-api-1.onrender.com/recommend\n\n#### DEMO FRONTEND WORKING -- CONNECTED WITH BACKEND API\nLink : https://shl-assignment-shivamsharma.streamlit.app/\n\n\u003c!-- \n## GUIDE THROUGH THE PROJECT\n1. git clone https://github.com/shivsharcode/shl-assessment-recommender.git\n2. cd shl-assessment-recommender\n3. Install dependencies: pip install requirements.txt\n4. Activate Backend (locally hosted here, but the api link hosted on render is also given)\n5. cd 4.BACKEND-API\n6. uvicorn main:app --reload\n7. Open a new terminal in the shl-assessment-recommender folder\n8. Start Frontend\n9. streamlit run app_streamlit.py\n --\u003e\n\n---\n\n## 🚀 Project Setup Guide: SHL Assessment Recommender\n\nFollow the steps below to set up and run the project locally.\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/shivsharcode/shl-assessment-recommender.git\ncd shl-assessment-recommender\n```\n\n### 2. Install Dependencies\n\n```bash\npip install -r requirements.txt\n```\n\n### 3. Start the Backend API\n\nThe backend is hosted locally, but you can also use the production version hosted on Render.\n\nTo run the backend locally:\n\n```bash\ncd 4.BACKEND-API\nuvicorn main:app --reload\n```\n\n### 4. Start the Frontend\n\nIn a **new terminal**, return to the root project directory:\n\n```bash\ncd ..\nstreamlit run app_streamlit.py\n```\n\n---\n\n### 🔗 Note\n\nRender may put the backend API to sleep after periods of inactivity.\nBefore clicking **Recommend**, visit this URL once to wake the API:\n\n[https://shl-backend-api-1.onrender.com/](https://shl-backend-api-1.onrender.com/)\n\n---\n\n\n\n\n## Project Structure\n\nThe project is organized into the following directories:\n\n### 1. Web Crawler\n- **Purpose**: Crawls SHL's website to collect assessment data.\n\u003c!-- - **Key File**: `shl_assessments_complete.json`\n  - Contains details of assessments such as name, URL, description, duration, and test types. --\u003e\n\n### 2. Vectorization\n- **Purpose**: Converts assessment descriptions into vector embeddings for semantic search.\n\u003c!-- - **Key Files**:\n  - `shl_assessments_complete.json`: Input data for vectorization.\n  - `shl_index_metadata.json`: Metadata for the vectorized index.\n  - `shl_index.faiss`: FAISS index for fast similarity search. --\u003e\n\n### 3. Evaluation\n- **Purpose**: Evaluates the performance of the recommendation system.\n\u003c!-- - **Key Files**:\n  - `shl_assessments_complete.json`: Assessment data for evaluation.\n  - `shl_index_metadata.json`: Metadata for evaluation. --\u003e\n\n### 4. Backend API\n- **Purpose**: Provides an API for querying the recommendation system.\n\u003c!-- - **Key Files**:\n  - `main.py`: FastAPI application that handles requests and returns recommendations.\n  - `shl_index_metadata.json`: Metadata used by the API. --\u003e\n\n\n## Key Features\n\n1. **Web Crawling**: Extracts assessment data from SHL's website.\n2. **Vectorization**: Uses `SentenceTransformer` to generate embeddings for semantic search.\n3. **Recommendation API**: Provides endpoints to query assessments based on user input.\n4. **Evaluation**: Measures the accuracy and performance of the recommendation system.\n\n## API Endpoints\n\n### Base URL\n`https://shl-backend-api-1.onrender.com/`\n\n### Endpoints\n- **`GET /`**: Returns a welcome message.\n- **`GET /health`**: Returns the health status of the API.\n- **`POST /recommend`**: Accepts a query and returns a list of recommended assessments.\n\n#### Example Request\n```json\nPOST /recommend\n{\n  \"query\": \"I am hiring for Java developers who can also collaborate effectively with my business teams. Looking for an assessment(s) that can be completed in 40 minutes\"\n}\n```\n#### Example Response\n```json\n{\n  \"results\": [\n    {\n      \"url\": \"https://www.shl.com/products/product-catalog/view/python-new/\",\n      \"adaptive_support\": \"No\",\n      \"description\": \"Multi-choice test that measures the knowledge of Python programming, databases, modules and library.\",\n      \"duration\": 11,\n      \"remote_support\": \"Yes\",\n      \"test_types\": [\"Knowledge \u0026 Skills\"]\n    }\n  ]\n}\n```\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivsharcode%2Fshl-assessment-recommender","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshivsharcode%2Fshl-assessment-recommender","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshivsharcode%2Fshl-assessment-recommender/lists"}