"""PropertyFinder.ae scraper. Two operations: - fetch_listing(url): read a listing detail page → ScrapedListing (title/price/agent/permit). - search_similar(building, bedrooms, deal_type): search PF for similar candidates by building name + bedrooms filter → list[ScrapedListing]. PF is a Next.js app — listing data sits in