Update README.md
Browse files
README.md
CHANGED
|
@@ -16,10 +16,10 @@ short_description: JobSelect CLI and JobAnalyze 6k model
|
|
| 16 |
[](https://scikit-learn.org/)
|
| 17 |
[](https://numpy.org/)
|
| 18 |
[](https://pandas.pydata.org/)
|
| 19 |
-
[](https://huggingface.co/JobSelect/JobAnalyze_6k)
|
| 21 |
[](https://pypi.org/project/JobSelect/)
|
| 22 |
-
[ Predict skills for a new job description
|
| 196 |
|
| 197 |
-
#### Option A:
|
|
|
|
|
|
|
| 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
|
|
|
|
|
|
|
| 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 226 |
|
| 227 |
-
|
| 228 |
|
| 229 |
-
|
| 230 |
|
| 231 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 232 |
|
| 233 |
-
#### Option D:
|
| 234 |
|
| 235 |
-
|
| 236 |
|
| 237 |
-
|
| 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 |
[](https://scikit-learn.org/)
|
| 17 |
[](https://numpy.org/)
|
| 18 |
[](https://pandas.pydata.org/)
|
| 19 |
+
[](https://jobselect.vercel.app/)
|
| 20 |
[](https://huggingface.co/JobSelect/JobAnalyze_6k)
|
| 21 |
[](https://pypi.org/project/JobSelect/)
|
| 22 |
+
[](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.
|