UpworkScribe AI is not just a tool; it's your partner in navigating the competitive world of freelancing, helping you secure more projects and grow your freelance career. 🚀
The freelance marketplace has undergone a dramatic transformation in the digital age. While platforms like Upwork have opened up a world of opportunities, they have also intensified competition. Freelancers often find themselves spending countless hours searching for suitable projects, tailoring proposals, and crafting unique cover letters. This process can be not only time-consuming but also mentally exhausting, leading to missed opportunities and proposal fatigue.
UpworkScribe AI simplifies the freelancing process by acting as your personal assistant. It offers:
- Automatic Job Scanning and Qualification: Saves freelancers time by identifying and qualifying the most relevant job opportunities.
- Personalized Cover Letter: automate the Creation of tailored cover letters for each project, increasing the chances of standing out to clients.
- Interview Preparation Support: Generates materials to help freelancers prepare for client meetings and secure jobs with confidence.
- 24/7 Availability: can be setup to work around the clock, ensuring no opportunities are missed, even when you're offline.
- Cost-Effective: Offers powerful features at a low cost, making it accessible to freelancers at all levels.
- Support For Multiple LLM Providers: Can integrate with various large language models, offering flexibility and adaptability to meet different user needs.
- Job Monitoring: The system scans Upwork for new project listings of the freelancer provided job titles, ensuring freelancer stay up-to-date.
- Intelligent Job Scoring: Each job receives a score based on various criteria such: match with freelancer experience & skills, budget, duration, client history and past projects on the platform,etc. Only jobs scoring 7/10 or higher proceed for further analysis.
- Dynamic Cover Letter Creation: AI agents crafts custom cover letters based on each job description and.
- Personalized Content: Tailors cover letters to reflect the user’s unique writing style, skills, and relevant experiences.
- Interview Script and Questions: Prepares a list of potential interview questions and a script for the freelancer, covering job-specific topics to improve interview readiness.
- Keyword Optimization: Incorporates job-related keywords to enhance proposal relevance and client interest.
- User Input: The process starts with the user entering a job title.
- Job Scraping: The system scrapes Upwork for job listings that match the user-provided search queries, gathering relevant opportunities in real-time.
- Job Scoring and Filtering: Each job is scored by an AI agent, and only jobs with a score of 7/10 or higher are presented to the freelancer, filtering out lower-quality matches.
- Cover Letter and Interview Preparation: For strong job matches, the system generates:
- A personalized cover letter emphasizing the user’s qualifications and alignment with the job.
- A custom interview preparation script including potential questions to prepare the user for discussions with potential clients.
- Review and Submission: The generated cover letter, interview script, and questions are saved for user review, allowing for final adjustments before submission to prospective clients.
This is the detailed flow of the system:
- LangGraph & LangChain: Frameworks used for building AI agents and interacting with LLMs (GPT-4o, Llama 3, Gemini).
- LangSmith: For monitoring the different LLM calls and AI agents' interactions.
- Playwright: For scraping and crawling websites.
-
Clone the repository:
git clone https://github.com/kaymen99/Upwork-AI-jobs-applier.git cd Upwork-AI-jobs-applier
-
Set up environment variables:
Create a
.env
file in the root directory of the project and add your API keys, see.env.example
to know all the parameters you will need.
- Python 3.9+
- Necessary Python libraries (listed in
requirements.txt
) - API keys for LLM models you want to use (OpenAI, Claude, Gemini, Groq,...)
-
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install the required packages:
pip install -r requirements.txt playwright install firefox
-
Start the workflow:
python main.py
The application will start scraping job listings, classifying them, generating cover letters, and saving the results. By default, all the generated cover letters will be saved in the
data/cover_letter.txt
file alongside a csv file including all the jobs details. -
Test the Upwork jobs scraping tool by running:
python scrape_upwork_jobs.py
- Docker installed on your machine.
- API keys for LLM models you want to use (OpenAI, Claude, Gemini, Groq,...)
-
Build and run the Docker container:
docker build -t upwork-auto-jobs-applier-using-ai . docker run -e OPENAI_API_KEY=YOUR_API_KEY_HERE -v ./data:/usr/src/app/data upwork-auto-jobs-applier-using-ai
The application will start scraping job listings, classifying them, generating cover letters, and saving the results. By default, all the generated cover letters will be saved in the
data/cover_letters.txt
file. -
Test the Upwork jobs scraping tool in Docker by running:
docker run -e OPENAI_API_KEY=YOUR_API_KEY_HERE -v ./data:/usr/src/app/data upwork-auto-jobs-applier-using-ai python scrape_upwork_jobs.py
-
To use this automation for your own profile, just add your profile into
files/profile.md
and remove the example profile. -
You can customize the behavior of each AI agent by modifying the corresponding agent prompt in the
prompts
script.
Contributions are welcome! Please open an issue or submit a pull request for any changes.
If you have any questions or suggestions, feel free to contact me at [email protected]
.