cross-solution / YAWIK

YAWIK is a web application. It can be used as an ATS applicant tracking system or as a jobboard.
https://yawik.org
MIT License
125 stars 67 forks source link

One-Click-Apply Feature #203

Closed cbleek closed 8 years ago

cbleek commented 8 years ago

It should be possible for a user to apply with one klick to a job posting. The following things have to be modified get this feature.

Our ATS Mode Fieldset enables the user to define, how an application button is integrated into his job posting. A javascript shows/hides elements depending, which mode is selected (The javascript https://github.com/cross-solution/YAWIK/blob/develop/module/Jobs/public/js/form.ats-mode.js currently does not work. It should be fixed.)

auswahl_926

When selecting the mode="intern", an additional checkbox labled "One-Click-Apply" should appear. By enabling the the One-Click-Apply feature the user should select the social networks (linkedin, xing, facebook)

let me point you to the code.

ATS Mode Fieldset propably need 2 more attributes. Maybe (bool) "oneClickApply" and (array) "oneClickApplyProfiles"

https://github.com/cross-solution/YAWIK/blob/develop/module/Jobs/src/Jobs/Form/AtsModeFieldset.php

Depending on those attributes, the Apply Button has to be modified in

https://github.com/cross-solution/YAWIK/blob/develop/module/Jobs/src/Jobs/View/Helper/ApplyUrl.php

The additional Attributes have to be defined in the Entity.

https://github.com/cross-solution/YAWIK/blob/develop/module/Jobs/src/Jobs/Entity/AtsMode.php

After these changes, it should be possible to create a Job posting containing a One-Click-Apply Button.

We probably need an additional Contoller which gets the profile from the social network and attaches it to the application. In addition, the contact data have to be mapped to the Applications/Contact Entity.

TiSiE commented 8 years ago

Clarification: What @cbleek wrote about the apply uri is not right.

The OneClick apply setting must affect the rendering of the apply button in the job template view.

There are three templates available at the moment, which are located in /module/Jobs/public/templates

The apply button currently is rendered completely in the view (e.g.: default/index.phtml#L82-L83).

The ApplyUri is assembled in /module/Jobs/src/Jobs/Filter/ViewModelTemplateFilterAbstract.php#L146

There will be more than one apply uri if the feature is implemented, so we need to handle this.

To keep the job templates simple, it might be useful to create a view helper "ApplyButton" (or maybe use a better/other name) that will take care of the rendering. To let users keep the full control over the design, this view helper must also be able to get a view partial name passed, which it then uses to render the buttons.

You will have to figure out, how the apply uris will get to the job template (and the button partial).


Some files you might want to look at: /module/Jobs/src/Jobs/Filter/ViewModelTemplateFilterJob.php /module/Jobs/src/Jobs/Controller/TemplateController.php#L52 /module/Jobs/view/iframe/iFrameInjection.phtml

fedys commented 8 years ago

@TiSiE thank you for clarification and hints

cbleek commented 8 years ago

The apply one-click-apply buttons have to be integrated directly into to job posting. Example:

auswahl_930

Currently a user can integrate an apply button into a template by:

<?php if ($this->uriApply): ?>
    <div class="apply">
        <a target="_new" class="button button-primary" href="<?php echo $this->uriApply ?>" rel="nofollow">
         <strong><?php echo $this->translate("Apply now")?></strong>
        </a>
    </div>
<?php endif; ?>

This way, the user has the full controll about the layout of the Apply Button. The Idea is, that a user can integrate the apply button using a view helper.

<?php echo $this->renderButton($this->applyButton) ?>

This view helper takes all the logic (is oneClick apply is enabled, which buttons have to be displayed). The view helper should take an optional options array. So if a user needs to modify the layout of the buttons, he should be able to do it like this

<?php 
  echo $this->renderButton(
    $this->applyButton,
      [
        'partial'=>'myviewpartial.phtml',
        'one-click-apply-only'=>'true',
        'label' = 'apply now',
        'one-click-apply-label'=>'apply with',
        'send-application-immediently' => false
      ]
  ) 
?>

By clicking on those Buttons, an application should be send immediently. Means, we need an additional action in the ApplyController. Let's name it 'oneClickApply'. This action pulls the users profile from the social network and attaches it to the application

@TiSiE can you go into detail here?

The optional parameters of the view helper:

Better option keys are welcome:-)

cbleek commented 8 years ago

Feature successfully completed.