Elido
11 min readIndustries

URL shorteners for recruiters: job-board attribution, referral links, and employer brand tracking

How recruitment and talent acquisition teams use short links + per-channel UTMs to measure which job boards actually convert, run employee referral programmes, and prove employer-brand ROI — with four anti-patterns that kill hiring attribution

Ana Kowalska
Marketing solutions engineering
Recruiter funnel diagram: job boards + referral links + sourcing messages flow into a single attribution surface, with QR codes for career fairs and UTM tags feeding an analytics endpoint

Recruiters post the same role on six job boards, send 200 InMail messages, run an Instagram employer-brand campaign, and hand out a QR code at a career fair — then the ATS shows 47 applications with "source: unknown" against half of them. This post is the link architecture that fixes the attribution layer so the next posting budget conversation is data-driven instead of gut-driven.

For the UTM fundamentals, track UTM campaigns end-to-end is the full setup walkthrough. This post is the TA-specific picture: which channels to instrument, how to run a referral programme on top of a short-link platform, and what GDPR requires from the link service itself.

Recruiting has a structural attribution problem that most marketing teams do not share.

A marketing campaign sends traffic to a single landing page from a handful of channels, and the attribution is relatively tidy. A recruiting campaign sends traffic to the same role page from a dozen channels simultaneously — LinkedIn, Indeed, Wellfound, Welcome to the Jungle, employee referrals, direct outreach, employer-brand campaigns, career fairs — and the majority of those channels strip UTMs or never carry them in the first place.

The result is that most ATSs report 40–60 % of applicants as "source: unknown" or "source: careers page" — which is not useful information. The board sales rep shows up with a click report. The marketing team shows up with an impression report. Neither number tells you how many qualified hires came from that channel.

Short links with per-channel UTMs close that gap. The link fires before the ATS form, so the channel is captured at the click layer regardless of what the ATS's referral-detection does downstream. What to measure in short-link analytics covers the metrics layer in detail; below is how to structure the links.

1. Job-board posting attribution#

You post Senior Backend Engineer — Berlin to LinkedIn Jobs, Indeed, Wellfound, Welcome to the Jungle, and Arbeitnow. Each posting gets its own short link. The destination is identical — the role's careers-page URL — but each link carries a different UTM:

https://careers.acme.com/jobs/senior-backend-berlin
  ?utm_source=linkedin-jobs
  &utm_medium=job-board
  &utm_campaign=senior-backend-q2

Short-link service turns that into go.acme.com/jb/sbe-li (LinkedIn), go.acme.com/jb/sbe-ind (Indeed), go.acme.com/jb/sbe-wf (Wellfound), and so on.

What you get: a per-board click-to-application conversion rate. Not just impressions — clicks from the board → role page → ATS form submit. LinkedIn might drive 420 clicks and 18 applications (4.3 % CVR). Wellfound might drive 80 clicks and 14 applications (17.5 % CVR). The decision to renew a £900/month LinkedIn job-slot becomes a lot cleaner when you have that table in front of you.

The slug prefix convention: use a short prefix that signals the channel family. jb/ for job-board, ref/ for referral, src/ for outbound sourcing, eb/ for employer brand, cf/ for career fair. One analytics filter away from a per-channel breakdown.

2. Employee referral programmes#

Every employee gets a personal short link for each open role. The link carries utm_source=referral&utm_medium=employee&utm_campaign=<role-slug>&utm_content=<employee-id>.

go.acme.com/ref/sbe-emp-4712   → careers.acme.com/jobs/senior-backend-berlin
                                  ?utm_source=referral&utm_medium=employee
                                  &utm_campaign=senior-backend-q2&utm_content=emp-4712

The utm_content field carries the employee identifier. When emp-4712's referral clicks through to the ATS, the form's hidden UTM fields capture the employee ID. When the hire fires, the ATS triggers a webhook that looks up emp-4712 and credits the referral bonus.

Why this is better than the "share this jobs page" button in the ATS: the ATS share button typically strips UTMs and produces a generic careers-page URL. You lose per-employee attribution. With a short-link service, you pre-issue a slug per employee per role, and the attribution is baked into the redirect — it cannot be stripped.

Scale: for a company with 200 employees and 10 open roles, that is 2000 links. Bulk create via the API (POST /v1/links/bulk with a CSV of employee IDs and role slugs), export the QR codes to a PDF, email to employees. Setup time: 20 minutes, mostly waiting for the PDF render.

3. Outbound sourcing messages#

Recruiters sending LinkedIn InMail or cold email at scale share a link to the role page in every message. Most use the same careers-page URL for every message — so when a candidate applies, the recruiter cannot tell which message template or which candidate list drove the response.

