AI Job Matching

How signed-in job seekers get a Job matches page of relevant jobs from their profile and resume, and how they opt into matching emails.

AI job matching shows a signed-in job seeker a Job matches page of relevant jobs from their profile and resume. The public URL is /matches, next to /saved-jobs. The heading is personalized, for example "Ada's matches".

This is the same idea candidates already know from boards like Himalayas (/jobs/matches): a personal list, not a search they have to run.

How it works

A signed-in candidate opens Job matches from their account menu. Cavuno ranks live jobs on the board from the candidate's profile — skills, roles, and the fields a resume upload fills in. Applied jobs are left out.

A signed-out visitor who lands on /matches is redirected to sign in, then returned here. After sign-up, the default copy explains that creating an account is how we match them with relevant jobs.

An empty list is a cold start, not an error. Drive a resume-upload prompt from the candidate's profile and resume status. Do not expect a hint field on the list itself.

You can edit the Job matches heading and empty copy in the website builder, the same way you edit saved jobs.

Location and commute distance

Matches respect where a candidate lives. In their profile, a candidate picks their location from the suggestions as they type, then answers How far are you willing to commute?

  • The distance is shown in miles (mi) for candidates in the United States, United Kingdom, Liberia, and Myanmar, and in kilometres (km) everywhere else.
  • If the candidate leaves it empty, the default is 25 mi in those countries and 50 km elsewhere.
  • Any distance from 1 to 250 km (about 155 mi) is accepted.

How the location is used depends on the job and on what the candidate picked:

CandidateOn-site and hybrid jobsRemote jobs
Picked a city or townJobs within their commute distanceUnchanged: matched on work permits
Picked a city or town, and Open to relocate is onJobs anywhere in their country, or in a country they hold a work permit forUnchanged
Picked a region or country (for example "Texas")Jobs anywhere in that country. The commute question is hidden, because a region has no single point to measure fromUnchanged
Typed a location without picking a suggestionJobs in the country named in the text, when one can be read from itUnchanged

Distance is measured from the job's own city or town. An on-site job listed only at region or country level is not matched by commute distance.

The country used for matching follows the picked place. For example, a candidate who picks Houston is matched as being in the United States, whatever the free-text label says.

The same rules apply everywhere matches appear: the Job matches page, weekly matching emails, and custom frontends that read matches through the API or SDK. Changing the location, distance, or relocation setting updates matches the next time they load.

Matching emails

Signed-in candidates can also ask for a weekly email of those same ranked jobs. This is a separate opt-in from job alerts. A missing preference means they are not subscribed. Existing candidates are not enrolled when the feature ships.

They see an unchecked checkbox during first-run resume onboarding, with default copy "Email me jobs that match my profile." Later resume imports do not show that checkbox again. They can turn the same preference on or off from Settings on your board.

Each digest includes up to ten jobs. The first successful email may include current open matches. Later emails include only matches published since the last successful digest. No email is sent when there are no qualifying jobs. Every message includes a settings link and one-click unsubscribe.

On the Job alerts page, matching emails appear on the same email row as any saved-search alerts. The preference label is Job matches. Operator unsubscribe and resubscribe apply to both streams. See Manage subscribers.

Matching emails and job alerts share your plan's Email subscribers allowance. A live job-alert stream and a live matching-email stream each count as one. Waitlisted people do not count. Subscribe and toggle always succeed at the cap: the person is waitlisted instead of rejected. Confirmation happens before waitlisting. When a live stream stops, the oldest waitlisted stream is promoted. There is no "you're in" email.

This opt-in is not marketing consent. Marketing consent stays on sign-up and the marketing-permissions API.

Availability

  • Plan: All paid plans. AI job matching is available on every paid plan.
  • Setting: Settings, then Features, then "Job seeker profiles" (matches are part of candidate accounts; there is no separate switch).
  • Setup required: None.

Limitations

  • Matches require a verified candidate account. There is no anonymous matches list.
  • A thin profile returns fewer or no matches. Resume parsing is the fastest way to give the ranker something to work with.
  • The list does not expose scores, weights, or why a job ranked where it did.
  • Matching emails use the same ranker and the shared Email subscribers allowance. They are not job alerts.
  • The commute distance only narrows on-site and hybrid jobs. It does not change which remote jobs a candidate sees.
  • A candidate who typed a location without picking a suggestion is matched by country only, and only when the text names a country. Ask them to pick their location from the suggestions to get commute matching.

Example

For example, a candidate creates an account, uploads a resume, and opens Job matches. Roles that fit their skills and title appear first. If they skip the resume, the page stays empty and asks them to upload one.

Next steps

Enable and test Job seeker profiles, then check Saved jobs so the account menu has both destinations. Confirm matching emails from a test candidate's Settings and the Job alerts list. Custom frontends should use board.me.recommendedJobs.list and board.me.notificationPreferences — see How to show job matches.

Frequently asked questions