Finn.no Scraper & CRM Uploader
Budget: $10 – $30 USD
I need a small utility that tackles two tightly-linked jobs for me.
1. Scrape sold listings from Finn.no
• I paste any Finn.no “sold” results URL into the tool.
• The script parses the HTML (no login needed) and exports two separate CSV files with these exact headers in the stated order:
Gatenavn, Husnummer, Husbokstav, Postnummer, Poststed, Boenhet, Boligtype, Finnlenke
• Rules:
– If the property is an apartment, leave Boenhet blank.
– For every other type, set Boenhet to H0101.
• One CSV should contain only apartments; the second holds every other property type.
2. Push data to our Supabase-hosted CRM
• After export, the same script (or a companion script) uploads both CSVs to the relevant Supabase tables.
• On insert, each record must automatically receive an assigned salesperson ID (simple round-robin logic is fine).
• A price field should be calculated from square metres already present in the listing and stored alongside the record.
Preferred stack: Python 3 with BeautifulSoup or Playwright for scraping and the official Supabase client for the upload, but I’m open to Node.js if you have a stronger approach.
Deliverables
• Clean, well-commented source code.
• Two sample CSVs generated from a test URL.
• Brief README covering setup, environment variables, and how to run both the scrape and the upload.
Once delivered, I’ll test with additional Finn.no URLs; the job is complete when the data flows into Supabase exactly as described.
1. Scrape sold listings from Finn.no
• I paste any Finn.no “sold” results URL into the tool.
• The script parses the HTML (no login needed) and exports two separate CSV files with these exact headers in the stated order:
Gatenavn, Husnummer, Husbokstav, Postnummer, Poststed, Boenhet, Boligtype, Finnlenke
• Rules:
– If the property is an apartment, leave Boenhet blank.
– For every other type, set Boenhet to H0101.
• One CSV should contain only apartments; the second holds every other property type.
2. Push data to our Supabase-hosted CRM
• After export, the same script (or a companion script) uploads both CSVs to the relevant Supabase tables.
• On insert, each record must automatically receive an assigned salesperson ID (simple round-robin logic is fine).
• A price field should be calculated from square metres already present in the listing and stored alongside the record.
Preferred stack: Python 3 with BeautifulSoup or Playwright for scraping and the official Supabase client for the upload, but I’m open to Node.js if you have a stronger approach.
Deliverables
• Clean, well-commented source code.
• Two sample CSVs generated from a test URL.
• Brief README covering setup, environment variables, and how to run both the scrape and the upload.
Once delivered, I’ll test with additional Finn.no URLs; the job is complete when the data flows into Supabase exactly as described.
Related categories:
PHP
Data Processing
Web Scraping
Software Architecture
MySQL
Node.js
BeautifulSoup
Supabase