A sample project to search startup jobs scraped from various websites, built with Elixir/Phoenix backend and React/Redux frontend.
Startup Job is a full-stack web application that aggregates and searches job listings specifically from startup career websites. It solves the problem of fragmented job hunting by scraping multiple sources into a single searchable platform. The project is built as a sample application to demonstrate integration of Elixir/Phoenix backend with React/Redux frontend.
Developers learning Elixir/OTP and React/Redux who want to see a complete example application, or anyone interested in building job aggregation platforms with modern web technologies.
It provides a production-ready example of an umbrella project architecture with separate applications for scraping and data presentation, using Elasticsearch for search functionality and demonstrating real-world OAuth implementation.
An app to search startup jobs scraped from websites written in Elixir, Phoenix, React and styled-components.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Separates concerns into distinct applications for scraping and data processing, promoting clean architecture and scalability, as detailed in the README's description of Customer and Scraper apps.
Demonstrates integration of Elixir/Phoenix backend with React/Redux frontend, including Elasticsearch for search and styled-components for styling, as highlighted in the main technology stack.
Serves as a practical learning tool for understanding Elixir/OTP concurrency and React/Redux state management, explicitly stated in the Motivation section.
Implements Elasticsearch for fast and relevant job search queries, enhancing functionality beyond basic database queries, as noted in the key features.
Requires manual installation and configuration of Elasticsearch, PostgreSQL, and OAuth, with multiple steps that can be error-prone for developers, as seen in the detailed setup instructions.
The README lists todos like background Selenium processing and CSV downloads, indicating key functionalities are not yet implemented and may require additional development effort.
Relies on web scraping which can break due to site changes, necessitating ongoing maintenance without built-in fallbacks or error handling, as suggested by the scraper app design.
As a sample project, it lacks extensive documentation, community support, or regular updates, making it less suitable for production without significant customization.