The Experience Cloud portal I wish recruitment systems actually had

When people talk about recruitment platforms, they usually focus on the ATS.

Jobs. Candidates. Pipelines. Reports.

But after rebuilding our entire stack directly on Salesforce, I’ve come to a different conclusion:

The portal is the product.

Everything else is plumbing.

Candidates, locums, and clients don’t experience your ATS.
They experience whatever you put in front of them.

And in most recruitment systems, that experience is… not great.

Portals are usually an afterthought

Most ATS vendors treat portals as a bolt-on:

  • expose a few internal objects

  • apply some permissions

  • add a logo

  • call it “self-service”

Technically, it works.

In practice, it fails quietly:

  • users get confused

  • adoption stays low

  • internal teams pick up the slack

  • emails and PDFs reappear “just in case”

The portal exists, but nobody trusts it.

When I started building directly on Salesforce, I decided to flip the thinking:

What if the portal wasn’t a cut-down version of the internal system — but its own product surface?

External users don’t want flexibility — they want certainty

One of the biggest mistakes I see in Experience Cloud builds is assuming external users want choice.

They don’t.

Locums don’t want to “manage records”.
Practices don’t want dashboards.
They don’t care about Salesforce objects, fields, or layouts.

They want:

  • to submit a timesheet

  • to approve something

  • to upload a document

  • to know what happens next

Anything beyond that is noise.

So we made some deliberate decisions that go against “classic Salesforce thinking”:

  • fewer editable fields

  • fewer navigation options

  • fewer decisions for users to make

  • strong status-driven flows

  • lots of things that are simply not allowed

Not hidden.
Not discouraged.
Impossible.

The result was counterintuitive but powerful: adoption went up when flexibility went down.

A good portal hides Salesforce

This became a guiding principle:

A good Experience Cloud site hides Salesforce.
A bad one exposes it.

That meant:

  • avoiding record pages wherever possible

  • preferring screen flows over forms

  • using repeaters instead of data tables (especially on mobile)

  • designing task-based screens, not object-based ones

  • removing anything that required explanation

If a user needs instructions, the design has already failed.

Mobile-first isn’t optional (even if Salesforce makes it awkward)

Most locums submit timesheets on their phones.
Most approvals happen between consults or meetings.
Almost none of this happens at a desk.

Experience Cloud can work well on mobile — but only if you design for it deliberately.

That meant:

  • testing everything on a phone, not just resizing a browser

  • avoiding dense layouts

  • limiting scrolling

  • killing anything fiddly or precise

  • accepting that some Salesforce components just aren’t suitable

Repeaters beat tables.
Big buttons beat clever UI.
Whitespace beats information density.

Not because users are unsophisticated — but because they’re busy.

Self-service only works if the system leads

One rule I set early on:

If a process relies on people remembering what to do, it isn’t automated.

So the portal doesn’t explain workflows.
It enforces them.

Examples:

  • users can’t submit incomplete timesheets

  • approved records lock automatically

  • rejected items come back with a single, clear next step

  • reminders are automatic

  • statuses drive what’s visible and editable

The system carries the process — not the person.

That single shift removed a huge amount of internal admin and back-and-forth.

Security and licensing forced better design

One of the more unexpected constraints was licensing.

Salesforce Enterprise orgs include 20,000 free External App logins — but Experience Cloud customer licences cost money, and lots of them.

Instead of defaulting to paid licences, I treated this as a design problem:

  • What actually needs to be exposed?

  • What should never be visible externally?

  • Where can flows replace direct object access?

  • How do we keep data isolated without relying on trust?

With careful architecture, strong permissioning, and a flow-first mindset, we built a secure portal using free licences — without compromising privacy or control.

That constraint forced cleaner boundaries between internal and external systems — which made everything better.

The portal changed how we think about internal processes

This was the unexpected upside.

Once you’re forced to present a clean, simple experience externally, you can’t hide internal mess anymore.

Broken processes surface immediately.
Inconsistencies become obvious.
Edge cases demand answers.

Building the Experience Cloud portal didn’t just improve the user experience — it exposed where our internal workflows needed tightening.

In that sense, the portal became a mirror.

What I’d do differently

A few hard-earned lessons:

  • Don’t expose internal objects just because you can

  • Design for one task per screen

  • Decide early what should be impossible

  • Assume zero training

  • Treat licensing as an architectural constraint, not an afterthought

  • Build for the real world, not demos

The bigger takeaway

Experience Cloud isn’t “just a portal”.

Used properly, it’s where:

  • trust is built

  • admin disappears

  • adoption either happens… or doesn’t

Most recruitment platforms get this wrong because they start from the system and work outward.

We did the opposite.

We started with how people actually behave — and forced the platform to meet them there.

That decision changed far more than the UI.

Previous
Previous

Why we ditched Bullhorn for Salesforce

Next
Next

I ripped out our third-party timesheet system and rebuilt it natively in Salesforce.