How to create job listing page and view job application status in Drupal

Every corporate websites need a careers page where candidates can browse jobs and apply for relevant jobs and also registered users can tracj their job application status.

Here we are going to discuss how to create a page which list jobs and apply jobs with cv/resume and how to view job application status in candidate profile page.

So here we will be creating two content types, jobs and job applications and a custom module for resume submission.

We will be achieving all these with below steps.

  1. Create job offers content type for creating jobs

  2. create a view for displaying jobs with apply link.

  3. Create a content type for Job applications.

  4. Custom form for applying job with resume for anonymous users.

  5. Custom form for applying job with resume for registered users.

  6. Job applications list in user profile page with status of the application.


Here we are discussing each steps in detail. You can download sample modules module here which has two forms for submitting job application with CV/resume document.

Step 1: create Job offers content type for creating jobs

Create content type, say jobs.

So we are providing here below fields

Title – This would be the Job title.

Body – For job description

You can add additional fields like expiry date some thing like that. Here We are providing only basic fields.

Step 2: create a view for displaying jobs with apply link

Create a basic view with job title as field.

In content ID field ,re write the result as below in order to accommodate Apply button.


So we have provided below anchor tags

<a class=”use-ajax” href=”/ajax/job/apply/{{ nid }}”> Apply</a><br>

<a href=”/registered/job/apply/{{ nid }}”> Login and Apply</a>

View results will be as below.


You can apply your own customization by overriding view templates. See below articles to see how you can override view and node templates.

How to override view templates

How to override node templates

Here we are using class=”use-ajax” in order to popup ajax form where candidates can submit resume. In Step 4 we will be creating custom for capture this apply action.

Step 3: create a content type for Job applications

In this step create a job applications content type.

Here Resume is a file upload field and Application status is a drop down list.

Th predefined values , you can add key and values are like Rejected, In progress, On hold like that.

We have added below values.

IN next steps we will see  programmatically inserting content to this content while user submits CV.

Here admin user can verify each resume and change status accordingly.

Step 4: Custom form for for applying job with resume for anonymous users

Here we are going to create two custom form for below routs.

/ajax/job/apply/{{ nid }}

/registered/job/apply/{{ nid }}

While click on apply button we will be loading below pop up form.


We have a custom module dn_careers.

We have below folder structure in module.

You can see complete source code here.

First we are below routes in dn_careers.routing.yml

In Job controller provided below applyJobAjax function.

applyJobAjax function loads popup form . complete source code of JobController.php provided below.


Create a job submission form in below path for anonymous users.


See the below source of this file.

Here validations and other details you can include. Only first name , last name and resume fields are provided.

You can see using below code snippet, we are loading job details. You can populate all fields of the job in submission page.

Also below code will dynamically create Job application node with uploaded resume/CV. After saving page provides a success message as ajax call response.

Similar way you can create a form for registered users as below.


Also we have to create one event subscriber in order check whether user is logged or not.

for this, create a services.yml file  \YOUR_PROJECT\modules\custom\dn_careers\

Also create subscriber classs in path \YOUR_PROJ\modules\custom\dn_careers\src\EventSubscriber\RedirectAnonymousSubscriber.php

Download complete sample code of two form here.

Sep 6: Job applications list in user profile page with status of the application.

Here we will be displaying all jobs applied by users in their dashboard menu tab.

You can refer below article for placing a new tab in your user account menu.

Add Custom Tab to User Profile Page with Views in Drupal

Here we are going to create a job application listing tab in user profile page.

Here we are going to create a view My Applications

View Name – My Applications

select Display as Page

you can add required fields need to be shown in user profile page. Here I just selected application status and Job application title.

Make sure path of page is of below format.


As a next step add Authored by context filter.

In context filter select below options.

Further down in same settings page select below options

Check “Specify validation criteria”.
Select “User ID” from Validator.
Check “Validate user has access to the User”.
Under “Access operation to check” select Edit.

For showing this view in user profile tab, click on no menu link under page settings.

select type as menu tab and provide title. Select parent as User account menu. see below screen.


Click Apply.

Now if you go to your user profile page -> /user

you can see Job applications tab with other tabs.

So you can see job title and status here.


Download sample moduel here.


Get Free E-book
Get a free Ebook on Drupal 8 -theme tutorial
I agree to have my personal information transfered to MailChimp ( more information )
if you like this article Buy me a Coffee this will be an ispiration for me to write articles like this.

You may also like...