Skip to main content

SmartPal Features


FAQ flow


See FAQ flow in this mockup (blue)

Once the question is classified as FAQ or Small talk, the chatbot enters the FAQ flow. If the chatbot knows the response right away (when similar questions have already been trained) user will be provided with the answer from the corresponding, trained category. If the chatbot was not able, with confidence, provide a response, the “Unknown answer“ response is given to the user automatically (like: “I cannot answer this question yet, I will ask my human colleagues and get back to you!“). This response can be customized at the Implementation stage and variations of it can be created (advisable). Once the user receives a response, the chatbot asks if they have any further questions. They can exit the flow by choosing “No“, return to the beginning of the FAQ flow by choosing “Yes“, or just ask another question without clicking anything and get a response to their request.



 Entering the FAQ flow

There are several spaces from which the user can enter FAQ flow:

  1. The most common entryway is the “Ask a question“ button in the main menu or welcome message. User can also write a variation of “I have a question“ that the chatbot would understand as a trigger for FAQ flow and ask “What would you like to know?“.

  2. Another, common space where FAQ is usually enabled is

  3. Content flow. There you can decide which block will handle the FAQ (meaning - when the user will be able to ask their questions without first using the “Ask a Question” button). You can also create in your blocks: buttons, quick replies, transitions, etc. that will lead users to the FAQ flow.

  4. Another important entry point is the job carousel, where candidates can ask a position-specific question. In this case, answering “No” to the “Do you have any other question?” will take the user back to the job carousel (and not to the main menu like in other cases).

Common questions about FAQ flow:

  1. Can “Do you have any other question?“ prompt that appears after the chatbot provides an answer be delayed?
    Yes, it can. The default is 0 seconds but it can be longer.

  2. Why and where FAQ is disabled?
    The FAQ is not enabled in the whole chatbot to improve overall experience. For example, in the Job Discovery Flow where we are trying to understand details of a job search intent (location, job type, etc.) the FAQ is disabled. Also, during the application process, we are processing free-text entries from the candidates so we need to make sure that FAQ is not enabled, and that we do not process those responses as questions. For the same reason, Feedback flow also does not treat messages from the user as incoming FAQs.

  3. What happens when a user asks a question in a space where FAQ is not enabled?
    One of three things may happen (it depends where the user is in the chatbot flow). Chatbot may:

    1. Repeat the last message with a prompt to choose one of the options from the list,

    2. Accept question as a response (for example: in the application process),

    3. Ignore the message (nothing happens).

Job Discovery Flow

See Job Discovery flow in this mockup (purple)

The job discovery feature makes the current open positions available to the candidates. In this flow, the candidate will answer a few questions like “In which city are you looking for a job?”. Currently, we support job discovery based on the job’s location (city, country), seniority level, category, and type. You can decide on the questions and their order. On the basis of the candidate´s answers, the available jobs will be filtered and shown. The candidate can answer these questions either by clicking on quick reply buttons or type in an answer. Chatbot will show only options that will provide at least one result so do not worry about zero results search. If the last step of the search will give you just one option, it will be skipped by the chatbot and will lead the user straight to the job carousel


The user can also access the job discovery by writing or clicking “start job search” in the welcome message or writing for e.g. “I want a <job title> in <city or location> ”. Our engine can recognize Job Search intent and, once it does that, also Job Type and Location intent:



At the end of the discovery process, we show the applicable jobs in a job carousel. In case there are no open positions matching the criteria, the candidate is searching for, there is also the subscription functionality where the candidate will be given a chance to subscribe to job positions (this feature is configurable). An empty Job Carousel is not possible, user will be redirected either to Job Carousel with Job Offers or to Subscribe / Sorry no matching jobs messages.

Common questions

  1. Is there a limit of visible suggestions (e.g. visible cities) in the search?
    Yes, the default is 10 but it can be decreased or increased. Platform limitations apply.

  2. Can some questions be skipped if there is just one option possible? (e.g. just one city available)
    Only last question, if it has just one option available, may be skipped.

Application flow

See Application flow in this mockup (the purple section in the flow)

When candidates finish job discovery process can choose a position they are interested in. They start the application process by clicking Apply Now under a specific job position in the job carousel. You can choose to send the candidates to a web page where they continue with their application or you can also let them apply directly in the chatbot.


In the case of in-chatbot application, candidates are then asked several standard questions about their full name and e-mail. 

Screening questions are automatically picked up to be answered during the application flow. 

Application summary

At the end of the application process, candidates will be able to review their application, edit their answers if necessary, and make a successful application.


  • When a user will choose to edit an entry they will be asked the chosen question again and will be able to provide a different answer. Once they do that - a full application summary with the improved answer will be displayed.

  • When user will choose “Send application“ they will receive a notification that the application was sent and they will see an option to provide (configurable) feedback, ask a question or keep looking (and applying) for other jobs.

If your chatbot is built on a text-based platform like WhatsApp or WeChat, take look at our article about the specifics of text-based chatbots.

Common questions

  1. Can we set up validations for the answers?
    We have a few standard validations available (for a valid date, e-mail address, full name) but you can discuss with your Implementation Manager in more depth about the possibilities.

  2. Can we disable/enable e-mail validation?
    No. Email address validation is mandatory.

  3. Can the CV upload step be skipped or made mandatory?
    Yes, we can control if this step should be mandatory or not.

Content flow is a great opportunity to give your users a guided experience. They can choose to follow the designed path to learn more about your company, troubleshoot their issue, prepare for the interview and much more. Also, answers, that do need more clarifications, can be handled by the content flow (user, from the FAQ flow, can enter Content flow). 

Find Job Feature

Additionally to finding jobs by starting the job discovery flow from the main menu, users can reach that flow by asking if jobs are available in the form of a question in the FAQ flow, like in the example below:


Our NLP engine will recognize this query as a Find Job intent, and extract the entities in this phrase as well (profession: Marketing, location: Berlin). You can read more about how our intent recognition works here.

When that intent is recognized, the chatbot will ask for confirmation to make sure that the user wants to trigger the job discovery flow. 


If the user chooses No, provide answer, the chatbot will start looking for a response to that request in your FAQ Dataset. In the case they choose Yes, search for job, the job discovery flow will start. If there are available jobs for that job type and location, the chatbot will ask the user only the remaining questions from that flow (in this example, if the query is “I want a Marketing job in Berlin”, the user would not be asked about the city or profession again because they have already specified that).

Just like when the user is going through the regular job discovery flow, the chatbot will show suitable job openings in a carousel.

In the case there are no available jobs matching the user’s query, the chatbot will give the user a chance to subscribe to future jobs matching those criteria (if the subscription feature is enabled).



Job Carousel

If your chatbot is built on a text-based platform like WhatsApp or WeChat, take look at our article about the specifics of text-based chatbots.

What is a job carousel?

Usually, at the end of the job discovery process user will be able to browse through jobs that match their set criteria. The jobs are displayed in the form of a job carousel, which consists of (limited) information on each listed job, like title, location, department etc. The actual set of displayed information is configured during implementation.

Job carousel components

  • Images
    • By default, all our job carousels have a set of stock-type images. We highly recommend providing your own custom images (see below to learn more). Keep in mind that not all platforms support image-based job carousels.
  • Title
    • Below each job image, we have a title. 
  • Subtitle
    • The city and country are the default subtitles for the job.
  • Buttons
  • “Clicking on 'Apply now'….“ message
    • This message appears only once, to new users. You can adjust the copy of this message.
  • Last card of the carousel: Navigation Card
    • At the end of your carousel, you will see a navigation card that will allow your users to find more or other jobs, subscribe for job updates, and go back to the main menu.
  • Image
    • The image is randomly selected from the pool of images that has been configued.
  • Look for other jobs
    • Users can start a job search again from scratch by using this option.
  • Main menu
    • It triggers main menu functionality and allows the user to see main options (usually: Ask a question, Start job search, Learn more about us).
  • More jobs
    • For better user experience, only a limited number of matching jobs are displayed (typically five) at once. If there are more matching jobs than can fit into a single carousel, the candidate can easily navigate to the next carousel, which will display the next set of jobs.
    • This button will be visible only when there are still more jobs to be displayed. It will be replaced by “Receive job updates“ once there are no more jobs to show.
  • Receive job updates
    • With this button, if Subscription is enabled for this chatbot, the user can trigger a feature that will allow them to receive updates when new positions, matching their search, will appear. This button is only visible when there are no more jobs then what was already shown in the job carousel(s).

Custom images in the job carousel

To provide a better user experience we recommend using your own custom images. Keep in mind that these images need to be provided to your Implementation manager in the appropriate format. We recommend using a set of at least 10 images. This way you can avoid image repetition.

  1. Format
    Images need to be hosted and the links provided to us. Recommended size is at least 500px x 259px (width x height). Images can be bigger or smaller but keep in mind that smaller images may have an impact on their quality. Always keep the ratio (1:0,518).

How a user can enter the job carousel?

There are four ways a user will be able to access the job carousel:

  1. After they reach the end of job discovery flow.

  2. When they have triggered Job Search intent in the FAQ flow (particular case, applicable if not many questions are asked in the job discovery process usually).

  3. When they used the subscription feature and a new job, matching their search, just became available.

  4. Through offer deeplinking.

Common questions

  1. Can I change the limit of cards in the job carousel?
    Yes, you can! Our default is 5 so if there are no platform limitations, we can easily adjust this limit.

  2. Can I change the name of the buttons?
    Yes, it is possible. Keep in mind it has to be 20 characters max.

  3. Will the user ever see an empty job carousel? (no job offers available after they go through job discovery flow)?
    No, that is not possible. Due to the way our job discovery flow is set up, we will always have at least one job offer to display in the carousel.

  4. Can I disable Subscription functionality in the chatbot?
    Yes, it is possible to do so. By default it is enabled.

Job Subscription

If your chatbot is built on a text-based platform like WhatsApp or WeChat, take look at our article about the specifics of text-based chatbots.

Thanks to our subscription feature, we are able to re-engage the users (especially if they have used our app-based chatbot like WhatsApp or Facebook Messenger). Once they sign up for a job update in the job carousel, we keep that information stored. Once we see in the feed that a new job (or jobs) matching their criteria is available, we send a Job Alert.

Here, the user will be able to:

  • Manage subscriptions

  • Ask a context-specific question about the new posting(s)

  • Start an application for one of the shown jobs (either in a chat or your Career page if Application link is present)

  • Learn more about the job offer

  • See more jobs

Managing subscriptions

The end-user will be able to delete their subscriptions once they receive a job alert or by triggering the Subscription intent. They can trigger the intent by writing: “I want to change my subscription“, “Subscription“ etc. in the job discovery flow. The user will be shown a carousel with all the job alerts they subscribed to. In the carousel the user can also unsubscribe from a job subscription.

Common questions

  1. Can I adjust the image of the alert?

  2. Can the Subscription feature be disabled?
    Yes, we can enable or disable the feature.

Screening questions

During the application process, your candidates will need to provide with their name, email address and, if enabled, also their CV.  Screening questions are automatically picked up from the job's screening questions. Compound questions, info text and questions with a large answer set (nationalities for eg.) are not supported in the chatbot flow.

By default, we allow the user to provide free-text (meaning - any input is accepted) answers to your questions. For that reason, FAQ flow is disabled during the screening process and the user is not able to leave the screening process until it is complete and they reach the application summary stage.

