Optimize CS:GO Skin-Withdrawal Bot

Job ID: 39647364

Budget: $100 – $150 USD

Job Description

It's a Counter-Strike skin withdrawal bot from a website.

How the bot currently works:
-It runs inside Puppeteer, authenticated with a valid session cookie.
-It connects to the website's GraphQL WebSocket (createTrades subscription) to detect when new trades are listed.
-When a trade matches my filters (price range + markup), it immediately triggers the JoinTrades mutation to remove the skin.
-If the website requests CAPTCHA during JoinTrades, it currently uses the 2Captcha API to resolve reCAPTCHA v2/v3.
-It must run on a Linux VPS with good latency for the website.

Main issues at this time:
-When starting, you have to pass Cloudflare Turnstile, which sometimes asks, to load the website and remain authenticated. Even after solving the captcha once (the skin withdrawal captcha), the site continues to prompt for each transaction, but normally it should only prompt about once per hour for a human user. So, I think the captcha token/session isn't being reused correctly.
I want to optimize for maximum speed. Currently, the bot works, but I'm not sure if the current approach is the fastest possible. I'm not sure if it's better to use headless: true or headless: new.
I also don't know if there are faster or more stealthy ways to interact with browser automation (Playwright, Puppeteer, Selenium, or even CDP directly).

What I'm looking for:
- A stable solution that makes the site behave as if it were a real user → Cloudflare bypass. For reCAPTCHA v2 (which is the captcha that appears when withdrawing the skin), the solution should reuse the token for about 30 minutes and only use 2Captcha to renew the token every 30 minutes (as in a normal session), instead of resolving it on each trade.
- The fastest possible execution of the JoinTrades mutation after detecting a trade, minimizing any delay.
- Recommendations on whether to keep headless: new or use another mode for maximum speed and reliability.
- If there's a better way than the current integration with 2Captcha (e.g., intelligent token reuse, better session management), I want it implemented.
- It must remain integrated with Puppeteer/Playwright, since the bot already runs in the browser.

I also need your input on performance:
- Is Puppeteer within the browser context the fastest way?
- Would using Playwright, Selenium, or even direct injection via the Chrome DevTools Protocol (CDP) make it faster?
- Is there a way to completely bypass the browser to be even faster but undetected?

Here you can find the existing code. https://drive.google.com/file/d/1wX4opXPgyFueE_YdqDYBAIS3h-vsGIjH/view?usp=drive_link

I think you get the idea; basically, it's a matter of resolving the captcha issue and optimizing in Node.js to be faster. Thanks.