Using Hexagonal Plotting and Dynamic Inventories to increase revenue by 84% - A DirectlyApply & WeDiscover Case Study

Byron Tassoni-Resch, the Article Author - WeDiscover - Paid Search Marketing Agency London
Byron Tassoni-Resch
18 October 2022 - 10 min read
Facebook Icon - WeDiscover - Paid Search Marketing Agency London
Twitter Icon - WeDiscover - Paid Search Marketing Agency London
LinkedIn Icon - WeDiscover - Paid Search Marketing Agency London
Email Icon - WeDiscover - Paid Search Marketing Agency London

Imagine your site's inventory is constantly changing, one day you have availability, the next you don’t, the day after that you have 10 available, the next 4. 

Now, let’s add some more complexity

Not only is your inventory volume changing constantly, the geographical location of your inventory is evermoving and you need to be precise with your marketing targeting or you won’t receive any revenue.

Welcome to the world of DirectlyApply, a London-based technology company focused on job discovery across the US.

They operate a 2-way marketplace which enables job seekers to match with thousands of local jobs advertised by hundreds of employers.

At a first glance, DirectlyApply’s revenue model is simple; they earn a fee with each successful job application that originates from their platform. There are dozens of parameters that define a successful application, but one of the most crucial is the seekers location in relation to the job. 

In most cases, DirectlyApply will not generate a commission if the user is located further than a set distance from the position they applied for.

Job inventory and locations are constantly updating (often, multiple times a day), and so is the fee the employers pay. Not adapting quickly within this constantly shifting landscape from a supply point of view results in wasted spend in areas that will bring no revenue

WeDiscover & DirectlyApply partnered in mid-2022 with the aim of tackling these challenges, focusing from the offset on developing a technology-led Paid Search strategy to act as a backbone for growth.

Designing a suitable Account Structure

The scale of DirectlyApply is vast -  across the entirety of the US working daily with tens of thousands of employers, thousands of job seekers and millions of ever-changing jobs. 

When you combine the hyper-local nature of the business and its perpetual dynamism with the strict need for extremely accurate geo-targeting… Well, some interesting challenges emerge for managing Paid Search campaigns.

Our first port of call was creating a scalable and tailored structure. It had to be future-proof for automation and testing, but also tailored and consistent to guarantee relevance. 

We devised three core elements that we thought were fundamental to designing the account structure: location, job type and employer. 

Each of those 3 elements were important to control for the following reasons:

  1. Location targeting, if an application came in for a job posting from a user who was in a non-targeted location, it would be a non-revenue event. 

  2. Job Type, for keyword structures as well as commercial reasons. I.e. different job types received different revenue figures and commissions. 

  3. Each employer had different job volume requirements, so a different feed needed to be created for each in order to activate or deactivate activity.

The end result was an account structure which gave us control over budgets for each employer, and efficiency targets, but also allowed for accurate geo-targeting at the campaign level. 

However, creating a system for how we a) defined our geo-targeting and b) inserted this into Google Ads was going to be the next challenge…

Creating a solution for geo-location targeting

Once we had the account structure in place we then had 2 subsequent projects we needed to implement, creating our geo-targeting methodology and inventory management (i.e. location automation). 

The largest and most complex project was going to be geo-targeting methodology...

Here were some other considerations when thinking about how to tackle this challenge:

  • ➡️ Hyper-local nature of the business: would you apply for physical jobs (i.e. ones where you have to be there) far away from where you live? Probably not. In order to do this on site, the DirectlyApply team worked on an automated system that only shows relevant jobs around the user location, whilst dynamically tailoring the landing page content based on the parameters being passed through paid search campaigns. This means that the landing page user experience would be in a good position as we added more traffic. 

  • ➡️ Dynamic market landscape: job openings are constantly changing based on the employer’s needs. The volume of vacancies in a certain area is completely dynamic and it can vary on hours, days, weeks… depending on the job and the employer.

  • ➡️ Rapid expansion: every solution we created needed to be applicable to the current employer partnerships, but also to any new ones coming in the future. We had to create a global system that could bring consistency across all campaigns but also provide enough flexibility to each partnership's needs. 

Iterating through various geo-targeting solutions

With so many factors in play, it was difficult to predict what was going to be the best solution. We decided as a team that the best way forward would be to start simple, create hypotheses to test, test those, adapt

The first step was developing a tool that exported job locations in a longitude and latitude format. This was a first step to gather data with.

Immediately, the first limitation was noticed

The volume of locations exported - many employers exceeded the 500 proximity target limit as set by Google per campaign. 

This brought up a lot of questions on how locations had to be grouped (more on that later). 

But, once we had the first exports we got started with our tests and iterations:

Iteration 1 

  • ➡️ First iteration - Moving from Google Ads defined locations (i.e. zip codes and cities) to proximity targeting (longitude and latitude coordinates). 

  • ➡️ Simplistic and quickest approach - i.e. export of coordinates from location feed.

  • ➡️ Relatively small radii - no differences between different locations.

  • ➡️ Lots of overlapping radii

  • ➡️ Poor total coverage of total jobs as result

  • ➡️ No prioritisation for most profitable campaigns

