I’m building a backend service for real estate investors.
The Goal: Recurring SaaS revenue by selling API access to fresh real estate data.
The Angle: Investors want to know the average price-per-square-foot in specific ZIP codes instantly. Zillow’s API is too restrictive. I’m building a “No-Code” dashboard where users enter a ZIP, and my backend triggers RTILA to scrape the data live and return a JSON report.
The Stack: RTILA X (CLI mode) + Node.js Express + Stripe.
The Plan:
I need to set up a RTILA project that accepts a dynamic ZIP code variable from my Node backend, navigates to the search URL, extracts the listings, and exits.
Update 1: Dynamic URLs
How do I pass the ZIP code from my Node backend into the RTILA script so it navigates to the right page? I don’t want to hardcode the URL in the project settings.
Perfect use case for Global Variables and CLI arguments!
- In your project JSON, set
settings.skip_initial_navigation: true and leave the urls array empty.
- Define a variable in
settings.variables: {"name": "search_zip", "required": true}.
- In your
run_script, construct the URL:
const targetUrl = 'https://www.zillow.com/homes/' + state.variables.search_zip + '_rb/';
await helpers.safeGoto(targetUrl);
- When you spawn the RTILA engine from your Node backend, pass the variable via CLI:
rtila-engine --project-id=XYZ --var-search_zip=90210
The engine will pick up the CLI variable, inject it into the script, and navigate dynamically!
Update 2: MVP is Live! 
The CLI variable injection is brilliant. My Node backend now spawns the RTILA sidecar, passes the ZIP code, waits for the exit code, and reads the output JSON to serve back to the user.
I just processed my first live Stripe payment for a user requesting 50 ZIP code reports. The Micro-SaaS is officially generating revenue. Thanks for the help!