akshaybabu06 commited on
Commit
140adf4
·
verified ·
1 Parent(s): 03a9f3d

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +32 -14
README.md CHANGED
@@ -16,10 +16,10 @@ short_description: JobSelect CLI and JobAnalyze 6k model
16
  [![scikit-learn](https://img.shields.io/badge/scikit--learn-1.9.0-F7931E?style=flat&logo=scikit-learn)](https://scikit-learn.org/)
17
  [![NumPy](https://img.shields.io/badge/NumPy-2.4.6-013243?style=flat&logo=numpy)](https://numpy.org/)
18
  [![Pandas](https://img.shields.io/badge/Pandas-3.0.3-150458?style=flat&logo=pandas)](https://pandas.pydata.org/)
19
- [![Website](https://img.shields.io/badge/jobselect-website-8A2BE2?style=flat&logo=globe)](https://jobselect.vercel.app/)
20
  [![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97-Hugging%20Face%20Model-FFD21E?style=flat)](https://huggingface.co/JobSelect/JobAnalyze_6k)
21
  [![PyPI](https://img.shields.io/badge/PyPI-JobSelect-006DAD?style=flat&logo=pypi)](https://pypi.org/project/JobSelect/)
22
- [![LinkedIn](https://img.shields.io/badge/LinkedIn-Akshay%20Babu-0A66C2?style=flat&logo=linkedin)](https://www.linkedin.com/in/akshay-babu-827b85370/)
23
 
24
  This project builds
25
 
@@ -194,7 +194,9 @@ Outputs include:
194
 
195
  ### 5) Predict skills for a new job description
196
 
197
- #### Option A: Use Python function (LOCAL model)
 
 
198
 
199
  `from api.pred import JobAnalyze_6k`
200
 
@@ -204,7 +206,9 @@ Outputs include:
204
  JobAnalyze_6k(job_desc, role="AI Engineer", job_type="Junior", top_k=50)
205
  ```
206
 
207
- #### Option B: Use the interactive CLI (API-first with validation)
 
 
208
 
209
  ```bash
210
  python -m cli.jobselect
@@ -218,24 +222,38 @@ The CLI:
218
 
219
  - prompts for **Job Description**, **Role**, and **Type**
220
  - validates them via the API schema when running in API mode
221
- - prints the top skills ranked by probability
222
 
223
  ---
224
 
225
- #### Option C: Get Predictions through API (recommended)
 
 
 
 
 
 
226
 
227
- Currently, the API service is under development, you could press `Enter` on first screen:
228
 
229
- - The CLI will always prompt the user for an API Key, press `Enter` to skip to LOCAL Mode
230
 
231
- ![JobSelect CLI](./frontend/repo/mode_selection_jobselect.png)
 
 
 
 
 
 
 
 
 
232
 
233
- #### Option D: Call the FastAPI service (optional)
234
 
235
- Run `api/JobAnalyze_API.py`. Requests must include:
236
 
237
- - header `JobAnalyze_6k_Key` with a valid API key
238
- - JSON body with `Job_Desc`, `Role`, and `Type` (validated via Pydantic)
239
 
240
  ---
241
 
@@ -296,4 +314,4 @@ For questions, feedback, or collaboration opportunities, feel free to reach out!
296
  ## References / Inspiration
297
 
298
  This repository follows a common pattern for multi-label NLP baselines:
299
- TF-IDF features + a simple neural network + sigmoid-based multi-label outputs.
 
16
  [![scikit-learn](https://img.shields.io/badge/scikit--learn-1.9.0-F7931E?style=flat&logo=scikit-learn)](https://scikit-learn.org/)
17
  [![NumPy](https://img.shields.io/badge/NumPy-2.4.6-013243?style=flat&logo=numpy)](https://numpy.org/)
18
  [![Pandas](https://img.shields.io/badge/Pandas-3.0.3-150458?style=flat&logo=pandas)](https://pandas.pydata.org/)
19
+ [![Website](https://img.shields.io/badge/Website-JobSelect-8A2BE2?style=flat&logo=data%3Aimage%2Fpng%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8%2F9hAAAB10lEQVR4nJWTwW7TQBCGv921ndhOCaQNRVBOoFYceuDGG8Ar8QoIiQMS4gF4BU7AAUTFqZwQRZVKpChRglKaJm7t2PHuItuASiGlHa200oz2%2F%2F%2BZf1ZYay0LoqyI8iwM54wa4qyXP0MuYi7IB1HMOJ5VuYsAaGtL2Y%2B2dnnysQtWo409H4At%2BpKC6SzjZWfMcncHk8ZIKc4JYCumN8OYp94e86Mpr%2FZ1qahQ9l8AYS0G2PzyjvuHn3nmbfB869NCJ%2BRJ6QW7kBIbTbj64jFZv8%2FDzTbbg4j%2BNEYiMAWBtZXFFaH9Q1duLI5OybsdUm0I1zcYHGtqUtDyvX%2FvwYfeAQ1XEXiK993v3L3e4m20xL2bLa6MU4ZRgu8qonRO6DnsjCKmWc6DW6sVwHGW83rvG5d9hyjNOYgT6kqy28vZHh6y1vSJM8MkzbjR8LnTbtKbJNUMMm3ojGOuLdWRQtIO6njKoR3W%2BTqJWWsGrLcu4bsOt5ebrDR85sbSqKly2EIbY%2FfjDN9RRFlO4CqS3FDkVsM6R1lOTQlWAo9RkpX16WxO6CpagVcNca5N2Z9TOAAYKxglGk%2BBMQJXQuhVt7aVdYUiV4m%2FXbho%2FP6NJ1GKpTmNejr3a7F%2BAFr63ZHnCD6RAAAAAElFTkSuQmCC)](https://jobselect.vercel.app/)
20
  [![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97-Hugging%20Face%20Model-FFD21E?style=flat)](https://huggingface.co/JobSelect/JobAnalyze_6k)
21
  [![PyPI](https://img.shields.io/badge/PyPI-JobSelect-006DAD?style=flat&logo=pypi)](https://pypi.org/project/JobSelect/)
22
+ [![LinkedIn](https://img.shields.io/badge/LinkedIn-JobSelect%20Labs-0A66C2?style=flat&logo=linkedin)](https://www.linkedin.com/company/jobselect-labs/)
23
 
24
  This project builds
25
 
 
194
 
195
  ### 5) Predict skills for a new job description
196
 
197
+ #### Option A: Python function (LOCAL model) — advanced / offline use only
198
+
199
+ You can still run predictions locally if you have the prepared artifacts (`model/prep/vectorizer.pkl` and `model_out/skill_classifier.pt`). Local inference is useful for offline experimentation or development, but for most users we recommend using the hosted API (see Option C).
200
 
201
  `from api.pred import JobAnalyze_6k`
202
 
 
206
  JobAnalyze_6k(job_desc, role="AI Engineer", job_type="Junior", top_k=50)
207
  ```
208
 
209
+ #### Option B: Use the interactive CLI (API-first)
210
+
211
+ The CLI (`cli/jobselect.py`) is API-first. Provide a valid API key to run the CLI against the hosted service so you always get the up-to-date model and label set. If no API key is provided the CLI can fall back to local inference, but this is not recommended for general usage.
212
 
213
  ```bash
214
  python -m cli.jobselect
 
222
 
223
  - prompts for **Job Description**, **Role**, and **Type**
224
  - validates them via the API schema when running in API mode
225
+ - prints the top skills ranked by probability as returned by the hosted API
226
 
227
  ---
228
 
229
+ #### Option C: Get predictions through the hosted API (recommended)
230
+
231
+ The API is hosted and recommended for production and general use — it provides the latest model, label vocabulary, and automatic updates.
232
+
233
+ To call the hosted API, send a POST request to the hosted endpoint (replace <HOSTED_API_URL> with the actual API base URL) with the header `JOBSELECT_KEY` set to your API key, and a JSON body containing `Job_Desc`, `Role`, and `Type`.
234
+
235
+ Base URL : https://job-description-analysis.onrender.com
236
 
237
+ JOBSELECT_KEY : Vist the website (jobselect.vercel.app)
238
 
239
+ Example (curl):
240
 
241
+ ```bash
242
+ curl -X POST "https://<HOSTED_API_URL>/predict" \
243
+ -H "Content-Type: application/json" \
244
+ -H "JobAnalyze_6k_Key: YOUR_API_KEY_HERE" \
245
+ -d '{"Job_Desc":"Senior ML engineer with 3+ years experience...","Role":"AI Engineer","Type":"Senior"}'
246
+ ```
247
+
248
+ The response will include ranked skills and probabilities (top-k). Contact the repository maintainer or your account admin to obtain an API key and the exact hosted API base URL.
249
+
250
+ ---
251
 
252
+ #### Option D: Run the FastAPI service locally (optional)
253
 
254
+ If you prefer to host your own instance of the API, you can run the FastAPI server in `api/JobAnalyze_API.py`. Local hosting is useful for private deployments or testing with custom models.
255
 
256
+ Run the service and send requests with the same header and JSON body as described in Option C (`JobAnalyze_6k_Key`, `Job_Desc`, `Role`, `Type`).
 
257
 
258
  ---
259
 
 
314
  ## References / Inspiration
315
 
316
  This repository follows a common pattern for multi-label NLP baselines:
317
+ TF-IDF features + a simple neural network + sigmoid-based multi-label outputs.