Automate your entire job search — from scraping listings to generating tailored CVs and cover letters — powered by LLMs and Streamlit.
Job hunting is repetitive and time-consuming. This project automates the entire workflow:
- Scrape LinkedIn job postings with Selenium
- Analyse job market trends with EDA
- Generate tailored CVs and cover letters using an LLM
- Deploy everything through a clean Streamlit interface
LinkedIn Scraper → Job Dataset → EDA → LLM Generator → Streamlit App
- 🔍 Scrape LinkedIn job postings by role and location
- 📊 Analyse hiring trends, keywords, and remote vs on-site patterns
- 🧠 Generate tailored CVs matched to specific job descriptions
- ✉️ Generate personalised cover letters per company
- 💻 Simple Streamlit UI — paste your CV, get your applications
- 📥 Download generated documents directly from the app
project/
│
├── webscraping_linkedin.ipynb # LinkedIn job scraper
├── EDA.ipynb # Exploratory data analysis
├── LLM_cover+CV.ipynb # LLM prompt engineering & generation
├── app.py # Streamlit application
├── data/ # Scraped job datasets
└── README.md
Collects LinkedIn job postings using Selenium + BeautifulSoup.
Extracted fields:
- Job title, company name, location
- Full job description
- Company description
Analyses trends in the scraped job dataset:
- Job distribution by location
- Remote vs on-site ratio
- Company hiring patterns
- Keyword frequency in job descriptions
Uses the OpenAI API to generate personalised job applications.
Inputs: master CV + job description + company info
Outputs: tailored CV + personalised cover letter
User-friendly interface to:
- Paste your CV
- Enter job descriptions
- Generate applications in one click
- Download results
git clone https://github.com/gail-mar/final_project.git
cd final_projectpip install -r requirements.txtCreate a .env file in the root directory:
OPENAI_API_KEY=your_api_key_here
streamlit run app.py- Run
webscraping_linkedin.ipynbto collect job postings - Run
EDA.ipynbto explore the dataset - Open the Streamlit app
- Paste your CV and a job description
- Click Generate — get a tailored CV and cover letter instantly
| Tool | Purpose |
|---|---|
| Python | Core language |
| Selenium + BeautifulSoup | Web scraping |
| Pandas + Matplotlib | Data analysis & visualisation |
| OpenAI API | LLM-powered generation |
| Streamlit | Web app interface |
Gail Marechal — Data Science & AI
Built as a final project for a Data Science & AI bootcamp.