Job-Scout
Job-Scout is a Python-based tool that aggregates remote job postings in Machine Learning and Data Science from multiple sources, including Hacker News and Twitter (X). The tool takes your resume in PDF format, analyzes it, and ranks job listings based on how well they match your skills and experience. With easy customization, you can also set it up to search for internships or specific job roles!
π Features
- Multi-Source Aggregation: Pulls remote job listings from Twitter and Hacker News.
- Machine Learning Focus: Primarily searches for Machine Learning, Data Science, and AI roles.
- Resume Matching: Uses your PDF resume to rank job listings based on relevance.
- Remote Job Targeting: Specifically searches for remote positions.
- Customizable Search Queries: Easily modify search criteria for internships or other roles.
π§ Tech Stack
- Python for scripting
- Tweepy for Twitter API access
- sklearn for TF-IDF vectorization and cosine similarity
- PyMuPDF for PDF text extraction
π Getting Started
Prerequisites
- Python 3.7+
- Twitter Developer Account to obtain API credentials (Sign up here)
Installation
-
Clone the repository:
git clone https://github.com/ShreeshaBhat1004/Job-Scout.git cd Job-Scout
-
Install the dependencies:
pip install -r requirements.txt -
Set up API keys:
- Open
config.py. - Replace the placeholders with your Twitter API credentials.
- Optionally, adjust the search parameters to customize job types (e.g., internships).
- Open
π Setting Up Twitter (X) API Keys
- Create a Twitter Developer Account: Go to Twitter Developer and create an account.
- Create a Project and an App:
- After logging in, go to Developer Portal > Projects & Apps > Create App.
- Name your app, and choose appropriate permissions (usually "Read" access is sufficient for fetching job tweets).
- Generate API Keys:
- In your app's settings, go to Keys and Tokens to generate your API Key, API Key Secret, Bearer Token, Access Token, and Access Token Secret.
- Store Keys in
config.py:- Open
config.pyin the repository and add your keys as shown below.
- Open
# config.py # Twitter API credentials API_KEY = "YOUR_API_KEY" API_KEY_SECRET = "YOUR_API_KEY_SECRET" ACCESS_TOKEN = "YOUR_ACCESS_TOKEN" ACCESS_TOKEN_SECRET = "YOUR_ACCESS_TOKEN_SECRET" BEARER_TOKEN = "YOUR_BEARER_TOKEN" # Specify search parameters for Twitter API SEARCH_QUERY = """ ("Machine Learning" OR "ML Engineer" OR "Data Scientist" OR "AI Engineer" OR "Deep Learning") (#hiring OR #job OR #jobopening OR #nowhiring OR #remote OR "work from home") lang:en -is:retweet """ MAX_TWEET_RESULTS = 10 # Number of tweets to fetch
βοΈ Usage
-
Provide a Resume PDF:
- Place your resume in the project folder or specify its full path when prompted.
-
Run the Script:
-
View Recommendations:
- The script will display the top-ranked Machine Learning remote jobs (default) based on how well they match your resume.
Customizing the Search Query
To modify the search query for specific job roles or types (e.g., internships), update the SEARCH_QUERY parameter in config.py. For example:
-
Machine Learning Internships:
SEARCH_QUERY = """ ("Machine Learning Intern" OR "ML Intern" OR "Data Science Internship" OR "AI Intern") (#hiring OR #job OR #internship OR #nowhiring OR #remote OR "work from home") lang:en -is:retweet """
-
General Data Science Roles:
SEARCH_QUERY = """ ("Data Scientist" OR "Data Analyst" OR "Machine Learning Engineer") (#hiring OR #job OR #jobopening OR #nowhiring OR #remote) lang:en -is:retweet """
This customization allows you to filter Twitter job results to focus on internships, specific roles, or different fields within Machine Learning and Data Science.
π Project Structure
Job-Scout/
βββ README.md # Project documentation
βββ requirements.txt # List of dependencies
βββ config.py # Configuration for API keys and tokens
βββ main.py # Main script to run the job search and matching process
βββ utils/ # Utility scripts for modularity
β βββ twitter_search.py # Fetches ML job tweets from Twitter
β βββ hackernews_scraper.py # Scrapes ML remote jobs from Hacker News
β βββ pdf_extractor.py # Extracts text from the PDF resume
π Example Output
When you run the script, youβll see output similar to the following:
Top Machine Learning Remote Job Recommendations:
Job Title: Machine Learning Engineer at XYZ Corp
Job URL: https://example.com/job/1234
Similarity Score: 0.92
Job Title: Data Scientist - Remote
Job URL: https://example.com/job/5678
Similarity Score: 0.89
...
π¬ Contact
For any questions or feedback, please reach out via email - srbhat1004@gmail.com, contributions are welcome.
Happy Job Hunting! π