diff --git a/__pycache__/api.cpython-310.pyc b/__pycache__/api.cpython-310.pyc new file mode 100644 index 0000000..44b7782 Binary files /dev/null and b/__pycache__/api.cpython-310.pyc differ diff --git a/api/__pycache__/api.cpython-312.pyc b/__pycache__/api.cpython-312.pyc similarity index 100% rename from api/__pycache__/api.cpython-312.pyc rename to __pycache__/api.cpython-312.pyc diff --git a/api/api.py b/api.py similarity index 100% rename from api/api.py rename to api.py diff --git a/api/Dockerfile b/api/Dockerfile deleted file mode 100644 index a49483c..0000000 --- a/api/Dockerfile +++ /dev/null @@ -1,17 +0,0 @@ -# Use the official Python image from the Docker Hub -FROM python:3.9-slim - -# Set the working directory inside the container -WORKDIR /app - -# Copy the current directory contents into the container at /app -COPY . /app - -# Install the required Python packages -RUN pip install -r requirements.txt - -# Expose port 5000 to the outside world -EXPOSE 5000 - -# Command to run the app using Gunicorn -CMD ["gunicorn", "--bind", "0.0.0.0:5000", "app:app"] diff --git a/api/requirements.txt b/api/requirements.txt deleted file mode 100644 index 62c78ce..0000000 Binary files a/api/requirements.txt and /dev/null differ diff --git a/docker-compose.yaml b/docker-compose.yaml deleted file mode 100644 index dcac128..0000000 --- a/docker-compose.yaml +++ /dev/null @@ -1,28 +0,0 @@ -version: "3.8" - -services: - api: - image: gitea.rannes.dev/rannes.dev/sw-jobs-api:latest - networks: - - traefik-proxy - ports: - - "3600:5000" - volumes: - - /appdata/sw-jobs/scrapers:/app/scrapers - environment: - - FLASK_ENV=production - labels: - - traefik.enable=true - - traefik.http.routers.swJobsRouter.rule=Host(`api.rannes.dev`) - - traefik.http.routers.swJobsRouter.tls=true - - traefik.http.routers.swJobsRouter.entryPoints=https - - traefik.http.routers.swJobsRouter.middlewares=crowdsec-bouncer@docker - - scraper: - image: gitea.rannes.dev/rannes.dev/sw-jobs-scraper:latest - volumes: - - /appdata/sw-jobs/scrapers:/app - -networks: - traefik-proxy: - external: true diff --git a/requirements.txt b/requirements.txt index a1eb08d..62c78ce 100644 Binary files a/requirements.txt and b/requirements.txt differ diff --git a/scrapers/Dockerfile b/scrapers/Dockerfile deleted file mode 100644 index 5718354..0000000 --- a/scrapers/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -# Use the official Python image from the Docker Hub -FROM python:3.12-slim - -# Set the working directory inside the container -WORKDIR /app - -# Copy the script and requirements.txt into the container at /app -COPY jobindex.py . -COPY requirements.txt . - -# Install the required Python packages -RUN pip install -r requirements.txt - -# Install cron and create log file -RUN apt-get update \ - && apt-get -y install cron \ - && touch /var/log/cron.log - -# Copy the cron job file into the cron directory -COPY cronjob /etc/cron.d/jobindex-cron - -# Give execution rights on the cron job -RUN chmod 0644 /etc/cron.d/jobindex-cron - -# Apply cron job -RUN crontab /etc/cron.d/jobindex-cron - -# Run the command on container startup -CMD ["cron", "-f"] diff --git a/scrapers/cronjob b/scrapers/cronjob index b66c13e..566eb14 100644 --- a/scrapers/cronjob +++ b/scrapers/cronjob @@ -1,2 +1,2 @@ # Run the jobindex.py script every hour -0 * * * * python /app/jobindex.py >> /var/log/cron.log 2>&1 +0 * * * * python ~/sw-jobs-1/scrapers/jobindex.py >> /var/log/cron.log 2>&1 diff --git a/scrapers/jobindex.py b/scrapers/jobindex.py index 9e510fd..2a85d21 100644 --- a/scrapers/jobindex.py +++ b/scrapers/jobindex.py @@ -8,7 +8,7 @@ from datetime import datetime, timedelta base_url = 'https://www.jobindex.dk/jobsoegning/it/' # Keywords to include in the job listings -include_keywords = ['software', 'nextjs', 'svelte'] +include_keywords = ['nextjs', 'svelte', 'react'] # Keywords to exclude from the job titles exclude_keywords = ['senior'] diff --git a/scrapers/jobs_db.json b/scrapers/jobs_db.json index 55f8d4d..857aa62 100644 --- a/scrapers/jobs_db.json +++ b/scrapers/jobs_db.json @@ -1,142 +1,212 @@ [ - { - "id": "Software developer-https://brodersen.com/-Randers NV-2024-05-29", - "title": "Software developer", - "url": "https://brodersen.com/", - "img": "https://www.jobindex.dk/img/logo/BrodersenLogo.gif", - "company": "Brodersen A/S", - "location": "Randers NV", - "date_posted": "2024-05-29", - "link": "https://www.jobindex.dk/jobannonce/h1458379/software-developer" - }, - { - "id": "Vi s\u00f8ger en erfaren softwareudvikler til et ambiti\u00f8st produktteam-https://www.ok.dk/-Viby J-2024-05-29", - "title": "Vi s\u00f8ger en erfaren softwareudvikler til et ambiti\u00f8st produktteam", - "url": "https://www.ok.dk/", - "img": "https://www.jobindex.dk/img/logo/okamba.gif", - "company": "OK a.m.b.a.", - "location": "Viby J", - "date_posted": "2024-05-29", - "link": "https://www.ok.dk/om-ok/job?hr=show-job%2f201641&linkref=204872&locale=da_DK" - }, - { - "id": "Software Engineer to energy trading in Denmark or Singapore-https://www.powermart.eu/--2024-05-29", - "title": "Software Engineer to energy trading in Denmark or Singapore", - "url": "https://www.powermart.eu/", - "img": "https://www.jobindex.dk/img/logo/PMLogo-2019.jpg", - "company": "PowerMart ApS", - "location": "", - "date_posted": "2024-05-29", - "link": "https://www.jobindex.dk/img/pdf/PM_SOFTWARE_ENGINEER_20240529_LOST.pdf" - }, - { - "id": "Lyngsoe Systems s\u00f8ger erfaren Softwareudvikler - Bliv en del af vores dynamiske team!-http://www.hviidoglarsen.dk/-Aars-2024-05-29", - "title": "Lyngsoe Systems s\u00f8ger erfaren Softwareudvikler - Bliv en del af vores dynamiske team!", - "url": "http://www.hviidoglarsen.dk/", - "img": "https://www.jobindex.dk/img/logo/LyngsoeSystems_logo_2018.png", - "company": "Hviid & Larsen ApS", - "location": "Aars", - "date_posted": "2024-05-29", - "link": "https://www.hviidoglarsen.dk/jobs?hr=show-job/201545&linkref=204720&locale=da_DK" - }, - { - "id": "Software Test Engineer for the Combat & Self Protection team-http://www.terma.com/-S\u00f8borg-2024-05-28", - "title": "Software Test Engineer for the Combat & Self Protection team", - "url": "http://www.terma.com/", - "img": "https://www.jobindex.dk/img/logo/terma_logo2012.gif", - "company": "Terma A/S", - "location": "S\u00f8borg", - "date_posted": "2024-05-28", - "link": "https://termaas.hr-on.com/show-job/201416&locale=en_US" - }, - { - "id": "Teamchef til Software Development, IT-https://www.sparnord.dk/-Aalborg-2024-05-28", - "title": "Teamchef til Software Development, IT", - "url": "https://www.sparnord.dk/", - "img": "https://www.jobindex.dk/img/logo/SparNord_2019_logo.gif", - "company": "Spar Nord Bank A/S", - "location": "Aalborg", - "date_posted": "2024-05-28", - "link": "https://candidate.hr-manager.net/ApplicationInit.aspx?cid=1148&ProjectId=145012&DepartmentId=19041&MediaId=59" - }, - { - "id": "Developers, Software for Self-Protection Systems, Aeronautics-http://www.terma.com/-Lystrup-2024-05-28", - "title": "Developers, Software for Self-Protection Systems, Aeronautics", - "url": "http://www.terma.com/", - "img": "https://www.jobindex.dk/img/logo/terma_logo2012.gif", - "company": "Terma A/S", - "location": "Lystrup", - "date_posted": "2024-05-28", - "link": "https://termaas.hr-on.com/show-job/178422&locale=en_US" - }, - { - "id": "Postdoc for developing software for simulating nanostructures-https://europeanspallationsource.se/-Kongens Lyngby-2024-05-28", - "title": "Postdoc for developing software for simulating nanostructures", - "url": "https://europeanspallationsource.se/", - "img": "https://www.jobindex.dk/img/brand/_top-esse-200313.png", - "company": "European Spallation Source ERIC", - "location": "Kongens Lyngby", - "date_posted": "2024-05-28", - "link": "https://europeanspallationsource.se/careers/vacancies?rmpage=job&rmjob=1687&rmlang=UK" - }, - { - "id": "Software- og automatiseringsudvikler til Sundhed og Omsorg-https://aarhus.dk/-Viby J-2024-05-27", - "title": "Software- og automatiseringsudvikler til Sundhed og Omsorg", - "url": "https://aarhus.dk/", - "img": "https://www.jobindex.dk/img/brand/45_spo_top_aarhuskommune_8742_20240502.png", - "company": "Aarhus Kommune", - "location": "Viby J", - "date_posted": "2024-05-27", - "link": "https://aarhus.career.emply.com/ad/software-og-automatiseringsudvikler-til-sundhed-og-omsorg/dewsvv/da" - }, - { - "id": "Ambiti\u00f8s softwareudvikler-http://www.deoriginale.dk/-Viby J-2024-05-27", - "title": "Ambiti\u00f8s softwareudvikler", - "url": "http://www.deoriginale.dk/", - "img": "https://www.jobindex.dk/img/logo/Gaming_2019.gif", - "company": "Gaming A/S", - "location": "Viby J", - "date_posted": "2024-05-27", - "link": "https://www.jobindex.dk/jobannonce/h1472652/ambitioes-softwareudvikler" - }, - { - "id": "Integration Specialist med fokus p\u00e5 softwarel\u00f8sninger til dokument -og workflow-systemer-https://www.canon.dk/about_us/-Vejle, S\u00f8borg-2024-05-27", - "title": "Integration Specialist med fokus p\u00e5 softwarel\u00f8sninger til dokument -og workflow-systemer", - "url": "https://www.canon.dk/about_us/", - "img": "https://www.jobindex.dk/img/brand/_top-canon-060219.png", - "company": "Canon Danmark", - "location": "Vejle, S\u00f8borg", - "date_posted": "2024-05-27", - "link": "https://careers.peopleclick.eu.com/careerscp/client_canoneurope/external/jobDetails.do?functionName=getJobDetail&jobPostId=50920&localeCode=da" - }, - { - "id": "Test Automation Engineer-https://xci.dk/?page=home-Aalborg \u00d8st-2024-05-27", - "title": "Test Automation Engineer", - "url": "https://xci.dk/?page=home", - "img": "https://www.jobindex.dk/img/brand/XCI_top20240408.png", - "company": "XCI A/S", - "location": "Aalborg \u00d8st", - "date_posted": "2024-05-27", - "link": "https://xci.teamtailor.com/jobs/4525685-test-automation-engineer?promotion=1031076-jobindex" - }, - { - "id": "Nordic Solution Advisor for VMware or/and Veeam-https://dk.tdsynnex.com/-Birker\u00f8d-2024-05-27", - "title": "Nordic Solution Advisor for VMware or/and Veeam", - "url": "https://dk.tdsynnex.com/", - "img": "https://www.jobindex.dk/img/brand/TDSYNNEX_HR_Denmark_525x120px.png", - "company": "TD SYNNEX Denmark ApS", - "location": "Birker\u00f8d", - "date_posted": "2024-05-27", - "link": "https://synnex.wd5.myworkdayjobs.com/tdsynnexcareers/job/Birkerod-Denmark/Nordic-Solution-Advisor-for-VMware_R29639" - }, - { - "id": "Systems Engineer / System tekniker s\u00f8ges til snarlig tiltr\u00e6delse-https://www.fisker-it.dk/-Herlev-2024-05-27", - "title": "Systems Engineer / System tekniker s\u00f8ges til snarlig tiltr\u00e6delse", - "url": "https://www.fisker-it.dk/", - "img": "https://www.jobindex.dk/img/logo/Fisker.IT_logo.png", - "company": "Fisker IT ApS", - "location": "Herlev", - "date_posted": "2024-05-27", - "link": "https://www.fisker-it.dk/job-systems-engineer" - } -] + { + "id": "Software developer-https://brodersen.com/-Randers NV-2024-05-29", + "title": "Software developer", + "url": "https://brodersen.com/", + "img": "https://www.jobindex.dk/img/logo/BrodersenLogo.gif", + "company": "Brodersen A/S", + "location": "Randers NV", + "date_posted": "2024-05-29", + "link": "https://www.jobindex.dk/jobannonce/h1458379/software-developer" + }, + { + "id": "Vi s\u00f8ger en erfaren softwareudvikler til et ambiti\u00f8st produktteam-https://www.ok.dk/-Viby J-2024-05-29", + "title": "Vi s\u00f8ger en erfaren softwareudvikler til et ambiti\u00f8st produktteam", + "url": "https://www.ok.dk/", + "img": "https://www.jobindex.dk/img/logo/okamba.gif", + "company": "OK a.m.b.a.", + "location": "Viby J", + "date_posted": "2024-05-29", + "link": "https://www.ok.dk/om-ok/job?hr=show-job%2f201641&linkref=204872&locale=da_DK" + }, + { + "id": "Software Engineer to energy trading in Denmark or Singapore-https://www.powermart.eu/--2024-05-29", + "title": "Software Engineer to energy trading in Denmark or Singapore", + "url": "https://www.powermart.eu/", + "img": "https://www.jobindex.dk/img/logo/PMLogo-2019.jpg", + "company": "PowerMart ApS", + "location": "", + "date_posted": "2024-05-29", + "link": "https://www.jobindex.dk/img/pdf/PM_SOFTWARE_ENGINEER_20240529_LOST.pdf" + }, + { + "id": "Lyngsoe Systems s\u00f8ger erfaren Softwareudvikler - Bliv en del af vores dynamiske team!-http://www.hviidoglarsen.dk/-Aars-2024-05-29", + "title": "Lyngsoe Systems s\u00f8ger erfaren Softwareudvikler - Bliv en del af vores dynamiske team!", + "url": "http://www.hviidoglarsen.dk/", + "img": "https://www.jobindex.dk/img/logo/LyngsoeSystems_logo_2018.png", + "company": "Hviid & Larsen ApS", + "location": "Aars", + "date_posted": "2024-05-29", + "link": "https://www.hviidoglarsen.dk/jobs?hr=show-job/201545&linkref=204720&locale=da_DK" + }, + { + "id": "Software Test Engineer for the Combat & Self Protection team-http://www.terma.com/-S\u00f8borg-2024-05-28", + "title": "Software Test Engineer for the Combat & Self Protection team", + "url": "http://www.terma.com/", + "img": "https://www.jobindex.dk/img/logo/terma_logo2012.gif", + "company": "Terma A/S", + "location": "S\u00f8borg", + "date_posted": "2024-05-28", + "link": "https://termaas.hr-on.com/show-job/201416&locale=en_US" + }, + { + "id": "Teamchef til Software Development, IT-https://www.sparnord.dk/-Aalborg-2024-05-28", + "title": "Teamchef til Software Development, IT", + "url": "https://www.sparnord.dk/", + "img": "https://www.jobindex.dk/img/logo/SparNord_2019_logo.gif", + "company": "Spar Nord Bank A/S", + "location": "Aalborg", + "date_posted": "2024-05-28", + "link": "https://candidate.hr-manager.net/ApplicationInit.aspx?cid=1148&ProjectId=145012&DepartmentId=19041&MediaId=59" + }, + { + "id": "Developers, Software for Self-Protection Systems, Aeronautics-http://www.terma.com/-Lystrup-2024-05-28", + "title": "Developers, Software for Self-Protection Systems, Aeronautics", + "url": "http://www.terma.com/", + "img": "https://www.jobindex.dk/img/logo/terma_logo2012.gif", + "company": "Terma A/S", + "location": "Lystrup", + "date_posted": "2024-05-28", + "link": "https://termaas.hr-on.com/show-job/178422&locale=en_US" + }, + { + "id": "Postdoc for developing software for simulating nanostructures-https://europeanspallationsource.se/-Kongens Lyngby-2024-05-28", + "title": "Postdoc for developing software for simulating nanostructures", + "url": "https://europeanspallationsource.se/", + "img": "https://www.jobindex.dk/img/brand/_top-esse-200313.png", + "company": "European Spallation Source ERIC", + "location": "Kongens Lyngby", + "date_posted": "2024-05-28", + "link": "https://europeanspallationsource.se/careers/vacancies?rmpage=job&rmjob=1687&rmlang=UK" + }, + { + "id": "Software- og automatiseringsudvikler til Sundhed og Omsorg-https://aarhus.dk/-Viby J-2024-05-27", + "title": "Software- og automatiseringsudvikler til Sundhed og Omsorg", + "url": "https://aarhus.dk/", + "img": "https://www.jobindex.dk/img/brand/45_spo_top_aarhuskommune_8742_20240502.png", + "company": "Aarhus Kommune", + "location": "Viby J", + "date_posted": "2024-05-27", + "link": "https://aarhus.career.emply.com/ad/software-og-automatiseringsudvikler-til-sundhed-og-omsorg/dewsvv/da" + }, + { + "id": "Ambiti\u00f8s softwareudvikler-http://www.deoriginale.dk/-Viby J-2024-05-27", + "title": "Ambiti\u00f8s softwareudvikler", + "url": "http://www.deoriginale.dk/", + "img": "https://www.jobindex.dk/img/logo/Gaming_2019.gif", + "company": "Gaming A/S", + "location": "Viby J", + "date_posted": "2024-05-27", + "link": "https://www.jobindex.dk/jobannonce/h1472652/ambitioes-softwareudvikler" + }, + { + "id": "Integration Specialist med fokus p\u00e5 softwarel\u00f8sninger til dokument -og workflow-systemer-https://www.canon.dk/about_us/-Vejle, S\u00f8borg-2024-05-27", + "title": "Integration Specialist med fokus p\u00e5 softwarel\u00f8sninger til dokument -og workflow-systemer", + "url": "https://www.canon.dk/about_us/", + "img": "https://www.jobindex.dk/img/brand/_top-canon-060219.png", + "company": "Canon Danmark", + "location": "Vejle, S\u00f8borg", + "date_posted": "2024-05-27", + "link": "https://careers.peopleclick.eu.com/careerscp/client_canoneurope/external/jobDetails.do?functionName=getJobDetail&jobPostId=50920&localeCode=da" + }, + { + "id": "Test Automation Engineer-https://xci.dk/?page=home-Aalborg \u00d8st-2024-05-27", + "title": "Test Automation Engineer", + "url": "https://xci.dk/?page=home", + "img": "https://www.jobindex.dk/img/brand/XCI_top20240408.png", + "company": "XCI A/S", + "location": "Aalborg \u00d8st", + "date_posted": "2024-05-27", + "link": "https://xci.teamtailor.com/jobs/4525685-test-automation-engineer?promotion=1031076-jobindex" + }, + { + "id": "Nordic Solution Advisor for VMware or/and Veeam-https://dk.tdsynnex.com/-Birker\u00f8d-2024-05-27", + "title": "Nordic Solution Advisor for VMware or/and Veeam", + "url": "https://dk.tdsynnex.com/", + "img": "https://www.jobindex.dk/img/brand/TDSYNNEX_HR_Denmark_525x120px.png", + "company": "TD SYNNEX Denmark ApS", + "location": "Birker\u00f8d", + "date_posted": "2024-05-27", + "link": "https://synnex.wd5.myworkdayjobs.com/tdsynnexcareers/job/Birkerod-Denmark/Nordic-Solution-Advisor-for-VMware_R29639" + }, + { + "id": "Systems Engineer / System tekniker s\u00f8ges til snarlig tiltr\u00e6delse-https://www.fisker-it.dk/-Herlev-2024-05-27", + "title": "Systems Engineer / System tekniker s\u00f8ges til snarlig tiltr\u00e6delse", + "url": "https://www.fisker-it.dk/", + "img": "https://www.jobindex.dk/img/logo/Fisker.IT_logo.png", + "company": "Fisker IT ApS", + "location": "Herlev", + "date_posted": "2024-05-27", + "link": "https://www.fisker-it.dk/job-systems-engineer" + }, + { + "id": "Software Engineers (java) for the Combat & Self Protection-http://www.terma.com/-S\u00f8borg-2024-06-06", + "title": "Software Engineers (java) for the Combat & Self Protection", + "url": "http://www.terma.com/", + "img": "https://www.jobindex.dk/img/logo/terma_logo2012.gif", + "company": "Terma A/S", + "location": "S\u00f8borg", + "date_posted": "2024-06-06", + "link": "https://termaas.hr-on.com/show-job/202880&locale=da_DK" + }, + { + "id": "Projektleder til softwareafdeling-https://www.envidan.dk/-Silkeborg-2024-06-06", + "title": "Projektleder til softwareafdeling", + "url": "https://www.envidan.dk/", + "img": "https://www.jobindex.dk/img/brand/Envidan_top_ny_030424_3.png", + "company": "EnviDan A/S", + "location": "Silkeborg", + "date_posted": "2024-06-06", + "link": "https://www.envidan.com/da/ledige-stillinger/projektleder-software/" + }, + { + "id": "Unity Realtime and C# developer for Maritime Simulator software development team-https://forcetechnology.com/da/-Lyngby-2024-06-05", + "title": "Unity Realtime and C# developer for Maritime Simulator software development team", + "url": "https://forcetechnology.com/da/", + "img": "https://www.jobindex.dk/img/brand/spo-top-force-ingenior-223101.jpg", + "company": "FORCE Technology", + "location": "Lyngby", + "date_posted": "2024-06-05", + "link": "https://www.jobindex.dk/jobannonce/h1467736/unity-realtime-and-c-developer-for-maritime-simulator-software-development-team" + }, + { + "id": "Lead Software Test Architect-https://www.grundfos.com/dk-Bjerringbro-2024-06-05", + "title": "Lead Software Test Architect", + "url": "https://www.grundfos.com/dk", + "img": "https://www.jobindex.dk/img/brand/20_spo_top_grundfos_20230802.jpg", + "company": "Grundfos A/S", + "location": "Bjerringbro", + "date_posted": "2024-06-05", + "link": "https://jobs.grundfos.com/job/Lead-Software-Test-Architect/69353-en_GB" + }, + { + "id": "Operations Engineer-https://web.scalepoint.com/da/-Copenhagen-2024-06-05", + "title": "Operations Engineer", + "url": "https://web.scalepoint.com/da/", + "img": "https://www.jobindex.dk/img/brand/Jobindex_header_scalepoint.png", + "company": "Scalepoint Technologies Denmark A/S", + "location": "Copenhagen", + "date_posted": "2024-06-05", + "link": "https://scalepoint.jobs.personio.com/job/1493451?display=en" + }, + { + "id": "IT-automatiseringskonsulent-http://www.dabank.dk/-Tjele-2024-06-04", + "title": "IT-automatiseringskonsulent", + "url": "http://www.dabank.dk/", + "img": "https://www.jobindex.dk/img/brand/DanskeAndelskassersBank_Bygning_top2017.jpg", + "company": "Danske Andelskassers Bank A/S", + "location": "Tjele", + "date_posted": "2024-06-04", + "link": "https://www.epos.dk/REK/DanskeAndelskasser/Joblist/Job.aspx?jobOfferInstanceId=412&joblistId=1&lang=da" + }, + { + "id": "PhD scholarship in discovery of Kagome materials for magnetic catalysis - DTU Energy-https://www.dtu.dk/-Kgs. Lyngby-2024-06-04", + "title": "PhD scholarship in discovery of Kagome materials for magnetic catalysis - DTU Energy", + "url": "https://www.dtu.dk/", + "img": "https://www.jobindex.dk/img/logo/DTU_Logo_Corporate_Red_05042019_2.png", + "company": "DTU, Danmarks Tekniske Universitet", + "location": "Kgs. Lyngby", + "date_posted": "2024-06-04", + "link": "https://efzu.fa.em2.oraclecloud.com/hcmUI/CandidateExperience/da/sites/CX_1/job/3581" + } +] \ No newline at end of file