This project helps you find which data skills are trending by analysing real job listings and comparing them over time. The goal is to build a small dataset of job posts, extract skills from job descriptions, and then visualise how demand for each skill changes across months or weeks. By the end, you will have a clean, portfolio-ready project that shows both Python skills and analytical thinking.
Project Goal
Analyse job listings for roles like Data Analyst or Business Analyst and track skill trends such as Python, SQL, Excel, Power BI, Tableau, statistics, and machine learning basics across different time periods.
Step 1: Define scope and collect data
Choose a role level and a time window, such as “last 3 months” or “last 6 months.” Collect 40 to 100 job listings. Save these fields in a CSV:
- job_id
- title
- company
- location
- date_posted
- description_text
- source
You can collect manually (copy-paste into a sheet) or use an API or dataset if available. Manual collection is acceptable for a portfolio project because you will still analyse the data in Python.
Step 2: Create a skill dictionary
Create a list of skills and keywords for matching. Example:
- Python: python
- SQL: sql, mysql, postgresql
- Excel: excel
- Power BI: power bi, powerbi
- Tableau: tableau
- Statistics: statistics, hypothesis, regression
- Machine learning: machine learning, sklearn, scikit-learn
Step 3: Clean and prepare the dataset
In Python:
- parse date_posted into a proper date
- remove duplicates
- standardise text (lowercase, remove extra spaces)
- handle missing descriptions
Step 4: Extract skills using keyword matching
For each job post, create columns like has_python, has_sql, has_excel, etc. Set the value to 1 if the keyword appears in the description, otherwise 0. Keep the matching logic simple and explain it in your README.
Step 5: Build trend metrics
Group by time period (month or week) and calculate:
- total job posts per period
- share of jobs requiring each skill per period (percentage)
This ensures your trend is not distorted when total job posts change.
Step 6: Visualise trends
Create charts such as:
- line chart showing skill share over time for top 6 skills
- bar chart of most demanded skills in the latest month
- heatmap of skill combinations (optional)
Step 7: Insights and deliverables
Write insights such as:
- top skills consistently demanded
- skills growing fastest
- skill combinations that appear together often
- what a learner should prioritise
Deliverables:
- cleaned CSV
- Python notebook
- charts saved as images
- a README explaining dataset, method, and key findings
This project is valuable because it demonstrates data collection, text processing, feature creation, time-based analysis, and storytelling with charts.

