JobNinja Bot

Chat Bot für den Facebook Messenger

Florian Huschka

.com

Wir liefern Bewerbungen!

Assistenzsystem für Bewerber

Title Text

Agenda

1

Vorstellung

2

Thema

3

Analyse

4

Entwurf

5

Implementierung

6

Fazit

7

Quellen

Gegründet 2016 

 

 

Startup des Monats: Mai 2017

~ 24.000 Stellenangebote Online

1000 Kunden

über 90 starke Partner

7 Mitarbeiter

1 Chatbot

Projektbegründung

- Interesse an Bot und KI

- Aktuelle Relevanz

- Unterstützung von Bewerbern

- Kunden nutzen lieber Messenger als andere Apps

Projektvorstellung 

"Servus"

server.post("/api/messages", connector.listen());

var bot = new builder.UniversalBot(connector, [
  function(session) {
    session.send("Hey wir von JobNinja helfen dir bei der Jobsuche!");
    session.beginDialog("askForjob");
  }
]);

Verbesserung der

UI / UX

Alleinstellungs-

merkmal

Erleichterung des "mobilen"

Bewerbungsprozesses

Vermeidung von unvollständigen Bewerbungen

Aufgaben des Chatbot

Microsoft Bot

Framework

Facebook

Messenger

Jobninja 

Jobbörsen API

Microsoft

Azure Server

Projektschnittstellen

Agenda

1

Vorstellung

2

Thema

3

Analyse

4

Entwurf

5

Implementierung

6

Fazit

7

Quellen

Früher sind die Kunden dorthin gegangen, wo die Unternehmen waren. Mit Messenger Chatbots können die Unternehmen endlich dahin kommen, wo die Kunden sind.

 

 

Allein die beiden Apps, WhatsApp und Facebook Messenger, kommen jeweils auf mehr als eine Milliarde Installationen auf Android & Apple Smartphones.

 

 

Das heißt, mit einer Oberfläche können wir mit einer Vielzahl von Unternehmen in Kontakt treten, ohne die App verlassen zu müssen.

Anwendungsfall

Projektphasen 

Bezeichnung Name Vorgang Zeit in h Kosten / Std. Kosten
Arbeitslohn Junior Entwickler Florian Huschka Entwicklung 70 40,00 2800,00 €
Arbeitslohn Projektleiter Laurent Meyer Fachgespräch
Code Review
20 100.00
 
2000,00 €

Brutto Arbeitsleistung : 4800,00 €

Bezeichnung Kosten / Monat
Wartungskosten pauschal 150,00 €
Microsoft Azure Server   40,00 €
Microsoft Bot Framework   00,00 €
Microsoft Visual Studio Code   00,00 €

Summe laufende Kosten

190,00 €

Projektkosten

Amortisation

Monetärer Vorteil

Einsparung von ca. 10 Stunden Arbeitszeit des CEO pro Monat, der User angeleitet hat und Fragen beantwortete.

Bei einer Zeiteinsparung von 0,5 Stunden / Tag und 220 Arbeitstagen / Jahr

 

0,5h x 220 Tage = 110 h

Jahr             Jahr

