A combination of NLP models developed with FastAPI and deployed on Google Cloud Platform (GCP). The system comprise of 2 main API, JobPredictionAPI (prediction) and a WebAppAPI (display results).
When a user receive a new email (we use Gmail), the GmailAPI will send a push notification to Cloud Pub/Sub (a Publisher/Subscriber service of GCP) which then trigger Cloud Functions to get the email, extract the content and finally send the request to JobPredictionAPI.
The predicted result will then be stored on CloudSQL-MySQL server which will serves as database for the WebAppAPI.
The CI/CD pipeline is deployed using Cloud Build, Cloud Container Registry and Cloud Run.
The model is deployed at: https://job-email-model-ae4w2k2ara-od.a.run.app/
There are 2 ways to test the API:
- Use GUI: https://job-email-model-ae4w2k2ara-od.a.run.app/docs
- Send an HTTP request to: https://job-email-model-ae4w2k2ara-od.a.run.app/relevance. For example:
curl -X 'POST' \
'https://job-email-model-ae4w2k2ara-od.a.run.app/relevance' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"text": "%EMAIL_CONTENT%",
"model_language": "en"
}'
Replace %EMAIL_CONTENT% with your testing data.
The application is deployed at: https://pythonwebapp-ae4w2k2ara-od.a.run.app/
- Since the GmailAPI uses Oauth2 for authentication of an app, the access token must be renew every hour, this prove problematic for our JobPredictionAPI.

