Back to .md Directory

๐Ÿ“„ Product Requirements Document (PRD)

Defines an automated system that monitors Upwork jobs, scores them with AI, and sends push notifications via Pushover.

May 2, 2026
0 downloads
0 views
ai rag prompt openai
View source

What this file does

Defines an automated system that monitors Upwork jobs, scores them with AI, and sends push notifications via Pushover.

When to use it

  • Building a real-time job alert system for freelance platforms
  • Creating an MVP that combines polling, AI scoring, and notifications
  • Documenting a project with clear milestones and file structure for a developer
  • Starting a project that uses Gradio for a simple dashboard interface

Assumes this stack

PythonUpwork GraphQL APIOpenAI GPT-4oPushoverGradio

๐Ÿ“„ Product Requirements Document (PRD)

๐Ÿง  Project Title: Upwork Job Sniper

๐Ÿ‘ค Owner: Mohamed Khaled

๐Ÿ› ๏ธ Developer: Assigned per sprint

๐Ÿ“… Start Date: [Insert Date]

๐Ÿ“Status: Ready for Development


๐ŸŽฏ 1. Objective

Build an automated system that monitors Upwork job posts using specific keywords, scores and summarizes relevant jobs, and sends mobile push notifications in real-time. The user can then view each job's summary, a score, and an AI-generated video proposal script.


๐Ÿงฉ 2. Problem Statement

Freelancers on Upwork need to monitor job posts constantly to catch high-quality leads early. Doing this manually is time-consuming and inefficient.


โœ… 3. Success Criteria

  • Receive real-time Pushover alerts for jobs matching specified keywords.
  • Each alert includes a score, job summary, and AI-generated video script.
  • Interface displays recent jobs with summaries and actions.
  • Achieve at least one qualified job proposal submitted weekly.

๐Ÿ” 4. Functional Requirements

4.1 Job Fetcher

  • Poll Upwork GraphQL API every 5โ€“10 minutes.
  • Use stored keywords to filter relevant job posts.
  • Parse job details: title, description, budget, hourly rate, client info, etc.

4.2 AI Summarization & Proposal Script

  • Send job details to OpenAI GPT-4o.
  • Prompt should return:
    1. Job Summary
    2. Score (0โ€“10)
    3. 30-second video script

4.3 Notification System

  • Send notification via Pushover for high-score jobs.
  • Notification must contain:
    • Job title
    • Score
    • Link to job viewer/dashboard

4.4 Dashboard Interface (Gradio MVP)

  • Show recent job posts
  • Display:
    • Summary
    • Score
    • Generated script
  • Allow clicking link to open original Upwork post

๐Ÿ“ก 5. Non-Functional Requirements

  • Polling frequency: every 10 mins
  • AI latency: <5s acceptable
  • Notifications: real-time
  • Security: store API keys in .env file
  • Hosting: local/VPS for MVP; cloud optional

๐Ÿ” 6. Integration Tokens (.env)

UPWORK_TOKEN=xxx
OPENAI_API_KEY=xxx
PUSHOVER_TOKEN=xxx
PUSHOVER_USER_KEY=xxx

๐Ÿ“ฆ 7. File Structure

upwork-sniper/
โ”œโ”€โ”€ main.py                # Main loop and entry point
โ”œโ”€โ”€ fetcher.py             # Upwork API fetcher
โ”œโ”€โ”€ notifier.py            # Pushover notification handler
โ”œโ”€โ”€ ai_engine.py           # OpenAI summarizer, scorer, script generator
โ”œโ”€โ”€ scorer.py              # Score calculator
โ”œโ”€โ”€ ui.py                  # Gradio dashboard
โ”œโ”€โ”€ utils.py               # Token management, helpers
โ”œโ”€โ”€ .env                   # Config and API secrets
โ”œโ”€โ”€ requirements.txt
โ””โ”€โ”€ jobs.json              # Local store of recent jobs

๐Ÿ“ก 8. Sample OpenAI Prompt

You are an expert proposal writer.

Here is a job post:
---
{job_title}
{job_description}
Budget: {budget}
Client rating: {client_feedback} | Hire rate: {hire_rate}% | Location: {client_location}
---

Return:
1. A one-paragraph summary of the job.
2. A score between 0 and 10 based on job quality.
3. A 30-second script to use in a video proposal.

๐Ÿ“ 9. Development Milestones

DayTaskOwner
1Set up repo + fetcher.pyDeveloper
2Pushover integrationDeveloper
3OpenAI summarizer + scoring logicDeveloper
4Script generation + prompt tuningDeveloper
5Build Gradio UIDeveloper
6Connect all components & run testsDeveloper
7Buffer day for bug fixes and polishDeveloper

๐Ÿง  10. Future Enhancements (Post-MVP)

  • Multiple keyword groups (segmented per niche)
  • Admin interface to adjust scoring logic
  • Log job outcomes for future training signals
  • WordPress plugin embedding this dashboard

What's inside

10 sections covering objective, requirements, file structure, milestones, and future enhancements

Change this for your project

  • Replace UPWORK_TOKEN=xxx with your Upwork API token
  • Replace OPENAI_API_KEY=xxx with your OpenAI API key
  • Replace PUSHOVER_TOKEN=xxx and PUSHOVER_USER_KEY=xxx with your Pushover credentials
  • Replace Mohamed Khaled with the project owner's name

Where it goes

Keep it in your repository where the agent or team that needs it will read it.

Worth borrowing

  • Using a sample OpenAI prompt template that includes job details and expects structured output
  • Organizing development into a day-by-day milestone table with clear ownership

Related Documents