Telegram bot that filters job vacancies with a web UI
Project description
JobStalker | Telegram Vacancy Filter Bot
This is a Telegram bot that filters job vacancies from specified channels using a machine learning model. It has a web interface for configuration, authorization, and viewing results.
✨ Features
- Filters vacancies from public Telegram channels.
- Uses a machine learning model to determine the relevance of a vacancy.
- Web interface for easy configuration and authorization in Telegram.
- Real-time monitoring of new vacancies.
- Saves results in a database.
🖼 Screenshots
🚀 Installation and Usage
⚠️ Important! This application is a Telegram client that works on behalf of your personal account. You must obtain your own
API_IDandAPI_HASHfrom my.telegram.org.Do not share your API keys with anyone. Using someone else's keys or sharing yours is a violation of Telegram's terms of service and can lead to your account being banned.
There are four ways to run this application:
1️⃣ Install via pip
Use this option if you don't need the source code and just want to start quickly.
Prerequisites:
- Python 3.11+ and
pip.
Steps:
-
Create a working directory:
mkdir job-stalker-data cd job-stalker-data
-
Install the package:
pip install job-stalker # for CPU pip install "job-stalker[gpu]" # or just job-stalker if you don't need GPU monitoring (optional)
-
Download and configure
.env:curl -o .env.example https://raw.githubusercontent.com/10sorry/JobStalker/main/.env.example cp .env.example .env # fill in API_ID, API_HASH and optional proxy settings
-
Run the web interface:
job-stalker
The server will start on
http://0.0.0.0:8000. Run the command from the directory that contains.env.
2️⃣ Using Docker
This is the easiest and recommended way to run the application.
Prerequisites:
- Docker installed on your system.
- Docker Compose installed on your system.
Steps:
-
Clone the repository:
git clone <repository-url> cd telegram-filter-bot
-
Create the environment file: Copy the example
.env.examplefile to.envand fill in your details.cp .env.example .env
You will need to get your
API_IDandAPI_HASHfrom my.telegram.org. -
Build and run the container:
docker-compose up --build
This will build the Docker image and start the application.
-
Open the web interface: Open your web browser and go to
http://localhost:8000. -
Authorize and configure:
- You will be prompted to authorize your Telegram account.
- In the settings, specify the channels you want to monitor and other parameters.
-
Start scanning: Click the "START SCAN" button to begin the filtering process.
3️⃣ From Source Code
This method is for users who want to run the application directly from the source code.
Prerequisites:
- Python 3.11 or higher.
venvmodule for creating virtual environments.
Steps:
-
Clone the repository:
git clone <repository-url> cd telegram-filter-bot
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate
On Windows, use
venv\Scripts\activate. -
Install the dependencies (editable mode):
pip install -e ".[gpu]" # or without [gpu] if you don't need GPU monitoring
-
Create the environment file: Copy the example
.env.examplefile to.envand fill in your details.cp .env.example .env
-
Run the application:
job-stalker
(You can also use
python -m job_stalker.run, but the CLI script is shorter.) This will start the web server. -
Open the web interface: Open your web browser and go to
http://localhost:8000and follow the configuration steps as described in the Docker section.
4️⃣ Standalone Executable
This method is for users who want to run the application without installing Python or any dependencies.
Steps:
-
Download the executable: Go to the [Releases](/releases) page and download the
telegram_filter_botexecutable for your operating system. -
Create the environment file: Create a
.envfile in the same directory as the executable and fill in yourAPI_IDandAPI_HASH.API_ID=... API_HASH=... # Optional proxy settings # PROXY_ENABLED=false # PROXY_HOST= # PROXY_PORT= # PROXY_USER= # PROXY_PASS= -
Run the executable: On Linux and macOS, you may need to make the file executable first:
chmod +x telegram_filter_bot
Then, run the application:
./telegram_filter_bot
On Windows, you can just double-click the
.exefile. -
Open the web interface: Open your web browser and go to
http://localhost:8000.
🛠 Development
If you want to contribute to the project, you can follow the instructions for running from source code.
Building the pip package
Artifacts for PyPI/TestPyPI are built from pyproject.toml.
pip install build twine
python -m build # produces dist/*.whl and dist/*.tar.gz
twine upload --repository testpypi dist/*
# after verification:
twine upload dist/*
Building the Executable
To build the executable yourself, you need to have Python and the project dependencies installed. Then, run the build script:
python pyinstaller_build.py
The executable will be created in the dist directory.
⚙️ .gitignore
The following files and directories are ignored by Git:
.env
/data/
/venv/
/build/
/dist/
*.spec
__pycache__/
*.pyc
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file job_stalker-0.2.0.tar.gz.
File metadata
- Download URL: job_stalker-0.2.0.tar.gz
- Upload date:
- Size: 2.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05c2a2219d62a3410fea08858c39775fa2230a2b36209365b1be9dfcd82d92da
|
|
| MD5 |
2eb2fb5ab2e38c0ad3fb4363c25595c2
|
|
| BLAKE2b-256 |
f7a553fae3560a6b7634289378c3975f48678b0abfd97ea23203a7e7a8f17ede
|
File details
Details for the file job_stalker-0.2.0-py3-none-any.whl.
File metadata
- Download URL: job_stalker-0.2.0-py3-none-any.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
baba0cae924402bf98134afbd7fbae5cf89788a6c9a697dce7c0269e16870d62
|
|
| MD5 |
9f584f325c15b30ab0c286eddf2bbb83
|
|
| BLAKE2b-256 |
fc91838ae1ad151b290ff3b9934a379c896bd8d5a364b22adc59cbb574abadf6
|