Home Finder is a free open-source project designed to help people find houses to buy or rent in the Netherlands. The housing market in some Dutch cities is extremely competitive, especially Amsterdam, and being able to apply for a house as soon as they're listed will boost or chances or getting a house.
You can read more about this project on this blog post.
To deploy your own version you will need to clone 2 GitHub repos, the Home Finder and the Home Finder Script. If you don't really need the frontend part, you can just clone the script repo.
For the Home Finder project, you will need to do the following steps:
- Clone the project using the
Use this template
button on GitHub and make sure the project stays public, otherwise you cannot deploy it to GitHub Pages. - Change the siteUrl and the pathPrefix properties for Gatsby, so GitHub Actions can deploy the project to
username.github.io/home-finder
properly. - Create a Google Forms like this one with the exact same field names and field types.
- Get the Google Forms form ID, for example,
1FAIpQLSfNXZrkvG-in6kurmGRQt4SOt2xyDOautibKpC4PAeQElzrgQ
, and add it to your repo's secret with the nameGATSBY_GOOGLE_FORM_ID
. - Push your changes to the
main
branch and the website will build automatically on push.
For the Home Finder Script project, you will need to do the following steps:
- Clone the project using the
Use this template
button on GitHub and make sure to change the project to private, otherwise you may leak user data. - Update the
template.html
to use your own website URL- or if you're skipping the frontend, you can simply remove the link in the footer of the email.
- Get the Google Spreadsheet from the previously created form and make sure to publish the Google Spreadsheet to the web and make it available to anyone with the link too.
- or if you're skipping the frontend any Google Spreadsheet will do, but the spreadsheet needs to have the same header fields as the Google Forms.
- Get the Google Spreadsheet
ID
andGrid ID
, for example, for this spreadsheet, theID
is1jRMEvfI6OsWUwnaHgH5UwnoikZA0a3s8wPnCortNJ_A
and theGrid ID
is0
. - Add 5 new repo's secret:
EMAIL_USER
: The Gmail email that will be used to send emails.EMAIL_PASSWORD
: The password of the Gmail account. It's highly recommended that you create an App Password for that.GOOGLE_SPREADSHEET_ID
: The Google SpreadsheetID
.GOOGLE_SPREADSHEET_GID
: The Google SpreadsheetGrid ID
.USER_AGENT
: The user-agent to be used by the scraper script. You can use your own user-agent if you want.
- Update the cron job frequency to match your needs.
- Push your changes to the
main
branch and the script will automatically run accordingly with the cron job settings.
Since I don't want to use more than the GitHub Actions free tier, I will be running the script every hour, this should be enough to not pass the monthly limit - well, it depends on the number of users, of course.
I also had to manually write the scraping scripts for various real estate websites, so it's not like you can get notifications from any website anywhere in the Netherlands.
That's why I made this free and open-source and I highly encourage people to deploy their own version and change the frequency of the scraping script to match their needs.
There's also a chance that any of the websites can block the user-agent from scraping them, in this case you need to keep an eye on it and change the user-agent if needed.
- v0.2.0:
- Use react-google-forms-hooks to parse Google Forms data
- Remove a bunch of unused code
- Add bugs to fix later
- v0.1.0:
- First version
SEO image by https://unsplash.com/photos/rgJ1J8SDEAY