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 thelogincommand--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
- Fetches the login page to extract CSRF token
- Submits credentials to authenticate endpoint
- Stores session cookies for subsequent requests
Apply Flow
- Fetches the job posting page
- Extracts CSRF token, job ID, and other metadata
- Fetches the application form
- Submits the application with subject, message, and contact info
Jobs Scraping
- Fetches job listing pages with optional keyword filter
- Parses job cards to extract title, URL, poster, and date
- Fetches each job's detail page to extract full description
- 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53b90389ca71afba53d604a19545a738ebb5734374ba1fbe4cfca8661a1bfc00
|
|
| MD5 |
9e8da10245f79ce7cc88c1ef0ba59499
|
|
| BLAKE2b-256 |
702aa44270d596d0dd92ada270225fc968f4cdc8815ac6e7640c5cc94cfdff19
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ae4856f284af71fe0f92aef0af28c22bac299061a34944f5e64ab21cc8305f7
|
|
| MD5 |
8b80a9a3ebd9c5864544fb4589eda5a1
|
|
| BLAKE2b-256 |
d9a2c605a3ea46d36276ce2c1eb296da7ad123a11195541e0ad7731a70aca137
|