RivalSpy is a Windows utility I designed and coded myself, without AI assistance. The idea was to reduce the repeated work of reading player names from Marvel Rivals and looking up their statistics one at a time.
I built it in VB.NET with Windows Forms, using Tesseract for optical character recognition and Selenium to automate the browser. My code connects those tools into a workflow, handles the results, and presents the information in the application.
Starting with what is on screen
A global hotkey starts the capture. The program takes a screenshot and crops six predefined areas where player names appear. Each crop goes through Tesseract, and a cleanup function prepares the resulting name for lookup.
It is a concrete way of connecting a visual interface to another tool: first identify the useful part of the screen, then turn those pixels into text the next step can use.
Following the lookup through the browser
For each name, the program looks up a player identifier and opens the corresponding statistics profile in a browser tab. The browser can be placed on a second monitor when one is available.
The extraction code reads win rate and up to fifteen recent match results. It includes refresh actions and console messages for progress, missing information, and errors. A separate hotkey refreshes the open pages and gathers the statistics again.
Where the assumptions show
The screenshot regions are fixed coordinates, so the capture depends on the layout and resolution it was built around. The browser automation also depends on external pages and their HTML structure.
That makes this an archived prototype rather than a promise that the original build still works against today’s sites. Revisiting it would start with checking those assumptions: configurable capture regions, current page selectors, and clearer handling of ambiguous names.
Why it belongs in this journal
RivalSpy shows a different part of my work from the AI-assisted health app. It is an independently built project that brings together Windows events, image processing, browser automation, and a desktop interface.
The scope is specific, but the problem is familiar: making several separate steps behave like one usable tool. That is the part of this project I want to preserve here.