The fix: per-template tracked links.

Template A (subject: "Saw your OSS work on GitHub") → go.acme.com/src/sbe-t1
Template B (subject: "Your background caught our eye") → go.acme.com/src/sbe-t2

When responses arrive, you match the applicant's UTM (captured at the ATS form) back to the message template that got the click. Over 200 sends each, template A's CVR is measurable against template B's. The insight compounds: after 6 months of sending, the team has a ranked library of templates by converted-hire-per-send — which is a more honest sourcing-efficiency metric than reply rate.

Volume note: if a recruiter sends 50 messages per day from one short link, that is 50 click events for one slug — well within the traffic tier of any shortener. The value is not in the volume, it is in the per-template granularity.

4. Employer-brand campaigns#

The comms team runs an Instagram campaign: "day in the life" reels, culture videos, employee spotlights. Each piece of content has a CTA linking to the careers page or the EVP (Employee Value Proposition) landing page.

Without tracking, the campaign produces impressions and follower growth. The recruiting team has no idea whether it moved the application needle.

The instrumented version:

Instagram reels (paid) → go.acme.com/eb/ig-reels-may → careers.acme.com
                          ?utm_source=instagram&utm_medium=paid-social
                          &utm_campaign=employer-brand-may&utm_content=reels

LinkedIn organic posts  → go.acme.com/eb/li-org-may → careers.acme.com
                          ?utm_source=linkedin&utm_medium=organic-social
                          &utm_campaign=employer-brand-may&utm_content=org

TikTok (bio link)       → go.acme.com/eb/tt-bio-may → careers.acme.com
                          ?utm_source=tiktok&utm_medium=social
                          &utm_campaign=employer-brand-may&utm_content=bio

Now when applications spike during the campaign window, the comms team can attribute the uplift to a specific content type and platform. Budget for next season moves from "we think Instagram is working" to "Instagram reels drove 38 applications at £24 each; LinkedIn organic drove 11 at £0."

For the analytics layer that surfaces this, what to measure in short-link analytics covers the dashboard setup.

5. Conference and career-fair lead capture#

Career fairs are expensive. A mid-sized booth at a tech career fair can run £3,000–£8,000 once you factor in stand design, travel, hotel, and staff time. Yet most companies cannot tell you how many hires came from that fair, because the only data they have is "badge scans at the booth" — a proxy metric, not a hire metric.

The instrumented version uses a QR code on the booth signage (and, optionally, on lanyards or printed cards) that routes to a talent-pool signup form:

QR on booth signage → go.acme.com/cf/techcrunch-disrupt-2026
                     → careers.acme.com/talent-pool
                       ?utm_source=career-fair&utm_medium=offline
                       &utm_campaign=techcrunch-disrupt-2026&utm_content=booth-signage

Use a dynamic QR (the QR encodes the short link, not the destination URL directly) so that if the talent-pool page URL changes after the brochures are printed, you can update the destination without reprinting. The dynamic vs static QR codes post covers that decision in detail; QR code campaign from scratch is the setup walkthrough.

When a candidate from Disrupt 2026 is hired 3 months later, the ATS record carries utm_campaign=techcrunch-disrupt-2026. The cost-per-hire for that fair is now calculable. You either go back next year with a bigger budget or you reallocate to the fairs with the better CPH.

GDPR and candidate data#

Clicked-on-a-job-ad data is personal data the moment the candidate can be re-identified — which happens as soon as they submit the ATS form. That creates an obligation for the link service.

What you need from the link service:

  1. No raw IP retention beyond necessity. The redirect service should process IP for geo analytics and discard the raw address after aggregation — not store a row of {ip, timestamp, slug} for six months. Under GDPR Article 5(1)(e), retention must be limited to the purpose.

  2. EU data residency. If your candidates are in the EU, click data is personal data under processing — it needs to live in an EU-region data store. A US-hosted shortener with no EU residency option creates a data-transfer problem under GDPR Chapter V.

  3. Lawful basis documentation. For sourcing contacts (candidates you reached out to, not inbound applicants), the lawful basis is typically legitimate interest — the recruiter has a genuine interest in assessing the candidate's suitability and the candidate can reasonably expect to receive such communications. For employer-brand re-targeting, you need consent. Document the basis per channel, not per campaign.

  4. No pixel injection. Some free shorteners inject third-party tracking pixels on the redirect. A recruiter's short link to a careers page should not trigger a Facebook or Google pixel on a candidate mid-redirect — that creates a consent problem the recruiter did not sign up for.

For the full GDPR framework for link services, GDPR for URL shorteners is the definitive walkthrough.

