{"id":27775817,"url":"https://github.com/m-biriulova/python-job-market-analysis","last_synced_at":"2026-04-25T21:33:10.239Z","repository":{"id":290044045,"uuid":"973203594","full_name":"m-biriulova/python-job-market-analysis","owner":"m-biriulova","description":"Web scraping, data analysis, and visualization of Python developer vacancies in Czech Republic.","archived":false,"fork":false,"pushed_at":"2025-04-26T13:49:26.000Z","size":9586,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-30T04:57:18.048Z","etag":null,"topics":["automation","beautifulsoup","data-analysis","data-visualization","portfolio-project","python","selenium","web-scraping"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m-biriulova.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-26T13:42:45.000Z","updated_at":"2025-04-26T13:50:57.000Z","dependencies_parsed_at":"2025-04-30T04:57:18.067Z","dependency_job_id":null,"html_url":"https://github.com/m-biriulova/python-job-market-analysis","commit_stats":null,"previous_names":["m-biriulova/python-job-market-analysis"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/m-biriulova/python-job-market-analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-biriulova%2Fpython-job-market-analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-biriulova%2Fpython-job-market-analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-biriulova%2Fpython-job-market-analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-biriulova%2Fpython-job-market-analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m-biriulova","download_url":"https://codeload.github.com/m-biriulova/python-job-market-analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m-biriulova%2Fpython-job-market-analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32278249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","beautifulsoup","data-analysis","data-visualization","portfolio-project","python","selenium","web-scraping"],"created_at":"2025-04-30T04:57:16.333Z","updated_at":"2026-04-25T21:33:10.234Z","avatar_url":"https://github.com/m-biriulova.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📂 Python Job Market Analysis — Czech Republic 🇨🇿\n\n**Project:** Data collection, analysis, and visualization of Python developer vacancies from [Jobs.cz](https://www.jobs.cz/).\n\n---\n\n## 📌 Project Description\n\nThis project focuses on collecting, processing, and visualizing Python job market data in the Czech Republic.  \nIt demonstrates skills in data scraping, data analysis, data visualization, and automation using Python.\n\n---\n\n## 🔧 Technologies Used\n\n- **Python 3.11+**\n- **Pandas** — for data manipulation\n- **Matplotlib** — for data visualization\n- **WordCloud** — for text data visualization\n- **Selenium** — for browser automation\n- **BeautifulSoup** — for HTML parsing\n- **Regular Expressions (re)** — for extracting salary information\n\n---\n\n## 📊 Project Features\n\n- Automatic scraping of job listings from Jobs.cz\n- Data saving into an Excel file\n- Extraction of salary information from job titles\n- Identification of the most demanded specializations\n- Geographic analysis of job opportunities across cities\n- Generation of a WordCloud based on job title keywords\n- Building and saving professional visualizations\n\n---\n\n## 📈 Analysis\n\n- **Salary Analysis:** Extracted salary information where available, plotted salary distribution histograms and boxplots.\n- **Specializations Analysis:** Identified and ranked popular Python specializations such as Data Science, Machine Learning, Web Development, etc.\n- **Location Analysis:** Highlighted cities with the highest number of Python job offers.\n- **Keyword Visualization:** Generated a WordCloud to show frequently mentioned skills and keywords in job titles.\n\n---\n\n## 📊 Results\n\n- The majority of job offers did not explicitly state salary information.\n- Data Science and Web Development were among the most frequently mentioned specializations.\n- Prague was the dominant city for Python job opportunities, followed by Brno and Ostrava.\n- Keywords like Python, Engineer, Developer, Data, and AI appeared most often in job titles.\n\n---\n\n## 🧠 Conclusion\n\nThis project demonstrates the ability to:\n\n- Automatically collect and clean real-world data.\n- Perform meaningful analysis on small datasets.\n- Present findings clearly through professional visualizations.\n- Handle inconsistencies in real data (e.g., missing salaries).\n\n---\n\n## 🚀 Future Work\n\n- Expand scraping to other job platforms like Prace.cz or LinkedIn Jobs.\n- Add salary extraction from detailed job descriptions.\n- Implement sentiment analysis of job ads.\n- Develop a Telegram bot for job notifications.\n- Build an interactive dashboard with Plotly or Dash.\n\n---\n\n## 👩‍💻 About the Author\n\nAuthor: **Mariia Biriulova**\n\n**Python Skills:**\n- Django/Flask web development (full websites and landing pages)\n- Telegram bots development (with Google Sheets integration and admin panel)\n- Excel and Google Sheets automation\n- Web scraping (Selenium, BeautifulSoup)\n- Data Analysis \u0026 Visualization (Pandas, Matplotlib, WordCloud)\n- Data Science fundamentals (statistics, mathematics, regression models)\n- SQL and database management\n- HTML, CSS, JavaScript for responsive web development\n\n**📬 Contacts:**\n- [Telegram](https://t.me/s_masha_s)\n- [LinkedIn](https://www.linkedin.com/in/mariia-biriulova-bb9aa3297)\n\n---\n\n# 📂 Project Structure\n\n```bash\n├── parser_jobs.py            # Scraping job data from jobs.cz\n├── analyze_jobs.py           # Analyzing and visualizing collected data\n├── jobs_filtered.xlsx        # Raw collected job data\n├── salary_histogram.png      # Salary distribution histogram\n├── salary_boxplot.png        # Salary boxplot\n├── specializations_bar_chart.png # Specializations bar chart\n├── top_cities_bar_chart.png  # City distribution bar chart\n├── wordcloud.png             # WordCloud of job titles\n├── README.md                 # Project description\n├── requirements.txt          # List of required libraries\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-biriulova%2Fpython-job-market-analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm-biriulova%2Fpython-job-market-analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm-biriulova%2Fpython-job-market-analysis/lists"}