Case Study: Improving Candidate Enquiries and Lead Quality

Overview: Bridging the Gap Between Candidate Browsing and Enquiry
A recruitment agency wanted to improve how prospective clients moved from browsing featured candidates to submitting an enquiry. The website already presented high-quality candidate profiles, (dynamically synchronised from the clients CRM platform, in this instance Zoho), including role type, salary expectations, location preferences and concise candidate summaries. However, there was a disconnect at the point of conversion: the enquiry form had no awareness of which candidate had triggered the user’s interest!
This meant that although traffic and engagement were strong, the quality of enquiries was inconsistent. Users were often required to manually reference a candidate, which introduced friction and, in many cases, ambiguity. The objective was to streamline this process by capturing candidate-specific intent automatically, without adding complexity to the user experience.
The Problem: Generic Contact Forms Reduce Lead Quality
The enquiry form functioned as a standard contact mechanism, but lacked contextual awareness. When users clicked through from a candidate listing, they arrived at a form that did not retain any information about the candidate they had just viewed.
In practice, this resulted in vague submissions such as “I’m interested in a candidate on your website,” requiring follow-up clarification from the recruitment team. While the candidate reference number was visible on each profile, expecting users to copy and paste or remember it introduced unnecessary friction at a critical conversion point.
From a marketing perspective, this represented a missed opportunity. The website was successfully generating interest, but not fully capturing user intent at the moment it mattered most.
The Approach: Passing Candidate Data via URL Parameters
Rather than redesigning the form or introducing additional user steps, the solution focused on a lightweight but effective technique: passing candidate data through the URL using query parameters.
Each candidate card already included a call-to-action link directing users to the enquiry form. Because the candidate reference number was already available as part of the displayed profile data, the link could be generated uniquely for each card rather than being the same static URL every time.
In practice, this meant taking the reference number associated with the candidate being viewed and appending it to the enquiry link as a URL query parameter.
For example, a generic link such as:
/clients/#_form
became:
/clients/?candidate_ref=BV12345#_form
The visible call to action remained unchanged, but the link now carried candidate-specific context into the enquiry journey.
Integrating URL Parameters with Contact Form 7
The enquiry form, built using Contact Form 7, was configured to read values directly from the URL. A new field was added to the form:
[hidden candidate_ref default:get] This allowed the form to automatically populate the candidate reference field when the page loaded, using the value from the query string. The field was then included in the email notification sent to the recruitment team, ensuring that every enquiry contained structured, actionable information.
This setup worked immediately when users navigated from one page to another, such as clicking a candidate on the homepage and landing on a separate contact page. Because the destination page loaded fresh, the form could read and apply the URL parameter without issue.
The Challenge: Handling Same-Page Form Navigation
A somewhat more complex scenario emerged when candidate listings and the enquiry form existed on the same page. In this case, clicking the enquiry link updated the URL and triggered a smooth scroll to the form, but did not reload the page.
As a result, the form did not detect the updated URL parameter. The candidate reference was present in the address bar, but the field remained empty until the page was manually refreshed.
This behaviour was caused by the interaction between the website theme’s “smooth scrolling” functionality and Contact Form 7’s initialisation process. Because the form was not re-rendered, it did not re-read the query string. Whoops.
The Solution: JavaScript-Based Dynamic Form Population
To resolve this without compromising the user experience, a small JavaScript enhancement was introduced. The script reads the candidate_ref parameter from the URL and injects it directly into the form field.
The important thing to note here, is that the script runs not just on page load, but also when the page’s anchor changes or when the user interacts with the page. This ensures that the candidate reference is populated even when the form is accessed via smooth scrolling rather than a full page reload.
From the user’s perspective, the process is seamless. They click “Enquire,” are taken to the form and they will then see the relevant candidate reference already filled in. No page refresh required and no manual input needed!
Refinement: Preventing Premature Validation Errors
One additional refinement was required to maintain a polished user experience. Initially, programmatically setting the field value triggered Contact Form 7’s validation styling, causing “required field” warnings to appear before the user had interacted with the form.
This was resolved by adjusting how the field was populated, ensuring that the value could be inserted without triggering validation events. The result was a clean, neutral form state that only displayed validation feedback when appropriate.
Results: Improved Conversion Experience and Lead Quality
Although technically fairly simple, the impact of this enhancement has been significant.
Users can now move from browsing to enquiry without interruption. The process feels more intuitive, as the website effectively “remembers” their interest and carries it forward automatically.
For the recruitment team, every client enquiry now includes a clear candidate reference. This eliminates ambiguity, reduces the need for follow-up clarification and also enables faster, more accurate responses.
From a marketing standpoint, this represents a meaningful improvement in lead quality. The form captures not just contact details, but also contextual intent, which is often lost in traditional enquiry flows.
Why This Matters: Small UX Improvements Drive Better Conversions
This mini project demonstrates how relatively small technical changes can deliver measurable improvements in conversion performance. Rather than introducing additional steps or complexity, the solution works quietly in the background, reducing friction and capturing valuable data.
By aligning the browsing experience with the enquiry process, the website becomes more effective as a lead generation tool. It supports the user by simplifying their journey and the recruitment business by improving the quality of incoming enquiries.
Future Opportunities: Expanding Context-Aware Enquiries
The same approach can be extended further. Additional data points such as candidate role, location, or source page could be passed through the URL and captured within the form. This opens up opportunities for richer lead segmentation and improved CRM integration.
The technique is also platform-agnostic. While this implementation used Contact Form 7, the same principle can be applied to other form builders, including Ninja Forms, making it a flexible and future-proof solution.
Conclusion: A Simple Enhancement with Strategic Impact
By using URL parameters and lightweight front-end logic, the project transformed a generic contact form into a context-aware conversion tool. It maintains a clean user experience while significantly improving the usefulness of each enquiry.
For marketing teams, this is a strong example of how thoughtful technical execution can directly support lead generation goals. It shows that improving conversions does not always require large-scale redesigns. Sometimes, the most effective solutions are the ones that remove friction quietly and intelligently.









