A job search engine and site created for the Relevance & Matching Tech community on Slack (relevancy.slack.com).
Soon after I joined the group and started perusing open roles in the #jobs channel, I realized there was an opportunity to 1) build a quick search engine MVP and 2) contribute to the community. Below are the steps I took to deploy the site:
- Create a new AWS account, so you can use Free Tier resources.
- Create an OpenSearch instance.
- When setting up fine-grained access control, create a user using IAM and use it as the master user.
- Create the index and mapping using either the OpenSearch Dashboard, command line, or juptyer notebook (my personal recommendation). For the latter two, you'll need to either pass in your AWS credentials explicitly or install the CLI (
pip install awscli
) and runaws configure
where you will store them (highly recommended). - Build your Streamlit app (or copy what I have above).
- Deploy on EC2.
- Just as in step 3, for local access, you'll need to
aws configure
so the app can query the index.
- Just as in step 3, for local access, you'll need to
- [4/23] Get a real domain name by using Amazon Route 53 and PairDomains.com
- [4/23] Enable user to search for "more jobs like this" with a single button click
- [5/23] Track user behavior
with Streamlit Analyticsby writing page load and click events to S3, and a nightly cron for aggregating themwith Google Analytics (7/29). Add a page to visualize activity - [5/23] Align dev and prod environments by using Docker
- [6/23] Add new page, Scrape Jobs, so developers can more easily pull in jobs to the site
- [7/19] Enable HTTPS