The four anti-patterns that ruin hiring attribution#

1. One shared "careers page" link with no per-board UTMs. The job board's sales rep will arrive at renewal with a click report. The report will show 4,200 clicks in 90 days. You will have no idea how many of those converted to applications, let alone hires, because you cannot match the board's click traffic to your ATS records. You will renew based on the rep's number. Per-board short links cost you 15 minutes of setup and make that renewal conversation honest.

2. Per-recruiter individual Bitly accounts. Agency recruiter A uses their personal Bitly. Recruiter B uses Rebrandly. Recruiter C uses the default LinkedIn tracking. The talent-acquisition manager cannot see a unified view of which sourcing channels are working because the click data lives in three separate free-tier accounts, none of which the company owns. When recruiter A leaves, the account goes with them — along with the data. Consolidate on one company-owned shortener account with RBAC so individuals can create links but the company retains the data.

3. Static QR codes on career-fair signage from last year. That standing banner in the conference room closet with the QR code linking to careers.acme.com/jobs/junior-frontend — that role was filled in October. The URL might 404, or it might land on a closed role page, or the careers site was restructured and the path is gone. A static QR is permanent; you cannot update the destination. Worse, someone brought the banner to a fair last month and 40 people scanned it and saw a 404. Audit your printed materials once per quarter. Switch to dynamic QR codes for anything you print in bulk.

4. Linking to the homepage instead of the specific role page. The indeed.com "apply link" points to acme.com. A candidate clicks through from the board expecting to see the Senior Backend Engineer role. Instead they land on the homepage and have to navigate to the careers section, find the role, and re-initiate the application. Drop-off at this step is typically 60–80 %. Deep-link to the specific ATS job posting, not the homepage or even the careers landing page. Every extra navigation step the candidate has to perform reduces application rate and skews your channel CVR data because candidates who push through the friction are not representative of the full pool.

This scales from a 5-person in-house team to a 50-recruiter RPO operation.

One short domain: go.acme.com or talent.acme.com. Issued via custom domain on your shortener. One analytics surface.

Slug prefix conventions:

PrefixChannelExample
jb/Job boardsgo.acme.com/jb/sbe-li
ref/Employee referralsgo.acme.com/ref/sbe-emp-4712
src/Outbound sourcinggo.acme.com/src/sbe-t1
eb/Employer brandgo.acme.com/eb/ig-reels-may
cf/Career fairsgo.acme.com/cf/disrupt-2026

Attribution pipeline:

  1. Candidate clicks a short link → short-link service fires a click event with UTM parameters.
  2. Destination URL carries UTMs → candidate lands on role page.
  3. ATS job application form has hidden fields that capture UTMs from the URL on page load.
  4. Candidate submits application → ATS stores {applicant_id, utm_source, utm_medium, utm_campaign, utm_content}.
  5. At hire: ATS webhook fires to HR system → HR system looks up UTM fields → credits referral / logs cost-per-hire by channel.

The short-link click event and the ATS application record join on the utm_content field (which carries the employee ID for referrals, or the template ID for sourcing). That join is what makes per-channel CPH calculable.

Where Elido sits#

We did not build Elido specifically for recruiting — but the architecture above works directly on the platform. A few capabilities that TA teams use regularly:

  • Bulk link creation via APIPOST /v1/links/bulk accepts a JSON array of {slug, destination, utm_*} objects. Issue 200 employee-referral links in one call. The response includes QR-code SVG data ready for PDF assembly.
  • Custom domain with on-demand TLSgo.acme.com or talent.acme.com pointed at Elido's edge via CNAME. Certificate issued in under 30 seconds; no DevOps ticket required.
  • EU data residency by default — click events store in EU-region ClickHouse. No additional configuration to satisfy GDPR Article 46 adequacy for EU candidate data.
  • RBAC per workspace — each recruiter has their own login; link creation and analytics are scoped per user. The TA manager sees the full workspace; individual recruiters see only their own links unless promoted.
  • Webhook on click — optional: fire an HTTP webhook on every click from a ref/ link. Wire this to your HRIS to provide real-time referral activity notifications, or to your ATS to pre-warm a candidate profile before the application form is submitted.

For a setup walkthrough specific to recruiting use cases, url-shorteners-for-marketers covers the cross-channel attribution model that TA teams share with marketing, and url-shorteners-for-saas is the sibling post for product and growth teams.

Try Elido

EU-hosted URL shortener with custom domains, deep analytics, and an open API. Free tier — no credit card.

Tags
recruiter link tracking
job posting attribution
candidate referral
applicant source
employer brand links

Continue reading