Skip to main content

A command-line tool to automate job applications and scraping on OnlineJobs.ph

Project description

OnlineJobs.ph CLI

A command-line tool to automate job applications and scraping on OnlineJobs.ph.

Features

  • Login: Authenticate with OnlineJobs.ph and export session cookies
  • Apply: Automatically apply to job postings with custom messages and contact info
  • Jobs: Search and scrape job listings with descriptions

Installation

Requirements

  • Python 3.8+
  • Dependencies: requests, beautifulsoup4, curl-cffi

Setup

pip install -r requirements.txt

Example Usage

1. Login — Get Session Cookies

Authenticate and save your session cookies for use in other commands.

COOKIES=$(python main.py login --email you@example.com --password secret)

This prints the cookies as JSON to stdout, which you can store in the COOKIES variable.

2. Apply to a Job

Submit an application to a specific job posting.

python main.py apply \
  --cookies "$COOKIES" \
  --job-url "https://www.onlinejobs.ph/jobseekers/job/12345" \
  --subject "Applying for Part time developer" \
  --message "I would like to apply, thank you." \
  --contact-info "Email: you@example.com | GitHub: yourhandle"

Parameters:

  • --cookies: JSON cookies string from the login command
  • --job-url: Full URL of the job posting
  • --subject: Email subject line
  • --message: Email message body
  • --contact-info: Your contact information
  • --apply-points (optional): Points to spend (default: 1)

3. Scrape Jobs

Search and scrape job listings with full descriptions.

python main.py jobs --filter "python developer" --pages 3

Parameters:

  • --filter (optional): Keyword filter for search
  • --pages (optional): Number of pages to scrape (if not specified, scrapes until no jobs found)

Output: JSON array of jobs with url, title, posted_by, posted_on, rate, and description

Commands

login

Authenticate with OnlineJobs.ph and output session cookies as JSON.

python main.py login --email <email> --password <password>

Environment Variables:

  • OLJ_EMAIL: Account email (alternative to --email)
  • OLJ_PASSWORD: Account password (alternative to --password)

apply

Apply to a job posting using authenticated session.

python main.py apply --cookies <JSON> --job-url <url> --subject <subject> --message <message> --contact-info <info>

jobs

Search and scrape job listings.

python main.py jobs [--filter <keyword>] [--pages <number>]

Debug

Enable debug logging for any command:

python main.py --debug jobs --filter "react"

Example Workflow

# 1. Search for jobs (no authentication needed)
python main.py jobs --filter "python developer" --pages 3

# 2. Login to get cookies (if you want to apply)
COOKIES=$(python main.py login --email you@example.com --password secret)

# 3. Apply to a specific job
python main.py apply \
  --cookies "$COOKIES" \
  --job-url "https://www.onlinejobs.ph/jobseekers/job/1604447" \
  --subject "Applying for Senior Magento 2 Developer" \
  --message "I would like to apply, thank you." \
  --contact-info "Email: you@example.com | GitHub: yourhandle"

How It Works

Login Flow

  1. Fetches the login page to extract CSRF token
  2. Submits credentials to authenticate endpoint
  3. Stores session cookies for subsequent requests

Apply Flow

  1. Fetches the job posting page
  2. Extracts CSRF token, job ID, and other metadata
  3. Fetches the application form
  4. Submits the application with subject, message, and contact info

Jobs Scraping

  1. Fetches job listing pages with optional keyword filter
  2. Parses job cards to extract title, URL, poster, and date
  3. Fetches each job's detail page to extract full description
  4. Returns complete job data as JSON

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

olj_cli-0.1.0.tar.gz (9.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

olj_cli-0.1.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file olj_cli-0.1.0.tar.gz.

File metadata

  • Download URL: olj_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 9.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for olj_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 53b90389ca71afba53d604a19545a738ebb5734374ba1fbe4cfca8661a1bfc00
MD5 9e8da10245f79ce7cc88c1ef0ba59499
BLAKE2b-256 702aa44270d596d0dd92ada270225fc968f4cdc8815ac6e7640c5cc94cfdff19

See more details on using hashes here.

File details

Details for the file olj_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: olj_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for olj_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ae4856f284af71fe0f92aef0af28c22bac299061a34944f5e64ab21cc8305f7
MD5 8b80a9a3ebd9c5864544fb4589eda5a1
BLAKE2b-256 d9a2c605a3ea46d36276ce2c1eb296da7ad123a11195541e0ad7731a70aca137

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page