Piston is a job search assistant designed to automate the process of scraping job portals and sending email notifications when new job offers are found. Leveraging Flask, APScheduler, and a modular plugin system, it ensures flexibility and scalability in handling various job websites.
- Automated Scraping: Efficiently gathers job postings from multiple job websites. -Email Alerts: Provides timely updates via email whenever new relevant job offers are detected -Modular Plugin System: Supports default plugins for demonstration purposes and can be extended with custom plugins to scrape additional sources
- Python 3.12+
- Docker (optional, for containerized deployment)
uv
package manager for dependency management (can usepipenv
orpoetry
instead)
- Clone the repository
- Build the Docker image
- Run the Docker container
- Clone the repository
- Install dependencies using your preferred package manager
- Configure environment variables for database and email settings
- Run the application in a development or production mode as needed
Piston includes a comprehensive set of integration tests to ensure that the core functionalities of the web application and its interaction with the database are working seamlessly.
- Ensure all necessary components and configurations are correctly set up.
- Execute the integration tests using
pytest
pytest test/integration.py
For detailed unit testing, refer to the individual modules and components within the project
- Fork the repository on GitHub
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a pull request
Distributed under the MIT License. See LICENSE
for more information.
Thibaut L. - [email protected]
Project Link: https://github.com/thibaut-lemarchand/piston