Suggested answers

We are also able to provide users with suggested answers. In that way, you can make sure that users will provide more standardized responses by choosing from the suggested options. By default, we allow also free-text responses, so if your user does not choose any of the suggested answers and writes their own response instead, they will not be stopped from moving to the next step. This free-text option in suggested answers is configurable: so we can change this setting for you, so that the chatbot does not accept any other responses than the available options (instead, it will repeat the question with suggested answers, until one of the suggested options is chosen).

Validations and formats

In the case of some screening questions, you want to verify whether the response of your candidates are valid, or whether they meet certain formatting requirements (to ensure that the responses can be accepted). A common example of such a requirement would be birthdate format (YYYY/MM/DD, DD.MM.YYYY, etc.)

Validations available by default:

  • Email (we make sure it looks like an email so entries like ““ or “x@com“ would not be accepted).

  • Full name (we make sure the user writes two separate words to make sure that full name was provided and not just first name).

Content flow

See sample Content flow in a mockup (orange)

Content flow is a great opportunity to give your users a guided experience. They can choose to follow the designed path to learn more about your company, troubleshoot their issue, prepare for the interview and much more. Also, answers, that do need more clarifications, can be handled by the content flow (user, from the FAQ flow, can enter Content flow). 


Content Flow blocks

  1. Starting block
    Each flow has one (and only one) starting block (in our example it is the one with copy: “Learn more about us by clicking one of the buttons below“). This block is displayed when the user starts the flow from the welcome message (in our example: “Learn more about us“ button), main menu or, if intent or FAQ category is attached to it, from FAQ flow as well. This entryway to the content flow can be adjusted per specification.

  2. Block types
    We have several block types and you can decide which ones should be used to provide the best experience for your users.

    1. Buttons - contain a message with up to 3 buttons. Buttons appear one under another horizontally.  The character limit for a button name is 20 characters. You can decide what happens when you click on the button, there are currently 5 actions you can use:

      1. FAQ - Button is triggering FAQ flow (usually “What would you like to know?“ message)

      2. Job search - Button triggers Job Discovery flow.

      3. Restart - Button triggers welcome message

      4. External Link - Button triggers external link

      5. Jump - Button let’s you transition to another block

This is how Button Block type looks like in a chatbot.



  1. Quick replies - contain a message and up to thirteen quick responses to be displayed. They are displayed vertically and there is no character limit per quick reply. You can decide what happens when you click on the quick reply, there are currently 4 actions you can use:

    1. FAQ - Quick reply is triggering FAQ flow (usually “What would you like to know?“ message)

    2. Job search - Quick reply triggers Job Discovery flow.

    3. Restart - Quick reply triggers welcome message

    4. Jump - Quick reply let’s you transition to another block

      This is how Quick Replies Block type looks like in a chatbot:





  1. Transitions - contain a message and offers no option for user interaction, automatically transitions to another action. There are 4 actions you can use:

    1. FAQ - user sees the message and then automatically FAQ is triggered (usually “What would you like to know?“ message)

    2. Job search - user sees the message and then automatically Job Discovery flow is triggered.

    3. Restart - user sees the message and then automatically welcome message is triggered.

    4. Jump - user sees the message and then automatically transitions to another block


  2. Images / Videos (if supported by the platform) - contain an image or a video and offers no option for user interaction. You have to provide a publicly accessible URL of the Image or Video, there is no option for us to upload the content. There are 4 actions you can use:

    1. FAQ - user sees the image or video and then automatically FAQ is triggered (usually “What would you like to know?“ message)

    2. Job search - user sees the image or video and then automatically Job Discovery flow is triggered.

    3. Restart - user sees the image or video and then automatically welcome message is triggered.

    4. Jump - user sees the image or video and then automatically transitions to another block

  3. Block attributes
    1. FAQ enabled - in case of buttons and quick replies block types the user input is matched (case insensitive) against the offered answer options / button labels. If there’s a match the user input is interpreted as the user pressed the button or selected a quick reply. If there’s no match, based on the “FAQ enabled” setting it’s either interpreted as a FAQ question (in case FAQ enabled is checked) or a warning is displayed that one of the options should be selected and the block is repeated (in case FAQ enabled is not checked). You cannot enable FAQ on Image or Video block types.

    2. External triggers - With the usage of external triggers users can jump into any block of the content flow. An external trigger can be an intent (like: “I would like to learn more about your company!“ that can lead you to the first message of the content flow) or an FAQ category (like “What is your diversity policy?” can lead to Diversity category with further content). Any intent or FAQ category can be used only once in a single content flow as an external trigger. Keep in mind that it means that whatever response you have provided for your FAQ category will be overridden and user will end up in the content flow instead. But you can of course continue to approve questions into that category and make sure that more users, in that way, will be able to find your extended content.

How to create a content flow?

  1. Design
    The best way to create content flow is to do it via decision tree / flow builder. Our Implementation team can help you create one in the tool that we are using during chatbot setup process, Botmock. You can also use tools that you have access to like LucidChart or similar. 

  2. Implement

    1. During implementation: content flow is usually part of the setup process and while working on your general flow you will work with your Implementation manager on building your content flow as well.

    2. When chatbot is live: Your Implementation team is responsible for the content flow setup based on the agreed design. Once the setup is complete on Staging you will be able to see the changes and start testing your content flow. Once you confirm that content flow works as intended, implementations team will implement the content flow for the live chatbot.

Feedback flow

See feedback flow in this mockup (aquamarine color)

The feedback feature is valuable if you want to figure out what your candidates think about their experience in the chatbot. Feedback can be triggered after, a customizable, idle time. Idle time starts at the moment the system can recognize that the user/candidate is no longer actively speaking to the chatbot.

