More
Сhoose

Applied

Engineering

Results

samuel-torres.com

Mexico City

Mexico City, Mexico Available immediately

Availability

Remote and on-site projects MXN · USD

LinkedIn Application Bot — Job-Search Automation

Read about the project
Dark code editor close-up representing the bot's automation script
Automation · TypeScript · Bot
March 2025
Role

Automating the repetitive parts of a job search — browsing listings and submitting applications — while keeping a local record of what was already processed. A personal project.

Core stack

TypeScript · Puppeteer · SQLite · Node.js · Chromium

Code

View on GitHub →

What it is

Built while job-hunting, to remove the repetitive, mechanical part of applying — opening a listing, filling in the same fields, submitting — while keeping a local record of what was already applied to, so the same listing never gets processed twice.

How it's built

  • TypeScript running on Node.js, driving a real Chromium instance through Puppeteer rather than calling any undocumented API.
  • SQLite as a local datastore tracking which listings have already been seen and processed.
  • The bot can be stopped and restarted without losing track of progress — state lives in SQLite, not in memory.

Design notes

A real browser, not a scraped API

+
-

Puppeteer drives an actual Chromium instance and interacts with the page the way a person would — clicking, typing, waiting for elements — instead of reverse-engineering a private API, which is both more resilient to UI changes and closer to "automating what I'd do by hand."

State in SQLite, not in memory

+
-

Tracking processed listings in a small local database means the bot can be interrupted and resumed without re-applying to the same posting twice.

Personal use, not a productized service

+
-

This was built for my own job search, run locally under my own account — not offered or distributed as a tool for others to run against LinkedIn.

Short version (portfolio card)

A personal job-application automation tool: TypeScript and Puppeteer driving a real Chromium browser, with SQLite tracking which listings were already processed.

Resume / LinkedIn bullets

  • Built a browser-automation tool in TypeScript with Puppeteer to streamline a personal job search.
  • Used SQLite to persist processed-listing state across runs, avoiding duplicate applications.
  • Ran the automation against a real Chromium instance rather than an undocumented API, for resilience to UI changes.
I work with national and international clients. Rates in USD and MXN.

Have a project that needs an engineer who delivers?

Professional contact:

Mexico City

Mexico City, Mexico Available immediately

Availability

Remote and on-site projects MXN · USD

© 2026 Eng. Samuel Torres. Applied Engineering.

Versión en español