sg-property-scraper_skill

This skill searches Singapore property listings with flexible filters and returns structured JSON to help compare prices, locations, and commute times.
  • Python

2.6k

GitHub Stars

3

Bundled Files

2 months ago

Catalog Refreshed

4 months ago

First Indexed

Readme & install

Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.

Installation

Preview and clipboard use veilstrat where the catalogue uses aiagentskills.

npx veilstrat add skill openclaw/skills --skill sg-property-scraper

  • _meta.json291 B
  • README.md3.7 KB
  • SKILL.md6.2 KB

Overview

This skill searches Singapore property rental and sale listings with flexible, scriptable filters and returns structured JSON. It supports rent or sale queries across HDB, condominium, and landed segments, with fine-grained controls for bedrooms, price, size, TOP year, MRT proximity, room types, availability and commute times. Outputs are printed to stdout so results are easy to consume by other tools or agents. Use JSON input mode to pass complex filters programmatically.

How this skill works

The scraper builds property portal query URLs from CLI flags or a JSON filter payload, issues HTTP requests, parses listing pages with BeautifulSoup/lxml, and emits a JSON array of normalized listing objects to stdout. Optional commute time calculations (driving and transit) use Google Routes API when a valid GOOGLE_MAPS_API_KEY is set; commute fields are omitted or empty if the API key is missing or the call fails. Dry-run mode prints generated URLs without scraping so you can validate queries before execution.

When to use it

  • Search for rental or sale listings in Singapore with precise filters (bedrooms, price, size, TOP year).
  • Find listings near specific MRT stations or within a maximum distance to public transport.
  • Compare commute times from listings to a destination (requires Google API key).
  • Collect structured JSON results for downstream processing, analysis, or automation.
  • Preview constructed search URLs using dry-run before performing large scrapes.

Best practices

  • Use --output json and pipe or capture stdout to receive machine-friendly output.
  • Prefer --json mode for complex or programmatically generated filter sets.
  • Set --pages N to increase result coverage (each page ≈ 20 listings).
  • Supply GOOGLE_MAPS_API_KEY when you need commute_driving and commute_transit fields.
  • Use --dry-run to validate URL parameters and ranges before scraping.
  • Respect request timeouts and rate limits; increase --timeout if network is slow.

Example use cases

  • Find 2BR condominiums for rent under SGD 4,000 within 0.75 km of Circle Line stations.
  • Compare sale listings near a specific MRT station range (e.g., CC:20-24) sorted by psf.
  • Aggregate listings with commute times to a workplace address to shortlist quick commutes.
  • Run nightly jobs to archive newly listed properties by scraping multiple pages.
  • Filter room rentals (master/common) vs entire-unit listings for roommate searches.

FAQ

Set the GOOGLE_MAPS_API_KEY environment variable and pass --commute-to with the destination address; driving and transit times will be calculated and included when possible.

What output do I get when no results match?

The script prints an empty JSON array [] and exits with a designated code indicating zero results.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational
sg-property-scraper skill by openclaw/skills | VeilStrat