JobPulse is a comprehensive job aggregation platform that automatically scrapes and centralizes job postings from company career sites, providing job seekers with a unified platform to discover opportunities across multiple companies.
- Auto-Aggregation: Automatically fetches job postings every 4 hours
- Multi-Platform: Web application and mobile app
- Smart Search: Advanced filtering and search capabilities
- Real-time Updates: Stay updated with the latest job postings
- User Profiles: Personalized job recommendations
- Language: Python 3.11+
- Framework: FastAPI (async, auto OpenAPI docs)
- Database: PostgreSQL + Redis
- Search: OpenSearch/Elasticsearch
- Authentication: JWT + OAuth2
- Task Queue: Celery + Redis
- Scraping: Playwright + BeautifulSoup4
- Web: Next.js (React) with SSR/SSG
- Mobile: React Native (Expo)
- UI: Tailwind CSS + Framer Motion
- State: React Query for data fetching
- Containerization: Docker + Docker Compose
- CI/CD: GitHub Actions
- Monitoring: Prometheus + Grafana
- Error Tracking: Sentry
- Cloud: AWS/GCP ready
- Python 3.11+
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL
- Redis
# Clone the repository
git clone https://github.com/yourusername/jobpulse.git
cd jobpulse
# Start with Docker Compose
docker-compose up -d
# Or run locally
# Backend
cd backend
pip install -r requirements.txt
uvicorn main:app --reload
# Frontend
cd frontend
npm install
npm run devjobpulse/
├── backend/ # FastAPI backend
│ ├── app/
│ │ ├── api/ # API routes
│ │ ├── core/ # Core functionality
│ │ ├── models/ # Database models
│ │ ├── schemas/ # Pydantic schemas
│ │ ├── services/ # Business logic
│ │ └── scrapers/ # Job scraping modules
│ ├── alembic/ # Database migrations
│ ├── tests/ # Backend tests
│ └── requirements.txt
├── frontend/ # Next.js frontend
│ ├── components/ # React components
│ ├── pages/ # Next.js pages
│ ├── styles/ # CSS/Tailwind styles
│ ├── utils/ # Utility functions
│ └── public/ # Static assets
├── mobile/ # React Native app
├── docker-compose.yml # Development environment
├── .github/ # GitHub Actions
└── docs/ # Documentation
-
Copy environment files:
cp backend/.env.example backend/.env cp frontend/.env.example frontend/.env.local
-
Update configuration values in the
.envfiles -
Run database migrations:
cd backend alembic upgrade head
docker-compose up -d- Start all servicesdocker-compose down- Stop all servicesmake test- Run all testsmake lint- Run lintingmake format- Format code
- Health Checks:
/healthendpoint - Metrics: Prometheus metrics at
/metrics - API Docs: Auto-generated at
/docs - Logs: Structured logging with loguru
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@jobpulse.com or join our Discord community.