Dadurch ergibt sich eine jährliche Einsparung bei einem Stundensatz des CEO`s von 135,00 € von :

110 h * 135 € = 14.850,00 €

Amortisation

Die Amortisationszeit beträgt also

Amortisationszeit =

Anschaffungsausgabe

durchschnittlicher Rückfluss

4.800,00 €

(1.350,00 € - 190,00€)

= 4,137 Monate

= 4 Monate 1 Woche

Agenda

2

Thema

3

Analyse

4

Entwurf

5

Implementierung

6

Fazit

7

Quellen

Analyse Ist - Zustand

Bisher steht den Usern die Jobsuche nur als App oder Online im Browser zur Verfügung

Analyse 

Bisher stand den Nutzern nur eine text- basierte Unterstützung in Form einer Benutzeranleitung zur Seite.

Dieses soll nun modernisiert werden und in Form eines Assistenzsystems realisiert werden. Der Jobninja Bot*

 *Unter einem Bot (von englisch robot ‚Roboter‘) versteht man ein Computerprogramm, das weitgehend automatisch sich wiederholende Aufgaben abarbeitet, ohne dabei auf eine Interaktion mit einem menschlichen Benutzer angewiesen zu sein.

Diese Statistik bildet die Anzahl der zur Verfügung stehenden Chatbots im Facebook Messenger in ausgewählten Monaten von Juni 2016 bis Januar 2018 ab.  Im Januar 2018 belief sich die Zahl der verfügbaren Chatbots im Facebook Messenger auf 200.000.

Aktive Chatbots innerhalb des Facebook Messengers

Agenda

3

Analyse

4

Entwurf

5

Implementierung

6

Fazit

7

Quellen

Entwurf

In der Entwurfsphase wurden Möglichkeiten erörtert einen Bot zu Implementieren

Die Entscheidung fiel auf das Bot Framework von Microsoft 

Da dieser von Facebook zusammen mit dem Azure Dienst Favorisiert wird

Funktionsweise des Azure Dienst

Erste Kommunikation

Vorgehen im Entwicklungsprozess

Agenda

4

Entwurf

5

Implementierung

6

Fazit

7

Quellen

var rp = require("request-promise");

var builder = require("botbuilder");
var restify = require("restify");
const fs = require("fs");
var _ = require("lodash");

const PROD = false;
const BASE_URL = PROD
  ? "https://jnprod.herokuapp.com"
  : "https://jnstage.herokuapp.com";

var base64 = require("base-64");
var s3 = require("./s3");

// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function() {
  console.log("%s listening to %s", server.name, server.url);
});
var connector = new builder.ChatConnector({
  appId: process.env.MICROSOFT_APP_ID,
  appPassword: process.env.MICROSOFT_APP_PASSWORD
});

Text

Grundkonfiguration mit Variablen und Connector

// First User Handle await
server.post("/api/messages", connector.listen());

var bot = new builder.UniversalBot(connector, [
  function(session) {
    session.send("Hey wir von JobNinja helfen dir bei der Jobsuche!");
    session.beginDialog("askForjob");
  }
]);

Facebook Regeln besagen das ein Bot nur dann in Aktion treten darf sofern der User es ausdrücklich durch Ansprache wünscht

Somit "hört" der Bot aktiv im Messenger zu und reagiert auf jegliche Ansprache mit einer freundlichen Begrüßung

Warten auf Ansprache

// Dialog to askt 4 Job Keyword
bot.dialog("askForjob", [
  function(session) {
    session.dialogData.query = {};
    builder.Prompts.text(
      session,
      "Gib uns ein Stichwort nach welchem Job wir für dich suchen sollen"
    );
  },
  // Query of the place in it shall be looked for a job
  function(session, results, next) {
    if (results.response) {
      session.dialogData.query.keyword = results.response;
      builder.Prompts.text(
        session,
        `Wo sollen wir für Dich nach ${session.dialogData.query
          .keyword} suchen?`
      );
    } else {
      next();
    }
  },

Schlagwörter für die Suche werden abgefragt

//Output the found result in a Hero Card Carousell
  function(session, results) {
    if (results.response) {
      session.dialogData.query.location_label = results.response;

      session.send(
        `Wir haben in ${session.dialogData.query.location_label} nach ${session
          .dialogData.query.keyword} gesucht!`
      );

Ausgabe der Ergebnisse

Agenda

5

Implementierung

6

Fazit

7

Quellen

Fazit

Alle beteiligten Abteilungen sowie die Geschäftsführung sind mit dem Ergebnis der Entwicklung zufrieden

Ausblick 

Zukünftig soll das Projekt weiter geführt werden-, und um Komponenten wie Registrierung und  "Jetzt Bewerben" innerhalb des Messenger Fensters erweitert werden.

ENDE

Vielen Dank für Ihre Aufmerksamkeit

Agenda

6

Fazit

7

Quellen

Quellen

https://www.skillbyte.de
https://dev.botframework.com/
https://www.ihk-muenchen.de/de/
https://jobninja.com/
https://nodejs.org/      https://www.cit-professionals.de

https://improuv.com/blog/daniel-zappold/tdd-so-einfach-und-doch-so-schwer
 
https://de.facebookbrand.com/
a special thanks to Patrick from Lexip.net

Bilder

https://de.statista.com/statistik/daten/studie/662144/umfrage/anzahl-der-verfuegbaren-chatbots-fuer-den-facebook-messenger/
https://www.flickr.com/photos/dskley/26054673483

Quellen