semvec/pypi-packages huggingface dataset:
ai-resume-screening 0.1.0
AI-powered resume screening tool with LLM evaluation
Requires Python: >=3.7

# 🧠 AI-Powered Resume Screener

A lightweight resume screening app that uses AI to extract key candidate details from PDFs and evaluates them based on skills. Built with **Streamlit**, **SQLite**, and **PyMuPDF**. Ideal for HR teams, devs, or anyone needing a smart CV filter!

---

## 📸 Screenshots

![Home Screen](assets/upload_page.jpg)
*Upload resumes and view extracted details*

![Parsed Resume Table](assets/ranked_shortlisting.jpg)
*See candidate info and download PDF*

---

## 🚀 Features

- 📄 PDF Resume Upload
- 🧠 LLM-Based Evaluation (GPT or any open-source LLM)
- 🧑‍💻 Name, Email, Skills Extraction
- 🗃 Resume Storage with SQLite
- 📊 Interactive Table View

---

## 🛠️ Tech Stack

- **Frontend**: Streamlit
- **Backend**: Python, PyMuPDF, SQLite
- **AI**: OpenAI / GPT-compatible LLMs / Together.ai (pluggable)

---

🔄 Pluggable LLM Support
By default, this project uses GPT for resume evaluation.
You can use any open-source LLM model (like Mistral, LLaMA, Gemma, etc.) by simply updating the model name or API in the gpt_evaluator.py file.

---

## ⚙️ Getting Started

```bash
git clone https://github.com/your-username/ai-resume-screener.git
cd ai-resume-screener
pip install -r requirements.txt
streamlit run app.py
nebulous-sh 0.1.150
A globally distributed container runtime
Requires Python: >=3.10.14

# nebulous-py

A declarative python library for the [Nebulous runtime](https://github.com/agentsea/nebulous)

## Installation

```bash
pip install nebulous-sh
```

## Usage

Create a pytorch container on runpod with 1 A100 GPU

```python
from nebulous import Container, V1EnvVar

container = Container(
    name="pytorch-example",
    namespace="test",
    image="pytorch/pytorch:latest",
    platform="runpod",
    env=[V1EnvVar(name="MY_ENV_VAR", value="my-value")],
    command="nvidia-smi",
    accelerators=["1:A100_SXM"],
    proxy_port=8080,
)

while container.status.status.lower() != "running":
    print(f"Container '{container.metadata.name}' is not running, it is '{container.status.status}', waiting...")
    time.sleep(1)

print(f"Container '{container.metadata.name}' is running")

print(f"You can access the container at {container.status.tailnet_url}")
```

### Processors

Run a python function as a stream processor.

```python
from nebulous import Message, processor
from pydantic import BaseModel

class MyInput(BaseModel):
    a: str
    b: int

@processor(image="python:3.10-slim", accelerators=["1:A100_SXM"])
def my_function(msg: Message[MyInput]):
    return msg

msg = MyInput(a="foo", b=1)
result = my_function(msg)
print(result)
```

## Contributing

Please open an issue or a PR to contribute to the project.

## Development

```bash
make test
```