Iteration 1 gave us a starting point, the easiest, simplest first move. From here we could have a benchmark and test other ideas against. 

One of the very first issues we noticed was that with so many radii overlapping we were wasting precious space on our campaign location targets (as mentioned previously, we are limited to 500 per campaign). We didn’t want to create an overly complex account structure, so with the first test we wanted to see if we could group locations together and see how that performed against iteration 1.

Iteration 2 

  • ➡️ Developed from Iteration 1

  • ➡️ Wanted to test a geo-location method where we could overcome the 500 proximity target limit (and try to avoid creating an overly complex campaign structure). 

  • ➡️ Developed a grid system over the US that created blocks and we would then group each target location within that block to create the smallest circle which would incorporate all radii.

  • ➡️ Radii are now larger, embarking on bigger areas and thus more jobs.

  • ➡️ Limited radii overlap.

  • ➡️ However, larger radii might open us up to inefficiencies as we target areas that might not have any roles.

  • ➡️ Still no prioritisation for most profitable campaigns.

In order to group locations, a system was developed to create a grid system over the US using ‘blocks’, then create the smallest circle in that block that covered all the radii within it. Below is a screenshot of how that looked.

Within Google ads that transformed into the targeting shown below:

Test 1 Results (Iteration 1 vs Iteration 2) 

We ran an experiment where we tested Iteration 1 vs. 2. We wanted to understand if smaller more precise radii could bring more revenue & ROAS than larger radii. 

Iteration 2 did a better job on ensuring we had more ‘job coverage’, but there were still obvious issues with it. The issues included being too broad and potentially acquiring irrelevant traffic.

We ran the test over the course of 40 days and once we reached statistical significance we had our answer. On every metric that matters, CPI, ROAS, CTR, CVR, and Revenue Iteration 1 won

It was good to sense check and confirm our initial hypothesis around how accurate our targeting should be, we were now ready to move on.

Iteration 2 was a deadend, moving onto Iteration 3….

Iteration 3 

  • ➡️ We wanted to limit radii overlapping & use predictive value weighting for locations (to ensure we had the best job coverage in the location targets).

  • ➡️ Experimented with using Hexagonal Plotting (originally made famous by how Uber mapped the world) to overcome grouping and potential value weighting.

  • ➡️ These gave us some substantial benefits which included no overlapping, and almost 100% job coverage.

  • ➡️ Prioritises grouping locations based on a blended calculation between historical ROAS performance and job volume instead of purely looking at job volume.

Using Hexagonal Plotting to group locations across the US: 

The output in Google Ads:

Test 2 Results (Iteration 1 vs Iteration 3) 

Our second test focused on eliminating some location overlap problems with the previous versions & we wanted a way to weight locations that we knew had good historical performance.

Iteration 3 used Hexagonal Plotting in order to approach location grouping in a different way - profitability vs. volume of jobs

While Iteration 1 and Iteration 2 would ensure that areas with the most openings were covered, Iteration 3 would look at a blended number between the volume of jobs and forecasted profitability per location.

We ran the test for just over a month, and once we reached statistical significance we found Iteration 3 (Hexagonal Plotting) Drove higher CPI, CVR, ROAS, and revenue vs. Iteration 1. 

At this stage we were happy with geo-location targeting methodology and decided to move on to building the automation systems and monitoring systems.

Geo-location automation

Once we were happy with the geo-location targeting methodology we wanted to build a system to ensure that the location targets were refreshed as often as they needed to be in Google Ads. 

While we were running the tests these updates were still being done manually (via bulk uploads), but this turned into quite a large time sink. Moving onto building an automated tool was the next best step.

DirectlyApply ingests information from suppliers (employers), then cleans and normalise the data, creates an export in the appropriate format then the Google Ads Tool takes the data and does 3 things: 

  1. Checks for new locations that we should be targeting but are not currently. 

  2. Checks for locations that we are already targeting. 

  3. Checks for locations that we should not be targeting but currently are. 

Then makes the appropriate changes in Google Ads (here is the Geo-Location Automation Schematic):


DirectlyApply & WeDiscover worked extremely closely across all aspects of this project. Using each other's technology resources interchangeably. It’s been a brilliant example of what is possible when complex Performance Marketing challenges are tackled on an iterative solution process.

Since the implementation of the initial geo-location solution we’ve seen the following results: 

  • ➡️ Revenue +84.92%

  • ➡️ ROAS +28.69%

We look forward to many more innovative solutions with the DirectlyApply team. If you have any questions regarding this Case Study, please Contact Us.

Case Study
Facebook Icon - WeDiscover - Paid Search Marketing Agency London
Twitter Icon - WeDiscover - Paid Search Marketing Agency London
LinkedIn Icon - WeDiscover - Paid Search Marketing Agency London
Email Icon - WeDiscover - Paid Search Marketing Agency London

Enjoying reading?

Sign up to our newsletter and be the first to know when we release new articles.