Digital Commerce ist unser Kernthema. Und hierfür finden wir seit über 20 Jahren die strategischen, konzeptionellen und technischen Lösungen, die unsere Kund:innen und Projekte erfolgreich machen.Wir fragen regelmäßig unsere Kolleg:innen, Kund:innen und Freelancer:innen danach, was sie an uns schätzen.
Deshalb können wir Dir versichern, dass wir ein Team sind, in dem Du Dich wohlfühlen wirst, wenn Du offen & ehrlich bist und Spaß hast in Deiner Rolle mitzugestalten. Wenn ganzheitliche, pragmatische Lösungen sowie ein agil arbeitendes Umfeld Dein Ding sind, passen wir super zusammen.
In unserem 35 Personen umfassenden Team findest Du zahlreiche Professionen: Strategie, UX, UI, Text/Konzept, Analyse, Fullstack-, Backend- und Frontend-Entwicklung, Product Owner sowie Office-, Personal- und Agilitätspower.

// Funktion zum Abrufen der JSON-Daten
function getJSONData() {
fetch(‚https://www.for-sale-digital.com/var/filtered_jobs.json‘)
.then(response => response.json())
.then(data => {
const pageTitle = document.title; // WordPress page titel
const textToRemove = ‚ – For Sale Digital‘;
let modifiedText = pageTitle.replace(textToRemove, „“);
const regex = /

  • (.*?)/g; // Suchen nach den
  • -Tags und extrahieren der Inhalte

    // Ein DOM-Parser erstellen und das HTML parsen
    const parser = new DOMParser();

    // New array for matching entrys
    const matchedJobs = data.filter(job => job.title === modifiedText);

    //apply button links
    const handle = matchedJobs[0].handle;
    const link = ‚https://forsaledigital.onlyfy.jobs/apply/’+handle;
    const buttons1 = document.getElementsByClassName(‚button-1‘);
    const buttons2 = document.getElementsByClassName(‚button-2‘);
    const buttons3 = document.getElementsByClassName(‚button-3‘);

    // Da getElementsByClassName ein HTMLCollection-Objekt zurückgibt, muss über die Elemente iteriert werden
    for (var i = 0; i < buttons1.length; i++) {
    buttons1[i].setAttribute('href', link);
    }
    for (var i = 0; i < buttons2.length; i++) {
    buttons2[i].setAttribute('href', link);
    }
    for (var i = 0; i < buttons3.length; i++) {
    buttons3[i].setAttribute('href', link);
    }

    //titel
    document.getElementById('job-title').innerHTML = matchedJobs[0].title;
    document.getElementById('job-title-mobile').innerHTML = matchedJobs[0].title;

    //keyfacts
    const keyfacts = parser.parseFromString(matchedJobs[0].description, 'text/html');
    const keyfactXpathExpression = `//*[text()='Keyfacts.']`;
    const keyfactElement = keyfacts.evaluate(keyfactXpathExpression, keyfacts, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    if (keyfactElement) {

    let liElement = keyfactElement.nextElementSibling.querySelector('li');
    for (let i = 1; i <= 6; i++) {
    const keyfactID = `job-keyfact-${i}`;

    if (liElement) {
    document.getElementById(keyfactID).innerHTML = liElement.textContent;
    liElement = liElement.nextElementSibling;
    } else {
    document.getElementById(keyfactID).parentNode.parentNode.style.display = 'none';
    }
    }
    }

    // job intro
    const jobIntro = parser.parseFromString(matchedJobs[0].description, 'text/html');
    const xpathExpression = `//*[text()='Hallo! Schön, dass Du hierher gefunden hast!']`;
    const element = jobIntro.evaluate(xpathExpression, jobIntro, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
    document.getElementById('job-intro').innerHTML = element.nextElementSibling.outerHTML;

    //benefits
    const benefits = matchedJobs[0].job_contents[3].content;

    const liElements = Array.from(benefits.matchAll(/

  • .*?/gs));

    // Füge jedes li-Element in das entsprechende Element auf der Website ein
    for (let i = 0; i < 7; i++) {
    const jobTaskElement = document.getElementById(`job-benefit-${i + 1}`);
    if (jobTaskElement && liElements[i]) {
    jobTaskElement.innerHTML = liElements[i][0];
    jobTaskElement.style.listStyleType = 'none';
    }
    }

    //tasks
    const task = matchedJobs[0].job_contents[1].content;

    const liTexts = Array.from(task.matchAll(/

  • (.*?)/gs)).map(match => match[1]);

    liTexts.forEach((text, index) => {
    const taskElement = document.getElementById(`job-task-${index + 1}`);
    // Überprüfe, ob das Element existiert, bevor du den Text einfügst
    if (taskElement) {
    // Setze den Textinhalt des ausgewählten Elements auf den aktuellen Text
    taskElement.textContent = text;
    }
    });

    // Alle übrig gebliebenen Elemente ausblenden
    for (let i = liTexts.length + 1; i <= 7; i++) {
    const taskElement = document.getElementById(`job-task-${i}`);
    if (taskElement) {
    taskElement.parentNode.parentNode.style.display = 'none';
    }
    }

    //know how
    const knowHow = matchedJobs[0].job_contents[2].content;

    // Teile den Inhalt in zwei Teile basierend auf den

      Tags
      const [firstUL, secondUL] = knowHow.split(„

    „).map(part => part.trim() + „

    „)

    const knowHowTexts = Array.from(firstUL.matchAll(/

  • (.*?)/gs)).map(match => match[1]);

    knowHowTexts.forEach((text, index) => {
    const knowHowElement = document.getElementById(`job-know-how-${index + 1}`);
    // Überprüfe, ob das Element existiert, bevor du den Text einfügst
    if (knowHowElement) {
    // Setze den Textinhalt des ausgewählten Elements auf den aktuellen Text
    knowHowElement.textContent = text;
    }
    });

    // Alle übrig gebliebenen Elemente ausblenden
    for (let i = knowHowTexts.length + 1; i <= 7; i++) {
    const knowHowElement = document.getElementById(`job-know-how-${i}`);
    if (knowHowElement) {
    knowHowElement.parentNode.parentNode.style.display = 'none';
    }
    }

    //additional qualifications
    const addQualTexts = Array.from(secondUL.matchAll(/

  • (.*?)/gs)).map(match => match[1]);

    addQualTexts.forEach((text, index) => {
    const addQualElement = document.getElementById(`job-add-qual-${index + 1}`);
    // Überprüfe, ob das Element existiert, bevor du den Text einfügst
    if (addQualElement) {
    // Setze den Textinhalt des ausgewählten Elements auf den aktuellen Text
    addQualElement.textContent = text;
    }
    });

    // Alle übrig gebliebenen Elemente ausblenden
    for (let i = addQualTexts.length + 1; i 0) {
    for (const customField of matchedJobs[0].custom_fields) {
    if (customField.custom_field_id === targetCustomFieldId) {
    // Die gewünschte custom_field_id gefunden, Zugriff auf den „value“.
    if (customField.values[0].value !== “) {
    document.getElementById(‚job-faq-money-1‘).innerHTML = customField.values[0].value;
    break; // Sobald der Wert gefunden wurde, die Schleife verlassen.
    }
    }
    }
    } else {
    document.getElementById(‚job-faq-money-1′).parentNode.parentNode.parentNode.style.display = ’none‘;
    }

    })
    .catch(error => {
    console.error(‚Fehler beim Abrufen der JSON-Daten:‘, error);
    });
    }

    // Funktion aufrufen, um die JSON-Daten abzurufen und zu verarbeiten
    getJSONData();

  • We need you.

    We need you.

    Hallo! Schön, dass Du hierher gefunden hast!

    Keyfacts.

    Welche Vorteile Du hast, wenn Du bei uns an Bord kommst:

    Wertschätzung
    Weiterentwicklung
    Bekannte Marken
    Strukturiert & Ganzheitlich
    Ownership für Aufgaben
    Transparenz
    Landgang

    Die Aufgaben in Deiner neuen Rolle:

    Dieses Know-how bringst Du dafür mit:

    Und das hier hast Du vielleicht auch noch im Gepäck:

    Anne Kukereit von For Sale Digital

    Ich bin deine Ansprechpartnerin

    Anne Kukereit

    Wissenswertes für Bewerber.

    • Anne meldet sich bei Dir und plant ein erstes Kennenlernen mit ihr und einer weiteren Person aus dem Team, meistens mit der Teamleitung
    • Du lernst in einem weiteren Kennenlernen Menschen aus dem Team kennen
    • Über eine Aufgabe lernen wir Deine Arbeits- und Vorgehensweise kennen
    • Wir melden uns mit Feedback bei Dir zurück
    • Wenn für Dich und für uns alles passt, fängst Du ganz bald an

    Lass uns einfach schnacken, wir finden das zusammen schnell raus. Wir wollen Dich gern kennenlernen, alles Weitere sehen wir dann.

    Wir sprechen Deutsch und Englisch und einzelne Kolleg:innen bringen auch noch weitere Sprachen mit ins Team.

    Wir arbeiten zwei Tage in der Agentur und drei Tage remote. Das machen wir so, weil wir sicher sind, dass es uns und unserer Zusammenarbeit gut tut uns persönlich zu sehen. Weil es Vertrauen und psychologische Sicherheit schafft. Wir schätzen aber auch remote Arbeit ungemein, weil es uns Raum für Deep Work, Vereinbarkeit und Freiheit gibt.

    Überzeugt?

    Dann bewirb dich jetzt!

    Überzeugende Qualität, auch als Arbeitgeber.