Python job-listing monitor for Upwork public search results (CSV + alerts)
Budget: $10.0
FIXED /
⭐ 5.00 (3)
United States
data-extraction, api-integration, data-scraping, python, crawlers, data-mining
Preferred qualifications
- Experience: Intermediate
Project overview
I need a tool that monitors publicly visible Upwork job search results and saves matching gigs into a structured dataset so I can review opportunities faster. This is for personal lead research / opportunity tracking — not bulk messaging, not account takeover, and not bypassing login walls.
Goal
Given search keywords, categories, and filters I define (examples: “web scraping”, “Python ETL”, “data pipeline”, budget range, experience level), the system should:
Collect matching public job cards
Store them cleanly
Flag new jobs since the last run
Optionally notify me (email, Slack, Discord, or CSV drop)
Data to collect (per job, when publicly visible)
Job URL / job ID
Title
Short description / snippet
Full description (only if publicly accessible without prohibited access methods)
Budget type (hourly / fixed) and amount range if shown
Experience level
Category / subcategory
Skills / tags
Client country (if shown)
Client hire history / spend signals (if public on the card)
Proposals count / connects info (if public)
Posted time / “posted X hours ago”
Job type (hourly, fixed, contract-to-hire if shown)
scraped_at timestamp
Out of scope / not allowed
Logging into accounts you don’t own, credential stuffing, CAPTCHA farms
Automating proposals, connects spending, or messaging clients
Collecting private client contact data
Circumventing anti-bot / auth protections
Building a spam outreach bot
Public search/result fields + polite rate limiting only.
Scope (MVP)
Configurable search queries + filters (keywords, category, budget, posted within X hours)
Deduplicate by job ID/URL
Export CSV + JSON
“New jobs only” diff between runs
README with setup, config, and schema
Logging + retries + backoff
Optional add-ons (quote separately)
Scheduled runs (every 15–60 min)
Slack/Discord/email alerts for new matches
Simple dashboard or Google Sheet sync
Multi-query watchlist (10–50 saved searches)
Relevance scoring (keyword match, budget, client quality heuristics)
Tech preferences
Python preferred
Playwright/Selenium only if needed; prefer stable public endpoints / careful HTML parsing
Clean config file (YAML/JSON) for searches
SQLite or local JSON store for seen job IDs is fine
Code I can run on my machine or a cheap VPS
Deliverables
Working monitor/scraper scripts
Sample output from real public searches (CSV + JSON)
Data dictionary
README
Notes on limits (rate limits, blocked requests, fields that disappear when not logged in)
Open job
AI proposal draft
Generate a short cover letter to copy into the offer. Says you are interested and ready to work.
Sign in to generate an AI proposal draft.
Log in