File size: 5,278 Bytes
504df0f
 
3c4bd31
504df0f
 
 
 
 
3c4bd31
 
504df0f
 
 
 
 
 
 
 
 
 
3c4bd31
504df0f
 
d8acd61
504df0f
 
2ae57cb
2445440
504df0f
 
 
2ae57cb
504df0f
d8acd61
 
27994de
2ae57cb
504df0f
 
27994de
 
 
ce04e48
 
27994de
 
 
 
 
 
 
 
 
 
 
 
 
 
ce04e48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2ae57cb
 
504df0f
 
d8acd61
2ae57cb
 
 
504df0f
 
 
 
2ae57cb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{% extends "base.html" %}

{% block title %}Apply for {{ job.role }} - Codingo{% endblock %}

{% block hero %}
<section class="hero" style="padding: 3rem 1rem;">
    <div class="container">
        <div class="hero-content">
            <h1>Apply for {{ job.role }}</h1>
            <p>{{ job.company }}{% if job.seniority %} • {{ job.seniority }}{% endif %}</p>
        </div>
    </div>
</section>
{% endblock %}

{% block content %}
<section class="content-section">
    <ul class="breadcrumbs">
        <li><a href="{{ url_for('index') }}">Home</a></li>
        <li><a href="{{ url_for('jobs') }}">Jobs</a></li>
        <li><a href="{{ url_for('job_detail', job_id=job.id) }}">{{ job.role }}</a></li>
        <li>Apply</li>
    </ul>

    <div class="card">
        <div class="card-header">
            <h2>Submit Your Application</h2>
            <p>Please upload your resume (PDF, DOCX). Your file will be saved securely for recruiters to review.</p>
        </div>

        <div class="card-body">
            <!-- Application Form -->
            <form method="POST" enctype="multipart/form-data">
                <div class="form-group">
                    <label for="resume">Upload Resume</label>
                    <!-- Resume upload remains mandatory. The file will be stored for recruiter review but is no longer parsed automatically. -->
                    <input type="file" name="resume" id="resume" class="form-control" required accept=".pdf,.doc,.docx">
                </div>

                <!--
                    Collect the candidate's skills, experience and education manually.
                    These fields allow applicants to highlight their background even when resume
                    parsing is disabled. Entries can be separated by commas, semicolons or newlines;
                    the backend will normalise them into lists.
                -->
                <div class="form-group">
                    <label for="skills">Skills</label>
                    <textarea name="skills" id="skills" class="form-control" rows="3" placeholder="e.g. Python, Data Analysis, Project Management" required></textarea>
                </div>
                <div class="form-group">
                    <label for="experience">Experience</label>
                    <textarea name="experience" id="experience" class="form-control" rows="3" placeholder="e.g. 3 years at TechCorp as a Backend Developer" required></textarea>
                </div>
                <div class="form-group">
                    <label for="education">Education</label>
                    <textarea name="education" id="education" class="form-control" rows="3" placeholder="e.g. B.Sc. in Computer Science, M.Sc. in Data Science" required></textarea>
                </div>

                <!-- Interview guidelines displayed directly above the submit button.  These
                     instructions help applicants prepare for the AI interview.  They are
                     intentionally placed within the form so that they appear close to
                     the submit action, ensuring visibility without disrupting the flow
                     of the application fields. -->
                <div class="interview-guidelines" style="background-color: #f8f9fa; border-left: 4px solid var(--primary); padding: 1rem; margin-top: 1.5rem; border-radius: 6px;">
                    <h3 style="margin-top: 0; color: var(--primary); margin-bottom: 0.75rem;">Important Interview Guidelines</h3>
                    <ul style="margin-left: 1rem; padding-left: 1rem; list-style-type: disc; line-height: 1.5;">
                        <li>The interview can be taken only once, so please be prepared.</li>
                        <li>Make sure you are in a quiet environment with a stable internet connection.</li>
                        <li>This is not a final job interview, but it helps the company shortlist the most relevant candidates.</li>
                        <li>The interview is customized based on your CV and the job requirements.</li>
                        <li>It takes 10 to 15 minutes and includes both general and skill-based questions.</li>
                    </ul>
                </div>

                <div class="application-actions" style="margin-top: 2rem;">
                    <button type="submit" class="btn btn-primary">Submit Application</button>
                </div>
            </form>

            <div style="margin-top: 1.5rem; text-align: center;">
                <a href="{{ url_for('job_detail', job_id=job.id) }}" class="btn btn-outline">Back to Job Details</a>
            </div>
        </div>
    </div>
</section>

<style>
.form-group label {
    font-weight: 600;
    color: var(--primary);
    margin-bottom: 0.5rem;
    display: block;
}

.form-control {
    width: 100%;
    padding: 0.75rem;
    font-size: 1rem;
    border-radius: 6px;
    border: 1px solid #ccc;
}

.application-actions {
    text-align: center;
}

.btn-primary {
    background: linear-gradient(135deg, var(--primary), var(--secondary));
    color: white;
    padding: 0.75rem 1.5rem;
    font-weight: 500;
    border: none;
    border-radius: 6px;
    cursor: pointer;
}

.btn-primary:hover {
    opacity: 0.9;
}
</style>
{% endblock %}