Feedback can be configured. If you request feedback after idle time, we recommend asking the user first if they want to provide it to avoid false-negatives. Then you are free to choose other questions. Here is a sample feedback flow:

  • Would you like to provide us some feedback? Suggested responses: Yes and No

    • If No is chosen, the user escapes the flow.

    • If Yes, the user can get one those type of questions (order can vary):

      • Usefulness e.g. Did you find this experience helpful?

      • Recommendation to colleagues e.g. Would you recommend this chatbot to your friends or colleagues?

      • Free text feedback e.g. What did you like about this experience? How could we improve it? (user has the option to “Skip” this step).

Feedback flow can be enabled / disabled in chatbot settings.  If feedback flow is enabled at least one option for “feedback flow event” needs to be selected.

Admin can select 1 - 4  “feedback flow events” (each only once). They can specify the order in which feedback messages will be sent to user.

Admin can set Exit on and Go to last step on for each Feedback flow event. 

Exit on - stop feedback flow and redirect to Main menu + do not save Feedback, 

Go to last step - stop feedback flow, show “thank you for feedback” message and save already entered feedback. Options are Yes/No/<not set>.

If Yes/No is selected then on corresponding answer from user  during the feedback flow Exits/Goes to last step. (So admin can set in Would you like to provide us some feedback?  -> No is chosen ->  User escapes the flow and feedback is not saved)


If you have an Application flow, your candidates can also access a feedback flow once they complete and send their application:clipboard_e4b6c09a8bfc671b4742d10dc3a76e939.png

Common questions

  1. Are copies of those feedback questions customizable?
    Yes, they are, and so are the suggested answers.

  2. Can I send a prompt for feedback only after the application?
    Yes, this option can be enabled

We do not recommend setting up short idle time in app-based chatbots like WhatsApp. In a case of a web-based solution, you may consider shorter idle time so you can get some feedback before the user leaves your website (if the user comes back to your website they will get a notification with a prompt for feedback if they left before they got it last time).

Call-to-Action (CTA)

A crucial part of the chatbot integration on your website or other channels is creating inviting, clear and visible Call-to-Action (CTA).

CTA copy

To differentiate your recruitment chatbot from any other, general bot (especially important if your business model is B2C), your CTA should be clear and indicate what the chatbot can help with (like application, answering questions, onboarding, etc.). Here are some good and bad examples:



  • Any questions?

  • Questions?

  • Talk with us

  • Chat now

  • Learn more


  • Apply for your dream job!

  • Ask your career questions

  • Questions about our recruitment process?

  • Apply and learn more about our vacancies!

  • Any questions around our careers?


Although the content of your CTA is crucial in getting the right traffic, it is also vital to invite visually the user to start the conversation. Using colors that do not blend easily with the rest of your website and building proactive messages are one of the ways to make it happen. Consult with your Design team to come up with the best solution for your website. 

QR codes

You can include QR codes in offline promotional campaigns but also on your website. It is especially useful in the case of WhatsApp, SMS, or WeChat chatbots to do so. When you decide to use QR codes, make sure to also include short instruction how to reach the chatbot without scanning the code (for example, that they can just text you at the provided number):

In the mobile view, it is advisable to build a solution that will bring the user straight to the app. In the case of all text-based platforms like SMS, WhatsApp, and WeChat, you can direct your users straight to the app and the chatbot with a proper link.

Proactive Messaging

In the case of WebMessenger, you can build an entire custom behavior of your chatbot. Download the full technical guideline here:

WebMessenger Customization Guideline.pdf

Building an invitation, a short bubble that we like to call a proactive message, allows you to provide more information about the solution to the users and lead them to your chatbot.

Deeplinking CTA

In a case you are using deeplinking, it is advisable to create a clear CTA, different from the general entry point for the chatbot. If you are using WhatsApp for example, you can create “Apply via WhatsApp“ buttons on the individual job pages that would lead to the start of the application process in the chatbot for the particular job.


Deeplinking is a convenient feature, which allows candidates to take a shortcut past job discovery flow directly to the job carousel or to the application flow. This technique is typically used when a particular job position is advertised individually, using either an online or an offline marketing method.

Offline solutions:

  • Using an offline (printed) QR code that candidates can scan with their mobile devices and are taken to the job position (in Whatsapp or SMS messenger)

Online solutions:

  • Perform a platform switch (from WebMessenger to Whatsapp or to SMS)

    • QR code or link displayed on a website, candidates scan the QR code / click the link and are taken to the job position

  • Email campaigns:

    • Link sent out to talent pool, candidates who click on the link are taken to the job position

On which platform is deeplinking available?

Deeplinking itself works on every platform - but requires platform dependent message pre-population for best results. You can learn more about message pre-population in the “How to pre-populate user message?” section of this page.

Please note: deeplinking works the best with message pre-population which is a platform dependent feature and as such on some platforms might not be supported. Please check the platform comparison for further details.

How does deeplinking work?

Deeplinking uses a special control command that is passed to the chatbot and instructs it to shortcut the conversation to a specific job position.

Each deeplink consists of two parts: a control command word and the job position identifier.

Types of deeplinking

There are two types of deeplinks: one can direct the candidate to the job carousel (offer deeplinking), while the other to the first step of the application flow (application deeplinking). 

Offer deeplinking

In case of offer deeplinking, the candidate is taken to the job carousel, which is populated only with the particular job offer. At the job carousel, candidates can ask position specific questions or proceed to the application flow.

The control command word for offer deeplinking is #ref_ext_offer and is supposed to be followed by the job ID, provided between two colons. Example: #ref_ext_offer:12345: where 12345 is the job ID. 

Application deeplinking

Application deeplinks take the candidate to the first step of the application flow, so they can start the application right away. Note: application deeplinking will work properly only if in-chatbot applications are enabled in your chatbot.

