Skip to main content
Written by RTILA Team - Senior Automation Engineer

RTILA X is a desktop web-automation application that turns natural-language requests into executable scraping projects. Instead of writing brittle scripts, you describe what you want to extract or automate. The AI assistant generates a JSON project file and the Deno engine executes it inside a real browser.

Project JSON Structure

Every RTILA X project has the same four top-level keys:

  • name โ€” a human-readable project name
  • settings โ€” options such as URLs, headless mode, timeouts, and humanoid behavior
  • datasets โ€” extraction definitions for repeating containers and properties
  • commands โ€” ordered automation steps, such as goto , click, fill, and extract_data

A minimal project looks like this:

{
  "name": "My_First_Scraper",
  "settings": {
    "urls": ["https://learn.rtila.com/scenarios/basic-navigation/1"],
    "headless": false,
    "navigation_timeout": 30000,
    "max_concurrent_workers": 1,
    "humanoidEnabled": true,
    "humanoidSensitivity": "medium"
  },
  "datasets": {
    "products": {
      "item_selector": "css=.product-card",
      "properties": [
        {
          "name": "title",
          "type": "text",
          "selector": "css=.product-title"
        },
        {
          "name": "price",
          "type": "text",
          "selector": "css=.product-price"
        }
      ]
    }
  },
  "commands": [
    {
      "command": "goto",
      "params": {
        "url": "https://learn.rtila.com/scenarios/basic-navigation/1"
      }
    },
    {
      "command": "wait_for_selector",
      "params": {
        "selector": "css=.product-card",
        "timeout": 10000
      }
    },
    {
      "command": "extract_data",
      "params": {
        "dataset": "products"
      }
    }
  ]
}

Execution Flow

The engine processes commands sequentially. When RTILA X reaches an extract_data command, it looks up the dataset by name, finds every element matching item_selector , and then extracts the configured properties from each matching element. The resulting rows can be exported as CSV, JSON, or inserted into the local PocketBase database.

The order of commands matters. A goto command must always come before extraction. Interactive commands such as click and fill need a preceding wait_for_selector so the engine waits for the browser page to be ready. This predictable order is what makes RTILA X projects easy to debug and verify.

Your First Practice Scenario

Start with the simplest extraction task on the learning site. Open the Basic Navigation & Extraction category and run scenario 1: a product grid with deterministic title and price data. Compare the output against the expected output section. Try changing the item_selector from css=.product-card to a more specific selector and observe how the extracted row count changes.

Once you are comfortable with static extraction, move to scenario 5 where the page requires navigation after page load. This introduces the concept of waiting for client-side content before extraction begins.

Selector Consistency

The most important rule in RTILA X is selector consistency. The selectors in your project JSON must match the selectors present in the live demo HTML. If a demo uses id="search-input", the correct selector in RTILA X is css=#search-input. A mismatch produces an empty dataset or an action timeout. Every scenario page on learn.rtila.com includes a LIVE DEMO zone and a project JSON block so you can compare the two exactly.

Try It Yourself

Go to the Basic Navigation scenario 1 page and run the project JSON above. Extract the product titles and prices. Then modify the project to extract only titles and verify the output difference.

Was this helpful?

โ† Back to Learning Hub