Got questions, feedback, or ideas? Run into any hiccups? Feel free to drop an issue here.
Things might be a little buggy, but hang tightβI'm working hard to keep improving it!
β Chrome Browser Extension β
Simply click the button above to visit the Chrome Web Store and click "Add to Chrome" to install the extension.
This Chrome extension automatically scrapes job listings from Upwork and sends them to a specified webhook URL. It provides a user-friendly interface for configuring settings, viewing scraped jobs, and monitoring the extension's activity.
- π Job Scraping: Automatically scrapes job listings from Upwork at regular intervals.
- π Multiple Feed Sources: Supports scraping from "Most Recent Jobs" or a custom search URL.
- π Webhook Integration: Sends newly scraped jobs to a user-defined webhook URL.
- β±οΈ Customizable Check Frequency: Allows users to set how often the extension checks for new jobs (in days, hours, and minutes).
- π Browser Notifications: Optional push notifications for new job alerts.
- π Activity Logging: Keeps a log of the extension's activities for user review.
- π Job Viewing: Displays scraped jobs within the extension's interface.
- π Webhook Toggle: Enable or disable webhook functionality.
- π±οΈ Manual Scraping: Allows users to trigger a job scrape manually.
- π’ Badge Notifications: Shows the number of new jobs since last viewed on the extension icon.
- ποΈ Master Toggle: Enable or disable all extension functionality.
- β³ Next Check Countdown: Displays a countdown to the next scheduled job check.
- π Error Logging: Automatically logs and reports errors to a specified webhook for debugging.
Install the Upwork Job Scraper + Webhook extension directly from the Chrome Web Store:
Simply click the button above to visit the Chrome Web Store and click "Add to Chrome" to install the extension.
Click on the extension icon in Chrome to open the settings page.
Use the master toggle at the top of the settings page to enable or disable all extension functionality.
- Toggle the switch to enable or disable webhook functionality.
- Enter your webhook URL in the provided input field.
- Click "Save" to store the URL.
- Use the "Test Webhook" button to verify your webhook is working correctly.
Set the frequency for job checks using the following fields:
- Days
- Hours
- Minutes
Click "Save Frequency" to apply the changes.
Choose between:
- Most Recent Jobs
- Custom Search URL
For Custom Search URL:
- Select "Custom Search URL" option.
- Enter the Upwork search URL in the provided field.
- Click "Save Feed Sources" to apply the changes.
Toggle the switch to enable or disable browser push notifications for new jobs.
Use the "Manually Scrape Jobs" button to initiate an immediate job scrape.
The extension consists of the following main components:
manifest.json
: Defines the extension's permissions and structure.background.js
: Handles background processes, job scraping, webhook communication, and error logging.settings.html
andsettings.js
: Manage the user interface and settings.settings.css
: Styles the settings page.
To modify the extension:
- Edit the relevant files.
- Reload the extension in
chrome://extensions/
to apply changes.
To test the webhook functionality:
- Enable the webhook in the settings.
- Enter a webhook URL in the settings.
- Click the "Test Webhook" button.
- Check your webhook endpoint for the received test data.
To test job scraping:
- Configure your desired feed source.
- Click the "Manually Scrape Jobs" button.
- Check the Activity Log and Scraped Jobs sections for results.
This extension requires the following permissions:
storage
: To save user preferences and scraped job dataalarms
: For scheduling periodic job checksscripting
: To run scripts on the Upwork websitenotifications
: For sending browser notifications
- The extension is designed to work specifically with Upwork's job listing pages.
- Frequent scraping may be detected by Upwork and could lead to IP blocking.
- The extension relies on Upwork's current HTML structure; changes to their website may break the scraping functionality.
If you found this project helpful, consider supporting the developer: