This is a free and open source project, it seems that the scraping isn't working anymore and I don't intent to fix it. Feel free to fork this project and change the code to your needs. Cheers!
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 of getting a house.
You can read more about this project on this blog post.
Go to the form page in the Home Finder website, and fill the form with your email and all the links from the real estate websites with your search parameters, for example https://www.funda.nl/en/huur/amsterdam/beschikbaar/0-2000/40+woonopp/2+slaapkamers/1-dag/, and click submit. After that simply wait for the script to find new houses and send them directly to your email.
The websites supported by this project are: funda.nl, vbo.nl, huislijn.nl, zah.nl, pararius.nl, jaap.nl and hoekstraenvaneck.nl, so go ahead to these websites, add your filters and add them to Home Finder.
Please remember that this website is only half of the work, you will be notified when a new house is listed, but it's up to you to take action fast to be the first one to book a viewing for that house.
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.3.1:
- Fix button color on light theme
- v0.3.0:
- Update website texts and descriptions
- Add Telegram notification support
- Add contact page
- 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
Do you like this project? 🥤 Buy me a soda