The control command word for application deeplinking is #ref_apply which should be followed by the job ID within colons. Example: #ref_apply:12345: where 12345 is the job ID. 

How to pre-populate the user message

In order deeplinking to work, the control command word and the job ID must be sent in the conversation by the candidate. Message pre-population is a method that fills the chatbot conversation with a pre-set message (in our case the deeplinking command and job ID). With the use of message pre-population, the effort on the candidate’s side is reduced to a single button press.

To make deeplinks user friendly, any human readable text can be added to them. Examples:

  • Please send this message to apply for the Designer lead position! #ref_ext_apply:12345:

  • Please send #ref_ext_offer:12345: to see more information on the position!

Message pre-population is a platform specific method:


Add the following code to the SmartPal chatbot snippet implemented on your website, right after the invocation of the JobPal.init() function:



Whatsapp has a technique to create links that pre-populate chat messages - please find the documentation here. Note: as described in the documentation, the message in the resulting link must be URL encoded. You might want to use this tool to create a properly encoded Whatsapp link.

The created link can be used on a website (to redirect your users to Whatsapp) or using a QR code generator can be converted into a QR code and used in print media.


You can create web links that pre-populate sms messages on mobile devices, using the following format

<a href="sms:+123456789&body=deeplinking_message">Click here to apply!</a>


  • +123456789 is the phone number to send the SMS to

  • deeplinking_message is the URL encoded message to be sent

The link created this way, can be used on mobile websites or can be turned into a QR code using the URL to QR code converter tool. Or if you prefer, you can create the QR code directly with this tool.

Please contact your account representative in case you need support setting up deeplinking.

Web Messenger Chatbot

Check this overview to see the main differences between platforms.

The WebMessenger platform allows you to implement your chatbots on your website using a short snippet (code) that you have to include in the Head section of your website and in the Body section of the page(s) where the chatbot is supposed to be located.

Possible customizations

For full technical details please download our WebMessenger Customization Guideline: WebMessenger Customization Guideline.pdf

  1. SmartRecruiters adjustments
    There are a few elements that we are able to change only from the level of our dashboard:

    1. Logo/avatar of the chatbot (provide the image in .jpg or .png format, 200px x 200px at least)

    2. Chatbot name

    3. Interface colors (for more details see the guideline),

    4. Display Style (Horizontal Tab or Floating Button/Logo)

  2. Changes you can make
    Without heavily rebuilding the interface you can make small changes in the provided code to improve the user experience. You can:

    1. Turn off sound notification (for incoming new message)

    2. Add background image (by default there is none)

    3. Fix the intro (space with chatbot name, logo, and introduction text)

    4. Adjust or replace the copy of the header and introduction text:

      1. headerText: "How can I help you?"

      2. introductionText: "Don't hesitate to contact us"

With the embedded mode you can disable the auto-rendering mechanism and build a custom interface of your chatbot. 

Default mode

In the default mode we operate an auto-rendering mechanism. Within the scope of that code you can adjust to enable a fully expanded view after timeout (implement before </script>). Keep in mind that would mean that every user entering the page will be considered as an active user for the chatbot.
If you want to open the web view please call;, eg open after the page load "setTimeout(() =>, 2000);"

Embedded mode (OPTIONAL)

