Skip to main content

How to Automate Job Applications with Python

By Steven Van ·

Browser Use's tutorial builds a four-stage Python bot on its V4 API that finds jobs, matches them to a resume with OpenAI, and submits applications.

Browser Use has published a Python tutorial for building a job application bot on its hosted V4 API. The script runs locally and controls a cloud browser. It uses Pydantic for data validation and the OpenAI API for resume matching.

What the bot does

The workflow has four stages, each a separate function:

  • Search for jobs and extract their details.
  • Evaluate each job against a resume to find suitable positions.
  • Fill out and submit applications, uploading a resume when required.
  • Record the application results.

Setup

The tutorial requires Python 3.12 or newer, a Browser Use account and an OpenAI account. It lists an API key for each service, and says eligible Browser Use signups receive $1 in free credits. Dependencies are installed with pip: python-dotenv, browser-use-sdk, openai and pydantic. The keys go in a .env file. The candidate's details go in a resume.json file (name, email, location, experience, skills and preferences). A resume.pdf in the project directory is used when an application needs an attachment.

Stages 1 and 2: search and matching

In stage one, a run_json() helper adds the expected JSON schema to the prompt, starts a Browser Use run and waits for it to finish. Because Browser Use returns its result as a string, Pydantic validates it before use. The helper sets a $3 cost cap per run and waits up to 10 minutes locally. It also prints a live preview link for watching the browser session.

The search() function asks the agent to find five jobs suited to the resume, open each listing and return its details and application URL without applying. Results are saved to jobs.json. In the walkthrough's fictional example, all five jobs were in San Francisco, but three involved web apps and APIs, one was engineering management and one needed embedded systems experience.

In stage two, a filter_jobs() function sends the resume and listings to OpenAI's gpt-5-mini, which is told to keep jobs that could be a reasonable fit and to be flexible about stack and experience gaps. Each selected job is saved to filtered_jobs.json with a short reason.

Later stages

The tutorial describes the remaining steps as approving applications, filling forms, uploading the resume and tracking results. The text provided here cuts off during stage two, so the code for those steps is not covered above. The full walkthrough is in the original article.

Browser Use
Browser Use
Open-source browser automation platform for AI agents — let LLMs drive a real browser to research, fill forms, scrape, and complete multi-step tasks.
View Browser Use →
Sources

Original source

Read How to Automate Job Applications with Python on Creators Toolbox