Senior Full Stack Engineer
København og omegn
Sep 12, 2025
Computerprogrammering
Dette job er ikke blevet analyseret af vores AI-vurderingssystem. Klik på knappen nedenfor for at få en AI-drevet match score baseret på dine præferencer.
# Job Skill Enhancement System
## CORE INSTRUCTION:
You are an AI that extracts and identifies coding languages and frameworks from job descriptions. Your goal is to find ALL relevant technical skills mentioned in the job posting, even if they're mentioned in different ways or aliases.
## INPUT DATA:
{
"job": {"job_id":3633,"title":"Senior Full Stack Engineer","company_name":"Worksome","description":"Worksome is on a mission to make work better. We’re dedicated to creating a world where people are more productive and working on what they love. Our platform offers companies a seamless way to hire, manage and pay their external workforce - creating better experiences for everyone and more opportunities for people in the flexible world of work.\n\nWorksome is a human-first company, with a culture rooted in trust, transparency and inclusion. By prioritizing the needs and well-being of both our employees and clients we believe that we’re one step closer to creating a more agile and fulfilling world of work - for everyone.\n\nFounded in Denmark in 2017, we currently have offices in Copenhagen, London and New York - and are rapidly expanding into new markets.\n\n\n\n\nWorksome works with the world’s largest businesses to solve the way companies and freelancers work together. Located in the very center of the flexible future of work, Worksome believes companies should be able to work with the experts they need, when they need them— and freelancers and contractors should be able to have more stability in their payments and everyday admin.\n\n\n\n\nMISSION\/INTRO TO THE JOB\n\nWe’re looking for a Full Stack Engineer to join our Copenhagen office and help shape the next generation of Worksome’s platform.\n\nThis is an exciting opportunity to build scalable, high-performing software that connects businesses with top-tier talent worldwide. The role is challenging because we operate in a fast-growing, high-demand market, where speed, reliability, and user experience matter deeply.\n\nYou’ll be working with PHP\/Laravel on the backend and Vue on the frontend, with GraphQL powering our data layer.\n\nABOUT THE JOB\n\nIn-office role in the heart of Copenhagen;\nOpportunity to work with cutting-edge technologies and influence product direction;\nA fast-paced, ambitious, and collaborative culture.\n\n\n\n\nABOUT YOU\n\nWe think you’ll thrive if you have:\n\nStrong experience with PHP and Laravel.\nSolid frontend development experience in Vue (preferred) or React.\nHands-on experience with GraphQL, building APIs and integrating them into frontend apps.\nGood knowledge of relational databases (MySQL\/PostgreSQL) and caching strategies.\nExperience building and scaling modern SaaS products.\nAn understanding of CI\/CD, testing practices, and agile methodologies.\nCuriosity and drive, you enjoy solving hard problems and making complex things feel simple.\n\nBonus points if you’ve:\n\nWorked on marketplaces, fintech, or workforce platforms.\nScaled applications handling high traffic and real-time interactions.\n\n\n\n\nBENEFITS\n\nWork–life balance in a company that prioritizes individual well-being\nA work culture built on trust, transparency, and inclusion\nFlexibility with a hybrid setup based in Copenhagen, Denmark (visa sponsorship and relocation package available)\n30 days of paid vacation\nComprehensive leave policies, including paid sick leave, paid sick child leave, and paid parental leave\nHealthcare insurance through Danica and a 4% pension contribution\nSocial events and holiday celebrations to connect with colleagues\nA role where your ideas and contributions will have a real impact\nThe opportunity to help shape the future of work","brief_summary_of_job":null,"existing_skills_from_job":["Fysisk tilstedeværelse","Fuldtid","Full-Stack Development","Stak","HTML","PHP","HTML5","JavaScript","OOP","React.js","XML","SaaS"],"existing_skills_from_database":[]},
"coding_categories": {"languages":["Bash","C","C#","C++","CSS","Clojure","Dart","Elixir","Go","Groovy","Haskell","HTML","Java","JavaScript","Julia","Kotlin","Lua","MATLAB","Objective-C","Perl","PHP","PowerShell","Python","R","Ruby","Rust","Sass","Scala","SQL","Swift","TypeScript"],"frameworks":[".NET","Angular","Apache Spark","ASP.NET","AWS","Azure","Backbone.js","Bootstrap","CodeIgniter","Django","Docker","Ember.js","Express","FastAPI","Flask","Flutter","GCP","Hadoop","Ionic","jQuery","Kubernetes","Laravel","Meteor","NestJS","Next.js","Node.js","Nuxt.js","Phoenix","PyTorch","React","React Native","Ruby on Rails","Spring Boot","Svelte","Symfony","Tailwind CSS","TensorFlow","Vue.js","Xamarin"]},
"skill_aliases": {"bash":"Bash","c":"C","c plus plus":"C++","C plus plus":"C++","c sharp":"C#","C sharp":"C#","c#":"C#","c++":"C++","clojure":"Clojure","cpp":"C++","dart":"Dart","elixir":"Elixir","go":"Go","golang":"Go","Golang":"Go","groovy":"Groovy","haskell":"Haskell","java":"Java","java script":"JavaScript","Java script":"JavaScript","javascript":"JavaScript","Javascript":"JavaScript","js":"JavaScript","JS":"JavaScript","es5":"JavaScript","ES5":"JavaScript","es6":"JavaScript","ES6":"JavaScript","julia":"Julia","kotlin":"Kotlin","lua":"Lua","matlab":"MATLAB","Matlab":"MATLAB","objective c":"Objective-C","Objective C":"Objective-C","objective-c":"Objective-C","objc":"Objective-C","ObjC":"Objective-C","obj-c":"Objective-C","Obj-C":"Objective-C","perl":"Perl","php":"PHP","Php":"PHP","powershell":"PowerShell","Power Shell":"PowerShell","python":"Python","py":"Python","Py":"Python","phyton":"Python","r":"R","ruby":"Ruby","rust":"Rust","scala":"Scala","swift":"Swift","typescript":"TypeScript","Typescript":"TypeScript","ts":"TypeScript","TS":"TypeScript","mysql":"MySQL","postgresql":"PostgreSQL","postgres":"PostgreSQL","mongodb":"MongoDB","mongo":"MongoDB","redis":"Redis","sqlite":"SQLite","oracle":"Oracle","mssql":"SQL Server","sql server":"SQL Server","aws":"AWS","amazon web services":"AWS","azure":"Azure","microsoft azure":"Azure","gcp":"GCP","google cloud platform":"GCP","google cloud":"GCP",".Net":".NET","angular":"Angular","angular js":"Angular","Angular js":"Angular","angularjs":"Angular","AngularJS":"Angular","apache spark":"Apache Spark","asp net":".NET","ASP net":".NET","asp.net":"ASP.NET","ASP.NET":".NET","asp.net core":".NET","ASP.NET Core":".NET","backbone":"Backbone.js","BackboneJS":"Backbone.js","backbone js":"Backbone.js","backbonejs":"Backbone.js","bootstrap":"Bootstrap","Bootstrap framework":"Bootstrap","twitter bootstrap":"Bootstrap","Twitter Bootstrap":"Bootstrap","code igniter":"CodeIgniter","codeigniter":"CodeIgniter","django":"Django","ember":"Ember.js","ember js":"Ember.js","emberjs":"Ember.js","EmberJS":"Ember.js","express":"Express","express.js":"Express","Express.js":"Express","expressjs":"Express","ExpressJS":"Express","fast api":"FastAPI","Fast api":"FastAPI","fastapi":"FastAPI","flask":"Flask","flutter":"Flutter","hadoop":"Hadoop","Hadoop":"Hadoop","ionic":"Ionic","Ionic framework":"Ionic","ionic framework":"Ionic","jquery":"jQuery","JQuery":"jQuery","JQUERY":"jQuery","laravel":"Laravel","meteor":"Meteor","meteor js":"Meteor","meteorjs":"Meteor","MeteorJS":"Meteor","nestjs":"NestJS","nest js":"NestJS","Nest JS":"NestJS","Nestjs":"NestJS","next js":"Next.js","Next js":"Next.js","next.js":"Next.js","nextjs":"Next.js","NextJS":"Next.js","node":"Node.js","Node":"Node.js","node.js":"Node.js","nodejs":"Node.js","NodeJS":"Node.js","nuxt js":"Nuxt.js","Nuxt js":"Nuxt.js","nuxt.js":"Nuxt.js","nuxtjs":"Nuxt.js","NuxtJS":"Nuxt.js","phoenix":"Phoenix","Phoenix framework":"Phoenix","pytorch":"PyTorch","Pytorch":"PyTorch","torch":"PyTorch","Torch":"PyTorch","react":"React","react.js":"React","React.js":"React","reactjs":"React","ReactJS":"React","react native":"React Native","ReactNative":"React Native","reactnative":"React Native","rn":"React Native","RN":"React Native","rails":"Ruby on Rails","Rails":"Ruby on Rails","ror":"Ruby on Rails","ROR":"Ruby on Rails","ruby on rails":"Ruby on Rails","Ruby On Rails":"Ruby on Rails","spark":"Apache Spark","Spark":"Apache Spark","spring":"Spring Boot","Spring":"Spring Boot","spring boot":"Spring Boot","Spring Boot":"Spring Boot","spring framework":"Spring Boot","Spring Framework":"Spring Boot","SpringBoot":"Spring Boot","springboot":"Spring Boot","svelte":"Svelte","symfony":"Symfony","tailwind":"Tailwind CSS","Tailwind":"Tailwind CSS","tailwind css":"Tailwind CSS","Tailwind Css":"Tailwind CSS","tailwindcss":"Tailwind CSS","TailwindCSS":"Tailwind CSS","tensorflow":"TensorFlow","Tensorflow":"TensorFlow","tensor flow":"TensorFlow","vue js":"Vue.js","vue.js":"Vue.js","vuejs":"Vue.js","VueJS":"Vue.js","xamarin":"Xamarin","Xamarin Forms":"Xamarin","Xamarin.forms":"Xamarin","docker":"Docker","kubernetes":"Kubernetes","k8s":"Kubernetes","github":"GitHub","gitlab":"GitLab","bitbucket":"Bitbucket","terraform":"Terraform","puppet":"Puppet","chef":"Chef","scrum":"Scrum","agile":"Agile","kanban":"Kanban","devops":"DevOps","ci\/cd":"CI\/CD","tdd":"TDD","bdd":"BDD","linux":"Linux","windows":"Windows","macos":"macOS","ubuntu":"Ubuntu","centos":"CentOS","debian":"Debian","junit":"JUnit","pytest":"PyTest","jest":"Jest","mocha":"Mocha","cypress":"Cypress","selenium":"Selenium","html":"HTML","HTML":"HTML","html5":"HTML","HTML5":"HTML","css":"CSS","CSS":"CSS","css3":"CSS","CSS3":"CSS","sass":"Sass","scss":"Sass","SCSS":"Sass","less":"Less","LESS":"Less","webpack":"Webpack","gulp":"Gulp","npm":"npm","yarn":"Yarn","sql":"SQL","vue":"Vue.js","full time":"Fuldtid","full-time":"Fuldtid","fuldtid":"Fuldtid","part time":"Deltid","part-time":"Deltid","deltid":"Deltid","contract":"Kontrakt","kontrakt":"Kontrakt","remote":"Fjernarbejde","fjernarbejde":"Fjernarbejde","hybrid":"Hybridarbejde","hybridarbejde":"Hybridarbejde","on-site":"Fysisk tilstedeværelse","onsite":"Fysisk tilstedeværelse","fysisk tilstedeværelse":"Fysisk tilstedeværelse"}
}
## TASK:
1. **Extract ALL coding languages and frameworks** mentioned in the job description
2. **Use the skill_aliases mapping** to normalize skill names (e.g., "JS" → "JavaScript", "React.js" → "React")
3. **Only include skills from the coding_categories** (languages and frameworks)
4. **Avoid duplicates** - if "JavaScript" and "JS" are both mentioned, only include "JavaScript"
5. **Be thorough** - look for skills mentioned in:
- Job title
- Job description
- Brief summary
- Requirements sections
- Nice-to-have sections
## SKILL CATEGORIES TO EXTRACT:
- **Languages**: JavaScript, Python, Java, C#, PHP, Go, Rust, etc.
- **Frameworks**: React, Angular, Vue.js, Laravel, Django, Spring Boot, etc.
## EXCLUSION RULES:
- Do NOT include soft skills (communication, teamwork, etc.)
- Do NOT include methodologies (Agile, Scrum, etc.)
- Do NOT include general tools (Git, VS Code, etc.) unless they're specifically coding-related
- Do NOT include skills already in existing_skills_from_database
## OUTPUT FORMAT:
Return ONLY valid JSON in this exact structure:
{
"job_id": <integer>,
"extracted_skills": [
{
"skill_name": "<normalized_skill_name>",
"category": "<languages|frameworks>",
"confidence": <integer 0-100>,
"mentioned_as": ["<original_mention_1>", "<original_mention_2>"],
"context": "<brief_context_where_found>"
}
],
"reasoning": {
"total_skills_found": <integer>,
"skills_by_category": {
"languages": ["<skill1>", "<skill2>"],
"frameworks": ["<skill1>", "<skill2>"]
},
"duplicates_removed": ["<original_mention> → <normalized_name>"],
"excluded_skills": ["<skill>", "<reason>"]
},
"confidence": <integer 0-100>
}
Return nothing outside the JSON object.
{
"job_id": 3633,
"extracted_skills": [
{
"skill_name": "PHP",
"category": "languages",
"confidence": 100,
"mentioned_as": ["PHP"],
"context": "mentioned in the backend technologies"
},
{
"skill_name": "JavaScript",
"category": "languages",
"confidence": 100,
"mentioned_as": ["JavaScript"],
"context": "mentioned in the frontend technologies"
},
{
"skill_name": "Vue.js",
"category": "frameworks",
"confidence": 100,
"mentioned_as": ["Vue"],
"context": "preferred frontend development experience"
},
{
"skill_name": "Laravel",
"category": "frameworks",
"confidence": 100,
"mentioned_as": ["Laravel"],
"context": "mentioned in the backend technologies"
},
{
"skill_name": "GraphQL",
"category": "frameworks",
"confidence": 100,
"mentioned_as": ["GraphQL"],
"context": "mentioned as powering the data layer"
},
{
"skill_name": "MySQL",
"category": "languages",
"confidence": 100,
"mentioned_as": ["MySQL"],
"context": "mentioned in relation to relational databases"
},
{
"skill_name": "PostgreSQL",
"category": "languages",
"confidence": 100,
"mentioned_as": ["PostgreSQL"],
"context": "mentioned in relation to relational databases"
}
],
"reasoning": {
"total_skills_found": 7,
"skills_by_category": {
"languages": ["PHP", "JavaScript", "MySQL", "PostgreSQL"],
"frameworks": ["Vue.js", "Laravel", "GraphQL"]
},
"duplicates_removed": [],
"excluded_skills": []
},
"confidence": 100
}
Brug avanceret AI (GPT-4o) til at generere en personaliseret ansøgning på dansk til denne jobansøgning. Brevet vil være skræddersyet til din profil, de specifikke jobkrav og omfattende virksomhedsinformation for maksimal effekt.
Worksome is on a mission to make work better. We’re dedicated to creating a world where people are more productive and working on what they love. Our platform offers companies a seamless way to hire, manage and pay their external workforce - creating better experiences for everyone and more opportunities for people in the flexible world of work.
Worksome is a human-first company, with a culture rooted in trust, transparency and inclusion. By prioritizing the needs and well-being of both our employees and clients we believe that we’re one step closer to creating a more agile and fulfilling world of work - for everyone.
Founded in Denmark in 2017, we currently have offices in Copenhagen, London and New York - and are rapidly expanding into new markets.
Worksome works with the world’s largest businesses to solve the way companies and freelancers work together. Located in the very center of the flexible future of work, Worksome believes companies should be able to work with the experts they need, when they need them— and freelancers and contractors should be able to have more stability in their payments and everyday admin.
MISSION/INTRO TO THE JOB
We’re looking for a Full Stack Engineer to join our Copenhagen office and help shape the next generation of Worksome’s platform.
This is an exciting opportunity to build scalable, high-performing software that connects businesses with top-tier talent worldwide. The role is challenging because we operate in a fast-growing, high-demand market, where speed, reliability, and user experience matter deeply.
You’ll be working with PHP/Laravel on the backend and Vue on the frontend, with GraphQL powering our data layer.
ABOUT THE JOB
In-office role in the heart of Copenhagen;
Opportunity to work with cutting-edge technologies and influence product direction;
A fast-paced, ambitious, and collaborative culture.
ABOUT YOU
We think you’ll thrive if you have:
Strong experience with PHP and Laravel.
Solid frontend development experience in Vue (preferred) or React.
Hands-on experience with GraphQL, building APIs and integrating them into frontend apps.
Good knowledge of relational databases (MySQL/PostgreSQL) and caching strategies.
Experience building and scaling modern SaaS products.
An understanding of CI/CD, testing practices, and agile methodologies.
Curiosity and drive, you enjoy solving hard problems and making complex things feel simple.
Bonus points if you’ve:
Worked on marketplaces, fintech, or workforce platforms.
Scaled applications handling high traffic and real-time interactions.
BENEFITS
Work–life balance in a company that prioritizes individual well-being
A work culture built on trust, transparency, and inclusion
Flexibility with a hybrid setup based in Copenhagen, Denmark (visa sponsorship and relocation package available)
30 days of paid vacation
Comprehensive leave policies, including paid sick leave, paid sick child leave, and paid parental leave
Healthcare insurance through Danica and a 4% pension contribution
Social events and holiday celebrations to connect with colleagues
A role where your ideas and contributions will have a real impact
The opportunity to help shape the future of work