A Java Spring Boot application running on Google Cloud Platform (GCP) that periodically checks for new job postings from various API sources.
- Real-time notifications published via Pub/Sub
- Automated and containerized deployment to Compute Engine via Docker, GitHub Actions, and Terraform
- Persistence of postings via BigQuery
- Core notification logic
- API clients
- GCP SDK integrations
- GCP infrastructure (Terraform)
- CI/CD pipeline (GHA)
- Make sure you have a Google Cloud account with a service account you can use for infrastructure deployments
- Fork the repository, setting up repository secrets
GCP_PROJECT_ID(your Google Cloud's project ID),GCP_CREDENTIALS_JSON(follow these instructions for the service account mentioned in step 1), andNTFY_TOPIC(checkout how to receive messages here) - Trigger the GitHub actions pipeline, for which the triggering conditions can be found here (note that this will start the application in the cloud, so make sure you have your
ntfy.shsubscribing device setup with the correct topic) - From here you have two options:
- If you'd like to run the application in your Google Cloud Project, simply wait for the pipeline to complete and within a few minutes notifications should be sent to the topic you previously configured
- If you'd like to run the code locally, set the following environment variables and run the application from
Main.java:
| Environment Variable | Value |
|---|---|
NTFY_TOPIC |
Topic name of your choice |
PROJECT_ID |
Your Google Cloud's project ID |
DATASET_NAME |
job_posting_notifier |
PUBSUB_TOPIC |
ntfy |