Giter Club home page Giter Club logo

dev-skill-compass-server's Introduction

Dev-Skill-Compass-Server

๐ŸŒŸ Welcome to "Skills-Compass"

Our mission is to guide you on the most in-demand technologies in Israel's tech job market. We help you stay relevant by providing the latest information on the skills you need for different tech roles.

๐ŸŒ What Makes Us Unique:

Every day, our system scans the latest job postings online, ensuring that our data is the freshest and most accurate, especially for jobs in Israel. This way, you get real-time insights into what employers are looking for.

๐Ÿ”ฎ What's Coming Next:

๐Ÿš€ Exciting things are on the horizon! We're planning to add more job roles, highlight emerging and declining tech trends, and provide even more data to help you navigate the job market with confidence.

LinkedIn GitHub

Table of Contents

๐Ÿ”ฐ Features

  • Automated daily scanning of job postings on the internet.
  • Text analysis and extraction of tech keywords from job descriptions.
  • Aggregation and categorization of data.
  • Visualization of in-demand skills categorized by tech roles.

๐Ÿ‘จโ€๐Ÿ’ป Technologies Used

  • Server: Django (hosted on Render)
  • Database: PostgreSQL (hosted on Neon)
  • Frontend: React Vite (hosted on Netlify)
  • Programming Language: Python 3.12.3
  • Packages Management: Poetry

๐Ÿ—๏ธ Project Structure

  • Django Apps:
    • /core: Base models for the project database.
    • /usage_stats: Advanced models for database usage statistics.
  • /init_db: Scripts for database initialization.
  • /logic: Business logic modules.
    • /web_scraping: Logic and modules for data scraping.
    • /text_analysis: Modules for analyzing job description texts.
    • /data_processing: Logic for processing keywords and grouping them.
  • /templates: HTML templates used in the project.
  • /tmp/django_cache: Server cache storage.
  • /utils: Global configurations and settings.
    • /mail_module: SMTP configuration for email.

โ“ How It Works?

โœ… Data Reliability

How do you avoid collecting data from the same listings on different sites?

We gather job listings from aggregator sites that collect postings from various sources. To ensure comprehensive coverage, we also check individual job sites directly. If a listing is already collected from another source, we skip it to avoid duplicates.

How do you avoid collecting the same listing every day?

Our system scans job listings every 24 hours, focusing on posts from the past day. This method ensures we don't collect the same listing on different days.

How do you handle duplication of listings within the same list?

We compare company names, locations, and job titles to identify and skip duplicate listings during our scanning process.

How do you filter out non-relevant listings?

We analyze job titles to ensure they match the desired role. For example, we filter out listings like "Full-stack Developer" in a search for "Backend Developer."

๐Ÿ”Ž Text Analysis and Data Aggregation

How do you extract relevant words from a text?

We use a dataset of technological keywords to identify and extract relevant terms from job descriptions.

How do you handle different spellings and synonyms of the same technology?

We group synonyms and different spellings, like [node.js, node, nodeJs], into a single category during our data aggregation process.

How do you count the appearance of tech keywords in a single job description?

We use a Set data structure to count each technology's appearance uniquely, regardless of how many times it appears in the text.

How do you count the same keyword for different roles?

We maintain separate counts of each technology for each role. When scanning job listings, we specify the role related to those postings, ensuring the counts are associated with the correct role.

๐Ÿ“ธ Screenshots

image

image

image

image

image

image

Contact Information

  • LinkedIn: LinkedIn
  • GitHub: GitHub

๐Ÿ“œ License

This project is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0) License.

You are free to:

  • Share โ€” copy and redistribute the material in any medium or format.

The licensor cannot revoke these freedoms as long as you follow the license terms.

Under the following terms:

  • Attribution โ€” You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • NonCommercial โ€” You may not use the material for commercial purposes.
  • NoDerivatives โ€” If you remix, transform, or build upon the material, you may not distribute the modified material.
  • No additional restrictions โ€” You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.

Notices:

  • You do not have to comply with the license for elements of the material in the public domain or where your use is permitted by an applicable exception or limitation.
  • No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.

For more details, see the LICENSE file.

dev-skill-compass-server's People

Contributors

korenkaplan avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.