To embed the widget in your existing markup, you need to pass embedded: true when calling JobPal.init. By doing so, you are disabling the auto-rendering mechanism and you will need to call JobPal.render manually. This method accepts a DOM element which will be used as the container where the widget will be rendered.


    appId: '<app-id>',

    embedded: true


    function() {

        // Your code after init is complete


    function(err) {

        // Something went wrong during initialization






The embedded widget will take full width and height of the container. You must give it a height, otherwise, the widget will collapse.


Instead of and JobPal.close(), you will have to render WebMessenger into your container and control the visibility of the container itself, e.g.:

var chatContainer = document.getElementById(“chat”);



Strings customization

The Web Messenger lets you customize any strings it displays by overwriting its keys. Simply add the customText key in your JobPal.init call and specify new values for the keys used in it. You can find all available keys here. If some text is between {}, or if there is an html tag such as <a>, it needs to stay in your customized text. For example:


    appId: '<app-id>',

    customText: {

        headerText: 'How can we help?',

        inputPlaceholder: 'Type a message...',

        sendButtonText: 'Send'



    function() {

        // Your code after init is complete


    function(err) {

        // Something went wrong during initialization



Display Style

The Web Messenger can be displayed as a button or as a tab. The default style is the button mode.

When the display style is a button, you have the option of selecting your own button icon. The image must be at least 200 x 200 pixels and must be in either JPG, PNG, or GIF format.


Specify the displayStyle and buttonIconUrl in the call to JobPal.init.


    appId: '<app-id>',

    // ...

    displayStyle: 'button',

    buttonIconUrl: 'https://myimage.png'

    // ...


    function() {

        // Your code after init is complete


    function(err) {

        // Something went wrong during initialization



Button Size

You can customize the size of the button by setting a buttonWidth and buttonHeight. When not provided, the button will have a default size of 58 x 58 pixels. Specify the buttonWidth and buttonHeight in the call to JobPal.init.


    appId: '<app-id>',

    // ...

    buttonWidth: '90',

    buttonHeight: '90'

    // ...


    function() {

        // Your code after init is complete


    function(err) {

        // Something went wrong during initialization



Fixed Intro

You can set the introduction pane to fixed mode by setting fixedIntroPane to true. When set, the pane will be pinned at the top of the conversation instead of scrolling with it. The default value is false.


    appId: '<app-id>',

    // ...

    fixedIntroPane: true

    // ...


    function() {

        // Your code after init is complete


    function(err) {

        // Something went wrong during initialization




The supported color customizations are:

  • The Brand Color customizes the color of the messenger header. It is also used for the color of the button or tab in idle state, as well as the color of the default app icon. If no color is specified, the brand color will default to #65758e.

  • The Conversation Color customizes the color of customer messages and actions in the footer. If no color is specified, the conversation color will default to #0099ff.

  • The Action Color changes the appearance of links and buttons in your messages. It is also used for the ‘Send’ button when it is in active state. If no color is specified, the action color will default to #0099ff.

Color Customization


    appId: '<app-id>',

    // ...

    customColors: {

        brandColor: "7af442",

        conversationColor: "b7b7b5"

        actionColor: "191919"


    // ...



        function() {

            // Your code after init is complete


        function(err) {

            // Something went wrong during initialization



Business profile

You can customize your business branding with the businessName and businessIconUrl settings. For the businessIconUrl setting, the image must be at least 200 x 200 pixels and must be in either JPG, PNG, or GIF format.

Web Messenger Business Branding

If the branding settings are not set, they fall back to the app's settings. The app name is used as the businessName, and the app icon is used as the businessIconUrl.



    appId: '<app-id>',

    // ...

    businessName: 'Acme Corporation',



    // ...


    function() {

        // Your code after init is complete


    function(err) {

        // Something went wrong during initialization




Background Image

You can customize the background image in your SDK with the backgroundImageUrl setting. The image will be displayed at its full size, and tiled if it is not large enough to fill the conversation.

For reference, the following CSS will be used to display the background:


    background-image: url('https://a-nice-texture.png');



Web Messenger Business Branding


    appId: '<app-id>',

    // ...

    backgroundImageUrl: 'https://a-nice-texture.png'

    // ...


    function() {

        // Your code after init is complete


    function(err) {

        // Something went wrong during initialization




Sound notification

By default, a sound notification will be played when a new message comes in and the window is not in focus. To disable this feature, you need add the soundNotificationEnabled option to the JobPal.init call, like this:


    appId: '<app-id>',

    soundNotificationEnabled: false // Add this line to your 'JobPal.init' call


    function() {

        // Your code after init is complete


    function(err) {

        // Something went wrong during initialization



Browser storage

By default, the Web Messenger will store the identity of anonymous users in the localStorage of the browser. Using the localStorage will persist the user identity throughout browser sessions (including page reloads and browser restarts). To clear the user identity once the browser is closed, use sessionStorage instead. 


    appId: '<app-id>',

    browserStorage: 'sessionStorage' // Add this line to your 'JobPal.init' call


    function() {

        // Your code after init is complete


    function(err) {

        // Something went wrong during initialization



Menu items

The Web Messenger features a menu that allows the user to send various message types. The types displayed in this menu can be customized, or the menu can be hidden altogether. If you want to control this menu, add the menuItems option to the JobPal.init call:


    appId: <app-id>,

    menuItems: {

      imageUpload: true,

      fileUpload: true,

      shareLocation: true


    // ...



        function() {

            // Your code after init is complete


        function(err) {

            // Something went wrong during initialization



To hide the menu completely, override the menuItems option as follows:


    appId: <app-id>,

    menuItems: {},

    // ...



        function() {

            // Your code after init is complete


        function(err) {

            // Something went wrong during initialization




WhatsApp Chatbot

Check this overview to see the main differences between platforms.

WhatsApp allows you to implement a text-based chatbot. To set up a chatbot on WhatsApp, we will need a phone number and WhatsApp API license.

Phone number

  1. If you have already a phone number…

    1. …and it was already used on WhatsApp: (Private or Business)
      You will need to complete this process to migrate the phone number and delete the WhatsApp account associated with that phone number. After that, we can start the license application process. If the number is currently being used, to avoid any downtime, we can start the process and coordinate the date where the number can be switched to the WhatsApp API

    2. …and it was never used on WhatsApp:
      During the license application process, you will need to provide us with an activation code that WhatsApp will send to your number, so you will have to have access to either SMS or voicemail of that phone number.

  2. If you do not have a phone number yet:
    We are able to provide you with a localized phone number. Keep in mind that due to some country-specific legal limitations, this option may be limited. Please check with your Account Executive or Implementation Manager if localization for your country is available.

WhatsApp API license

Keep in mind that your company needs to meet WhatsApp Commerce Policy guidelines to be allowed to operate on the app.

Once we have a phone number that can be used or moved to WhatsApp API, we can start the license application process. This is the information we will need from you to complete it:

  1. Full company name (for example: Acme Ltd.)

  2. Company address
    Please provide full address: street, number, postcode, city, and country.

  3. Company’s point of contact
    This person must be employed by the company. They will receive confirmation of the WhatsApp API license activation.

    1. First name

    2. Last name

    3. Email

    4. Phone number

  4. WhatsApp information

    1. Customer Facebook Business Manager ID
      This number can be found in the "Business Info" section of your Facebook Business Manager Dashboard

    2. Desired Phone Number

    3. Name associated with the number
      This is the name that's displayed when your message appears in your users' apps. It cannot be changed or edited later.

    4. Data storage region. Choose between the United States and the European Union. Once WhatsApp Business API has been activated in one region, it cannot be migrated to another region.

If the phone number belongs to you, we will coordinate the activation process. Once we apply for the license, we will be asked for the code immediately, and we will need you to provide it within 15 minutes.

WhatsApp Chatbot integration

Keep in mind that WhatsApp does not allow the chatbot to send a proactive message so your users will need to make the first move and establish the connection with the chatbot. They can send a pre-filled message, or any other message, to do so.

Since WhatsApp chatbots cannot be directly accessed from the web (unlike with WebMessenger or Facebook Messenger) there are other ways you can make sure that your users will find your chatbot:

  1. Click-to-Chat links
    WhatsApp allows you to lead your users to the app or the web version of your WhatsApp-based chatbot with Click-to-Chat links. You can pre-fill this link with any content to make sure that a particular message shows up as the suggested first message for your users to just click on, and trigger the conversation. There are several online tools that allow you to easily generate these links. Here is one of our favorites.

  2. QR codes
    You can create QR codes that your users will be able to scan on your website, posters, social media posts, and so on. Those QR codes should work both with standard scanning apps (on Android and iOS devices) and with WhatsApp’s own scanning feature.

Deeplinking and Tracking on WhatsApp

Due to WhatsApp limitations, we are not able to pass deeplinking triggers or tracking information in the background. To make sure that you track properly your applicants or deeplink them into the job carousel or application process, make sure that all the components are present in the Click-to-Chat links.


Facebook Messenger Chatbot

See an overview of all platforms and their advantages and disadvantages here.

Facebook Messenger allows you to build chatbots that are accessible from your Facebook page and are searchable in the Messenger app. You can create Call-to-Action (CTA) buttons in your Facebook ads or posts that would lead straight to the chatbot. You can also integrate it also on your website, thanks to the plugin functionality.

Facebook Messenger allows you to include audio, video, and image files in your chatbot, and also use other visual features, like carousels.


To implement the Facebook Messenger chatbot, we need a few crucial elements:

  1. Your Facebook page.
    Each chatbot has to be connected to the active (meaning: published) page. We can connect to the already existing page (keep in mind that chatbot will replace the current CTA button in the top right corner of your page), or create a new page for you (you will be responsible for the appearance and content of that page). To make sure that you can deploy your chatbot without problems, we always create a Test/Staging version of the chatbot on Facebook.

  2. Admin access.
    SmartPal requires an admin access account to your Facebook page to establish and maintain a connection to your chatbot. Your Implementation Manager will guide you in this process. Removing the admin rights of the user will immediately break the connection and chatbot will not be available anymore to your users.


Thanks to this functionality you are able to set up your Facebook Messenger chatbot on your website. Your users will be able to access the chatbot from their Facebook account or as Guests: meaning that they would not have to have a Facebook account to talk to the chatbot.

Facebook’s setup tool provides a simple UI for customizing the greeting message, theme color, displayed response time format, and setting the whitelisted domains for the plugin. You can also customize it further, more information available on the Facebook Developer website.

You have a 24-hour idle time to respond to your users (once your users will stop interacting with the chatbot, you have 24 hours to reconnect with them, otherwise the conversation will time out). This Facebook limitation impacts usually direct answers or delayed answers since both may be provided outside that time window.

Chatbot personality

During the chatbot implementation process, it is crucial to think not only about the technical framework, but also the chatbot’s looks and personality. You should both follow your corporate guidelines, and adjust the chatbot visually for your target audience. 


Depending on the chosen platform, an avatar would usually be located at the top of the chat window and/or next to messages that the chatbot is sending to your users. You can choose to create a brand new avatar, perhaps a robot-like design, or just use your company’s logo. We do not recommend using realistic photos that may mislead your users into thinking that they are talking with a human.


In the case of Facebook Messenger chatbots, the avatar is the profile picture of your Facebook Page. The avatar is not available in SMS-based chatbots. For other platforms, we are able to set up chatbot-specific profiles and adjust the avatar.


By naming your chatbot you can give it more personality and make it more memorable for your users - and your team as well!

In the case of WebMessenger based chatbots, the name will appear in the header (in this case Demo Bot), and along with every answer/message that is given by the chatbot.


In order to find a suitable name for your chatbot, it can help to think about what would represent your company’s voice and values best. Which name could be easily connected to your company? Do you have a mascot with some great name you can use? In the past, our customers have came up with great ideas by creating internal surveys and competitions. It is also a great way to engage your colleagues and spread awareness of the project internally.

If you have decided to use a specific name, it is advisable to include it in the welcome message. Make also sure that your users are aware that they are talking to a chatbot. Example: “Hi I am Loki, {your company}'s career assistant and I am here to help you learn more about {your company} and to find your next job.”

In a case, your chatbot was built on Facebook Messenger the name of the Facebook page will appear only in the header. You can still give the chatbot a unique name and include it in the welcome message.

In the case of other platforms like SMS or WhatsApp, your users will have power over how your chatbot is saved in their contact list, but as with Facebook Messenger, you can introduce the chatbot’s name in the welcome message as well.


We recommend using the colors according to your company brand guidelines. You may need to get approval from your Brand or Design team and confirm the color scheme you can use for your chatbot. We recommend using colours that will stand out and not blend with the rest of the website easily (especially for the Call-to-Action). 

If you have chosen a WebMessenger based chatbot, we can implement a few visual adjustments, please follow this article to learn more. In the case of a Facebook Messenger based chatbot, you can adjust the feel and the look of the plugin. Read more about it here.



Brand Color


Conversation Color


Action Color



We are not able to visually influence WhatsApp, WeChat or SMS-based chatbots


There are a few things that we recommend taking into account when writing your chatbot answers, small talk replies or when phrasing questions. 

  • Who is speaking? Align with your company’s brand and voice. Are you using: We (company voice), I (chatbot voice), or staying neutral in your answers?

  • Formal or Informal? Who is your target group? Are you addressing students, entry-level, or senior-level candidates? Can you use more informal language or is it preferable to stay formal?

  • Emojis: We recommend using emojis and exclamation points. The more personal and conversational you can be, the better for the UX.

  • Consistency: Make sure to align internally and provide the chatbot with a consistent voice while creating new answers or providing direct answers to your users. 


SmartPal provides customers, with all talent activity data on the analytics page to foster data-driven decisions. The Analytics page has two tabs: “Report” and “Monthly”

Report tab

Setting the timeframe

On the reports tab you can create reports on a set time range. Set the required start and end dates on the top of the page and hit the “set” button to generate the report.

Please note:

  • Data for the start and end dates are inclusive.

  • The start date can not be set earlier than 6 months before the current date.

  • The examined time period can not be longer than 3 months.

Funnel report

In the left hand side panel you find the most important numerical results of the set timeframe.


Active users: Unique end-users interacting with the bot in the set time period. (Note: on certain platforms this number represents unique end-user devices.)

New users: Unique end-users interacting with the chatbot for the first time in the set time period. (Note: on certain platforms this number represents unique end-user devices.)


Questions asked: End-user utterances that were interpreted as a question (not included: small talk; activity in job discovery, application and content flow; chatbot control commands).

Rate of incoming questions outside working hours: Percentage of questions coming in outside your company’s set working hours (set during the chatbot implementation phase) - outside working hours include regional public holidays (company region is set during the chatbot implementation phase).

Users asking questions: Number of users asking at least one question in the conversation with the chatbot in the set time period.

Questions per user asking: The average number of questions asked per questioning user. Equals to Questions asked / Users asking questions

FAQ Automation

Direct Answers: Amount of direct answers give to candidates by a recruiter

Questions answered automatically: Amount of questions that were automatically answered by the chatbot.

Auto-Response rate: Percentage of questions automatically answered by the chatbot.

Job Discovery Funnel

Note: This section is present only if the job discovery feature is turned on in your chatbot.

Users starting job search: Number of candidates entering the job discovery funnel in the set time period 

Users getting to job carousel: Number of candidates finishing the job discovery funnel (reaching the job carousel) in the set time period. Note: occasionally users go trough the job discovery phase over a longer period of time (even as long as several days). In this case, users might not be counted in the metric above as they started the job discovery before the set starting time of the examined period. Additionally, users getting directly to the job carousel using the offer deeplinking feature will be counted here, but not in the metric above.

Conversion to job carousel: Percentage of users finishing the job discovery flow compared those how started it. Note: in some cases, due to use of the deeplinking feature as explained above, this metric might occasionally go above 100%.

Users starting job application: Number of candidates starting the job application process. Note: candidates getting directly to the job application via application deeplinking are counted into this metric.

Conversion to starting job application: Percentage of users starting the job application process compared to the candidates reaching the job carousel. Note: due to occasional time difference between reaching the job carousel and starting the application process, and also because application deeplinking this metric eventually can go above 100%.

Users completing job application: Number of candidates who submitted at least one application.

Conversion to completing job application: Percentage of users who submitted at least one application compared to the amount of users who started the application flow.

Total number of applications: Total number of applications received in the set time period via the chatbot. As candidates might submit multiple applications, this number can be higher than the “Users completing job application” metric.

Job Search to Application Conversion: Percentage of candidates submitting at least one application compared to the amount of candidates starting the job search.

Feedback Summary

Classification of user feedback given, in case the user feedback feature is turned on for your chatbot. The individual feedback given can be found at the bottom of the page in the “Feedback” section.

Top Categories

The chart on the left side shows the top of the category distribution of the questions that were automatically answered by the chatbot in the set time period.

Using the three dots icon in the upper right corner the chart can be downloaded in SVG of PNG format.

Note: Deleted categories won’t appear in the chart. Also, categories that got their names changed will be shown with their current names.

Active Users

Chart of daily active users in the selected time period. Using the three dots icon in the upper right corner the chart can be downloaded in SVG of PNG format.


The individual feedback on the conversation given by candidates. Note: in order to prompt for candidate feedback the feature must be activated on your chatbot.

Monthly tab

This section contains charts of Questions asked / auto responded and Active / new users per month. Both charts can be downloaded in SVG or PNG format using the three dots icon in the upper right corner of the particular chart.

At the bottom of the tab you find the key KPIs per month. See explanations of the metrics above at “Funnel report”


Data privacy consent

You can see an example of data privacy statement here.

Since many countries (including EU countries with the introduction of GDPR) now have certain data privacy consent requirements, we recommend including a notification that the user’s data will be processed during their journey (especially if job application is enabled in the chatbot). 

Data privacy consent in the Cookie notification bar 

This method is applicable only to WebMessenger chatbots, because they are only accessible from the level of your website. For other platforms, we recommend including the data privacy consent in the chatbot itself.

A perfect example of a soft consent is the Cookie notification bar. The user, by accessing the chatbot via the website, agrees to the data privacy statement displayed in your Cookie notification bar. The advantage of this method is that the conversation in the chatbot starts with the welcome message and continues smoothly with the menu options. If you choose to use this option, we recommend adjusting your data privacy statement to include chatbot-specific privacy rules.

Data privacy consent in the chatbot

Due to the nature of text-based chatbots, data privacy statements may look slightly different than described. To learn more about those differences please follow this article

Most chatbots have data privacy statement at the beginning of the conversation (before the welcome message) but in some cases, you can also include the statement at the beginning of the application process:

  1. Data privacy statement at the start of the conversation
    At the beginning of the conversation, the candidate may be required to give their data privacy consent. The button Data Privacy details is linked to the data privacy statement, which is usually hosted on your side and should be provided during the chatbot implementation stage. In case a user writes anything in the chatbot, the data privacy statement will be displayed again. Before the user clicks Accept and Continue, the chatbot will not be accessible to them.

Message and buttons are adjustable during the implementation stage.



  1. Data privacy statement before application.
    We can also set up data privacy consent before your user has a chance to apply for the selected position. In the case that you decide to not include a data privacy statement at the beginning, it is advisable to do so at this stage. As with the data privacy consent at the start of the chatbot, the user can see the data privacy statement and has to agree to move on by clicking the Accept and Continue button. Once they do, they will be able to access the application summary and send their application.