def application():
    from forms import ApplicantForm
    from models import ApplicantModel
    form = ApplicantForm()
    if form.validate_on_submit():
        applicant = db.session.query(ApplicantModel).filter_by(email=form.email.data).first()
        if not applicant:
            applicant = ApplicantModel()
            db.session.add(applicant)
        else:
            unschedule_email(applicant)

        form.populate_obj(applicant)
        create_test(applicant)
        schedule_email(applicant)
        update_trello(applicant)
        send_message_slack(applicant)
        db.session.commit()

        return render_template('success.html')

    return render_template('application.html', form=form)