--- title: Built a browser session script synthesizer date: 2025-04-02 layout: post project: true thumbnail: thumb_sm.png --- One year at trading firm. Webscraper jobs are giving too many problems. Old scripts are prone to failure, new scripts take too long to write. 2025-02: Built Bumblebee, a C# WinForms application, to record browser sessions and automate the synthesis of scripts. Hosted WebView2 (Edge) in the WinForms application to render web content. Intercepted events by injecting JS hooks to web pages (client-side events) and listening to WebView events (internal browser events). Converted intercepted events to Selenium code by sending through if-else statements. Crude—no time for something better. Implemented a basic optimizer to squash event sequences into single commands (e.g., calendar clicks → text input), use heuristics to improve DOM addressing (xpath, id, element). Integrated Scintilla.NET editor to allow user more control over the generated script. Events and code are stored in two linear lists. Mid-session manual edits desync the lists, block the optimizer. ASTs are overkill for now. As a workaround, only edit scripts at the end of recording. 2025-03: Shipped the first iteration. Well-received by colleagues. CPUs already saturated. Systems stalling. Began work on key optimization: bypass the browser, grab data files directly when possible. 2025-04: Abandoned project. Left the firm.