# Calendar
Source: https://docs.spott.io/docs/calendar/schedule-a-meeting
View your calendar, schedule meetings, and reschedule, cancel, or review events, all synced with Outlook or Google.
You can quickly navigate to the Calendar with `G` then `C`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
## Make sure Outlook or Google are synced with Spott
Before scheduling a meeting, ensure your Outlook or Google account is synced.
In Spott, go to **Settings → Accounts**, find the **Microsoft Outlook** or **Google**
integration, and make sure one of them is connected.
**First-time sync takes time.** Spott syncs years of calendar and email history, which
typically takes **8 to 12 hours**. Your calendar can look empty for most of that, so
give it time and check again the next day. After the initial sync, changes appear in
near real time.
Connecting the account itself, admin consent in enterprise tenants, and what your
colleagues can see of your calendar are all covered in
[connected accounts](/docs/settings/accounts).
## The Calendar page
The page has two tabs. **Calendar** is your own week, in a list or a calendar view, with
your **upcoming meetings** in the sidebar and your **teammates' calendars** available next
to yours so a shared slot is easy to find. From either view you can **reschedule or
cancel** an invite directly.
**Meetings** is the wider view: every meeting scheduled against a record in Spott, not
only your own. Filter by **User** to see who a colleague has been sitting with and when,
which is the quickest way to answer "has anyone spoken to this client recently" without
opening a single record. Search by title, and switch the same results between **List**
and **Calendar**.
## Schedule a new meeting
Click **Schedule Meeting** in the top right corner, or double-click (or click and
drag) a time slot in the calendar, like in your native calendar client.
In the meeting dialog, make sure **Send calendar invite** is toggled on, as well as
**Online meeting** if you plan to meet via Microsoft Teams or Google Meet. The
meeting URL is created on the platform of your primary email account.
Set the parameters before sending the meeting request:
* **Recipients**: the people to meet with.
* **Subject** and **email body**.
* **Date and time**, with options to **repeat** the meeting or mark it as **All day**.
The **time zone** chip after the time, such as **GMT+2**, starts on your own time zone.
Click it to pick another from a searchable list grouped by region, which is how you book
11:30 in the candidate's time rather than converting it in your head.
* **Location**: a physical location, or an **online meeting**. With online meeting on,
Spott creates the Microsoft Teams or Google Meet URL for you on your primary email
account's platform. A **Zoom link is never generated**, though the
[Note Taker](/docs/notes/note-taker) can still join a Zoom meeting it is invited to.
* **Show as free**: keep the slot open on your calendar instead of marking it busy.
* **Hide attendee list**: send the invite without showing recipients each other.
* **Dial in Note Taker**: have the [Note Taker](/docs/notes/note-taker) join the
online meeting to record and summarize it.
### The composer toolbar
Along the bottom of the message body sit five controls:
Attach a file, insert your **signature**, start from a
[message template](/docs/inbox/message-templates), add your
[scheduler link](/docs/calendar/scheduler), or ask **AI** to pitch a candidate or job.
A template with **variables** in it works here the same as it does in an email, and the
invite's **Subject** takes them too. Type `{` in the subject or the message and pick from
**Recipient**, **Candidate**, **Company** or **Job**, so the invite you send about a role
reads like it was written for that role rather than pasted from a template.
These are the record variables only. **AI Generated content** is not offered on an invite,
so a template that leans on a written passage falls back to its fixed text here.
### Attach files without leaving the invite
When the meeting is with a candidate or contact, the right-hand **Browse files** panel lists
the files already on the relevant records, so you can attach one without hunting for it on
your desktop. It groups them:
* **CVs**, the originals on the candidate
* **Reformatted CVs**, the branded versions produced by
[CV and client documents](/docs/candidates/client-documents), each labelled with its
language so you can pick the right one for the client
* **Other**, everything else held on the record, such as a work permit or a signed document
The picker at the top of the panel switches between the records involved, the job and the
person, so you can pull the job description and the candidate's CV into the same invite.
## Manage an event
Click an event in the calendar to open its details, where you can:
* **Reschedule**: change the date or time and send the update to attendees.
* **Cancel event**: cancel the meeting and notify attendees.
* **Transcript**: open the [Note Taker](/docs/notes/note-taker) transcript and
summary for a meeting that was recorded.
## Share your booking link
You can also let others book time with you directly, based on your availability. Set
up your booking links under **Settings → Calls → Scheduler**, and insert them into
emails with **Insert calendar scheduler link**. See
[setting up your scheduler](/docs/calendar/scheduler).
# Scheduler
Source: https://docs.spott.io/docs/calendar/scheduler
Share booking links so candidates and contacts can book meetings directly into your calendar, each with its own availability and rules.
The scheduler lets others book time with you without back-and-forth coordination.
Your availability is continuously updated based on your connected calendar and your
booking rules.
## Make sure Outlook or Google are synced with Spott
In Spott, go to **Settings → Accounts**, find the **Microsoft Outlook** or **Google**
integration, and make sure one of them is connected. Spott generates your available
time slots from this calendar.
## Enable the calendar scheduler
Go to **Settings → Calls** and open the **Scheduler** section:
* Toggle **Enable Spott Calendar Scheduler** on.
* Copy a booking link and share it with anyone who should be able to schedule time
with you.
You can add your links automatically when composing an email in Spott with **Insert
calendar scheduler link**.
## Create scheduling links for different meeting types
You can create multiple **scheduling links**, each with its own availability, meeting
types, and booking rules. For example, a 15-minute intro call and a 1-hour interview,
each bookable on different days.
Click **Create scheduling link** and configure per link:
* **Meeting duration** and slot interval
* **Maximum days in future**: how far ahead someone can book
* **Minimum booking notice**: how much advance notice is required
* **Minimum booking buffer**: the gap required before and after other meetings
* **Weekly availability**: one or multiple time slots per day; leave a day empty to
not appear available
* **Ask for a phone number**: an optional field on the booking form, so you have a way
to reach someone who does not show up
Each link can be enabled or disabled individually.
The meeting link matches your **primary connected account**: Outlook generates a
Teams link, Google generates a Meet link.
## Share your booking links
Anyone using one of your links only sees time slots that are free according to your
connected calendar and that link's booking rules. Bookings land directly in your
calendar and are linked to the right records in Spott.
### The booking page uses the visitor's time zone
Whoever opens your link sees the times in **their own time zone**, taken from their
browser, and your availability is converted into it. A morning in Brussels reads as an
early morning in New York, and both of you end up in the same slot.
There is nothing to configure here, and no way to force one time zone for every visitor.
If a booking looks like it landed at the wrong hour, check which zone the browser that
made it was in rather than the link's settings.
Availability comes from your calendar. Events marked **Busy** or **Out of office**
block a slot; **Free** and **Tentative** do not. If a link shows little
availability, check for an all-day event marked Busy and set it to Free instead.
# Phone Calls
Source: https://docs.spott.io/docs/calls/phone-calls
Connect a telephony integration to get click-to-call, call recording, automatic transcription, and AI insights on every connected call.
Connecting a supported telephony (VoIP) integration unlocks calling directly from
Spott, with every **connected** call recorded, transcribed, and tied to the right
person in your database.
## Supported integrations
What you get depends on the provider you use, so start here:
* [Aircall](/docs/integrations/aircall),
[RingCentral](/docs/integrations/ringcentral),
[Ringover](/docs/integrations/ringover),
[RingRing](/docs/integrations/ringring), and
[Dialpad](/docs/integrations/dialpad): built and supported by Spott. Aircall,
RingCentral and Ringover include an in-platform dialer, so you can place calls without
leaving the page.
* [VoIPPlay](/docs/integrations/voipplay) and [Devyce](/docs/integrations/devyce):
click-to-call, with calls, notes, and recordings syncing back to Spott.
Enable your provider under **Settings → Integrations**, and **select your number there
too**, on the provider's own page. See the full, always up-to-date list on
[spott.io/integrations](https://spott.io/integrations).
[RingRing](/docs/integrations/ringring) is the exception: it has no page under Settings
→ Integrations yet, so contact support to have it connected.
Calling is not the only thing a VoIP number does. The same provider page carries an
**SMS** block where you switch texting on per number, so you can also
[send and receive SMS from Spott](/docs/inbox/sms) with RingRing, RingCentral,
Ringover, and Aircall.
Selecting a number needs the **Manage workspace settings** permission. Without it the
picker is visible but greyed out, and your admin has to do it for you. See
[managing access](/docs/settings/managing-access).
## What you get
* **Click-to-call**: click any phone number in Spott (on a profile, in a table, in
search results) to dial it directly.
* **Inbound call pop-ups**: when a known candidate or contact calls, a card appears
in the bottom-right of the screen so you can open their profile before you pick up.
* **Every call on the activity feed**: connected calls are always logged on the
person's **Activity** tab, so the fact that you spoke to them is on the record either
way.
* **Recording**: connected inbound and outbound calls are recorded by your VoIP
provider and made available in Spott. Missed and unanswered calls are not recorded
or transcribed.
* **Automatic transcription and AI insights**: after the call, Spott transcribes the
recording, links it to the right person by phone number, and suggests profile
updates and follow-up tasks from what was said.
### You decide which calls become notes
Logging is automatic; a **note is not**. A minimum call duration decides whether a call
is written up: **All calls** (no minimum), or **15, 30, 45 or 60 seconds**. Anything
shorter is still logged on the activity feed but produces no note, which keeps two-ring
calls and voicemails out of your notes.
You set it as **Minimum call duration to transcribe** on your provider's page under
**Settings → Integrations**, and it **applies to every VoIP integration**, not just the
one you set it from.
Phone numbers must be stored in **international format** (for example `+32...`)
for caller matching to work reliably.
## The call record
Every processed call gets its own page in Spott, reachable from the linked person's
activity. It shows:
* **AI Suggested Updates** and **Suggested Tasks** picked up from the conversation,
which you can accept or reject
* The **recording**, with an audio player
* The **full transcript**, which you can **copy or download**, the same way you can on a
meeting recorded by the [Note Taker](/docs/notes/note-taker)
* A Details panel with the **participants** and **call details** (from, to, start
and end time), plus **notes** linked to the call
* **Ask AI**, an agent that can answer questions about the call
### When the transcript is in the wrong language
Transcription detects the language spoken on the call, and on a bilingual desk it
occasionally picks the wrong one. The result is a transcript full of plausible nonsense,
and the AI suggestions built on it are no better.
You do not have to write the call off. **Re-transcribe the call in a specific language**
from the call record, and Spott processes the same recording again with the language you
chose instead of the one it guessed.
In-person conversations recorded with the **Spott mobile app** get the same
treatment: the recording is uploaded, transcribed, and linked, with its own record
page.
## Inbound call pop-ups
When a call comes in on your connected VoIP number, Spott shows a card in the
bottom-right with the caller and the call status (ringing, in progress, ended):
* If the number matches a candidate or contact, their name is shown and clicking it
opens their profile.
* Unknown numbers show as "Unknown caller". Spott deliberately keeps this quiet so
random calls do not interrupt your work.
## Call didn't produce a note?
Run through this checklist; it covers the causes we see most often:
1. **Is recording enabled at your provider?** Spott transcribes the recordings your
provider makes. Each provider has its own recording setting (per number in Aircall,
the dashboard in Ringover, the Admin Portal in RingCentral, per call or per office in
Dialpad); see your provider's setup guide.
2. **Is your number selected in Spott?** Without your number selected, incoming calls
are not recognized and notes cannot be linked; see your provider's setup guide for
where to select it.
3. **Is the person's phone number in international format** (for example `+32...`)? That
is how Spott matches the call to the right record.
4. **Was the call long enough?** Calls under **Minimum call duration to transcribe**, on
your provider's page under Settings → Integrations, are logged on the activity feed
but produce no note. Set it to **All calls** to rule this out. Missed and unanswered
calls are not logged at all.
If everything checks out and notes still don't appear, contact support.
## Good to know
* **Tasks are not created automatically from calls.** Spott suggests tasks from the
transcript, but you decide what to accept.
* **Dialer name display is one-way.** When you click-to-call from Spott, your dialer
shows the person's name. When you dial by hand or receive a call, the dialer may
show only the number; the call is still attributed to the right person in Spott
afterwards, and the pop-up shows who is calling.
* **Ringover offers you two ways to dial.** Clicking a number gives a choice of
**Ringover**, which opens the dialer inside Spott and waits for you to press Dial, and
**Desktop**, which hands the call to the Ringover desktop app and starts dialling at
once. Both are shown on purpose so people can pick their medium, and neither can be
switched off.
* **No VoIP integration, no calling features.** Phone numbers and subscriptions are
managed by your VoIP provider, not by Spott.
# Adding Candidates
Source: https://docs.spott.io/docs/candidates/adding-candidates
The ways to get candidates into Spott: CV upload, email forwarding, manual entry, LinkedIn, CSV, integrations, and the API, and when to use each.
Spott gives you several ways to add candidates. The right one depends on what you have
in hand: a CV, a list to bulk‑import, or a LinkedIn profile you're sourcing from.
## Choose a method
Drag & drop one or many CVs. Spott parses them and pre‑fills the form for you to review.
Send CVs to `cv@spott.io` from your work email and Spott creates the candidates automatically.
Enter the details by hand, best when you only have a name or partial info.
Import a profile directly with the Spott Chrome extension.
## Upload a CV (drag-and-drop)
The fastest way when you have CVs in hand. Spott parses each CV and drops you into the
candidate form with the fields already filled in.
Open the **Candidates** page (shortcut: `G` then `A`) and click **Add from CV**
in the top-right.
Drag files onto the drop zone, or click **Upload CV** to browse. You can add
**up to 1,000 CVs at once**.
The parser reads **image files** as well as documents, so a photo or a scan of a
printed CV works the same way an exported PDF does. That is what makes it possible
to add a candidate from a document you photograph on your phone; see the
[mobile app](/docs/mobile/overview#create-a-candidate-from-your-phone).
Spott extracts what it can (name, email, phone, LinkedIn URL, work experience,
education, and certifications) and pre‑fills the form across the **Basic
attributes**, **Experience**, **Education**, and **Certificates** tabs. Correct
anything that needs it.
At the top of the form, **Add candidate to** takes a **Job** or a **List**, one or
the other rather than both. Set it and every candidate in the batch lands there as it
is created, so a stack of CVs from a client becomes a populated pipeline in one pass
instead of an import followed by a round of selecting and moving.
Pick a job and you pick the **stage** as well, from that job's own stages, so a batch
of CVs a client has already screened can go straight in at the stage it has actually
reached instead of entering at the top and being dragged forward.
Leave it unset to add the candidates to your database only.
Click **Add All Candidates**. They now appear in your database.
Uploading **fewer than 20 CVs at once** is a **supervised** flow: you review the
parsed values before saving. Larger batches are processed automatically, without the
review step. If you'd rather skip the review step altogether, forward the CVs by
email instead (below).
## Forward CVs by email
Forward CVs as email attachments (**PDF or DOCX**) to `cv@spott.io` and Spott parses
them and creates the candidate records. No need to log in.
**Forward from your work email**, the address you use to sign in to Spott. That address
is how Spott knows which workspace the candidate belongs to. Forwarding from a personal
address won't work.
Candidates created this way get **you** as their **Main Contact**, since you are the
person who forwarded the CV. The same applies to a bulk CV upload. That keeps ownership
attached to whoever actually sourced the person, instead of leaving a batch of records
with nobody's name on them.
This is an **unsupervised** flow: there's no review step, so an occasional field may be
missed. You'll always get an email back if something goes wrong:
The email arrived without a CV attachment. Reply‑forward with the file attached.
The file was corrupted or image‑only without recognizable text. Re‑export a clean
PDF or DOCX and resend.
The CV's email, phone, or LinkedIn URL points to two different existing records, so
Spott can't safely deduplicate. It surfaces the conflict instead of guessing. Resolve
it in the app. See [deduplication](/docs/candidates/managing-candidates).
## Add a candidate manually
Best when you have only a name, an email, or partial information, with no CV.
Click **Add from CV**, then **Add Candidate Manually**.
Enter name, email, phone, and location, then add **experience**, **education**, and any
custom fields your workspace has configured.
The candidate is created and added to your database.
## Other ways to add candidates
Bulk‑upload candidates, contacts, or companies from a spreadsheet.
Push candidates from connected tools like Juicebox or Pin directly into Spott.
Insert candidates programmatically via the Spott API.
## Good to know
* **Duplicates are handled for you.** Spott deduplicates on email, phone, and LinkedIn URL,
so re‑adding someone enriches the existing profile rather than creating a copy. See
[managing candidates](/docs/candidates/managing-candidates).
* **Keep profiles complete.** Fuller profiles improve search accuracy and matching results.
# Tracking Applications
Source: https://docs.spott.io/docs/candidates/candidate-applications
Follow a candidate's applications, placements, and speculative presentations from the Candidate tab, and let AI suggest matching jobs.
The **Candidate** tab on a [candidate profile](/docs/candidates/managing-candidates)
tracks everything about the person as a candidate: their applications, placements, and
potential matches.
## Overview
All processes the candidate is part of, in one list, grouped into **Jobs** and
**Speculative Presentations**. For each one you see the job title, the **job status**,
company, stage, label, state, last activity, owner, and the client contacts on it.
The job status column is the [job's own status](/docs/settings/stages#job-statuses), and
any of them can appear: a candidate in a pipeline for a job that is Interviewing, Won, or
Lost is listed here alongside one on a job at Open. This is everything the candidate is
part of, not only what is still open.
## Placements
The candidate's placements: the jobs they were successfully placed in. Each placement
shows who placed the candidate, the placement type, start date, salary, fee, and any
fee splits between teammates.
## Jobs
Every job application the candidate is part of, whatever status the job itself is in.
For each application you see:
* Company name
* Job title
* Time in stage
* Application stage
* Application status
You can move the candidate forward in the process from here. Click an application to
open it and see the full context.
## Speculative
Introduce a strong candidate to a company even when there is no open role.
To create a speculative presentation, click the **+** sign at the top right of a
column. Pick the company you want to present to, and optionally a contact. Then move
the candidate through the stages as the conversation progresses.
You can also start from the **Present** button on the profile, which emails the
candidate to your client contact and logs the speculative presentation in the same
step. See [presenting candidates](/docs/candidates/presenting-candidates).
The stages of the speculative process are fully customizable in Settings.
## Matching
AI suggestions based on the whole profile: details, experience, notes, and applications.
Spott identifies:
* **Jobs** in your database that could be a good match for this candidate.
* **Candidates** in Spott with a similar profile.
## Next steps
Close the loop when a candidate is hired.
Capture structured interview feedback.
# CVs & Client Documents
Source: https://docs.spott.io/docs/candidates/client-documents
Generate a formatted CV, a candidate report, or a shortlist in your own Word template.
Before a candidate goes to a client, Spott can write the document for you, in your own
Word template rather than whatever the candidate happened to send you. There are three
of them:
| Document | What it is | Where you start it |
| - | - | - |
| **Formatted CV** | The candidate's CV rebuilt in your template | The candidate profile |
| **Candidate report** | A written introduction of one candidate for a client | The Present dialog |
| **Shortlist** | One document covering several candidates for a role | The Candidates table |
All three ask you the same three things before they run:
* **Language**, for example American English or French, so the same profile can go to
one client in English and another in French.
* **Template**, the Word template to build the document with. These are configured for
your workspace. See
[CV and report templates](/docs/settings/templates#cv-and-report-templates) for how to
get your own in.
* **Anonymize output**, to leave the candidate's identity out of the document, for when
you share a profile before terms are agreed.
## Formatted CV
A **formatted CV** is the candidate's own CV rebuilt in your layout, so every CV you
send a client looks the same regardless of what the candidate uploaded.
Start it in either place on the candidate profile. **Generate CV** sits with the other
buttons at the top of the [Experience subtab](/docs/candidates/managing-candidates):
Or open the three dots next to a CV in the **Files** subtab and choose **Generate
formatted CV**, which is the one to use when a candidate has several CVs on file and
you want a specific one as the source:
Either way you land in the same dialog:
Generation runs in the background. The **Files** subtab splits into **Uploaded files**
and **Generated files**, with a **Generating formatted CV** marker while it works, and
the finished `.docx` appears under Generated files. Click it to preview the document
without downloading it.
Generate the CV once the profile is complete. It is written from the data on the
record, not from the uploaded file, so a missing employer or a half-filled education
line shows up in the document. See
[updating a profile from a CV](/docs/candidates/update-profile-from-cv).
## Candidate report
A **candidate report** introduces one candidate to a client. Where the formatted CV is
the candidate's own history in your layout, the report is the write-up around it:
personal information, their current position (title, company, team), and contract
details such as salary and notice period.
You generate it while [presenting a candidate](/docs/candidates/presenting-candidates).
In the attachments panel on the right, under **Reports**, click **Generate candidate
report**:
The dialog matches the CV one, with its own set of report templates:
Finished reports stay under **Reports** in that panel, so you can attach one you made
earlier instead of generating it again.
**Generate candidate report** is not offered on every candidate. Like a formatted CV, the
report is written from what the record holds, so a candidate with no document classified
as a **CV** has nothing for Spott to write from. If the action is missing, check the
**Files** subtab and set the file's type to CV, then reopen the Present dialog.
## Shortlist
When you want to send a client several candidates in one document instead of one
presentation per person, generate a **shortlist**. Select the candidates in the
Candidates table, open **Candidate Actions** in the bar at the bottom, and choose
**Generate Shortlist**.
Alongside the language, template, and anonymize choices, a shortlist also asks for the
**Job** it is for, which appears on the cover page.
Click **Generate**. Spott writes a **Word document** with a cover page for the client
and role, then a written profile per candidate: their current position, career history,
and education, grouped by company.
Follow the run in **Background Actions**: the entry moves from **Queued** to
**Completed**, and the finished `.docx` appears under **Result** to download.
## When the document does not look right
The layout, the section order, and the wording all come from your workspace template,
not from the individual document, so a formatting problem you see on one candidate
applies to all of them. Two things to check before reporting it:
* **Is the data on the record correct?** Sections are written from the profile, so a
wrong job title in the document is usually a wrong job title on the record.
* **Is the section in your template?** Every section in the template is always rendered
and nothing is added beyond it, so a missing block means it is missing from the
template.
If the template itself needs to change, email
[support@spott.io](mailto:support@spott.io) with the exact candidate you tested on. See
[CV and report templates](/docs/settings/templates#cv-and-report-templates).
# Contact Enrichment
Source: https://docs.spott.io/docs/candidates/contact-enrichment
Automatically enrich Candidate and Contact profiles with email addresses and phone numbers using Spott's enrichment engine.
Enrichment in Spott completes Candidate and Contact profiles by automatically finding
missing email addresses, phone numbers, and LinkedIn URLs, or by updating a profile
from LinkedIn.
Spott uses a **waterfall enrichment system**: multiple data providers are tried until
data is found or all sources are exhausted, maximizing accuracy and coverage.
Enrichment uses credits, and credits are only deducted when enrichment is
successful. You can find credit pricing on the **Billing** page in Settings.
## Enable Profile Enrichment
1. Navigate to **Settings → Features**.
2. In the Enrichment section, toggle **Enable Profile Enrichment** on to allow
enrichment for Candidates and Contacts.
## Enrich an email, phone number, or LinkedIn URL
You can enrich profiles directly from both Candidates and Contacts:
1. Open a Candidate or Contact profile.
2. Click into an empty **email** or **phone number** field.
3. Click the purple **Enrich** button that appears.
4. Spott attempts to enrich the selected field.
You can also enrich in **bulk** from the Candidates or Contacts table: select people
with the checkboxes and use the **Enrich** menu to enrich emails (personal, work, or
both), phone numbers, LinkedIn URLs, or full profiles from LinkedIn. Bulk enrichment
handles up to **1,000 candidates** at a time.
## Update a profile from LinkedIn
On the profile's **Experience** subtab, click **Check for updates** to refresh the
whole profile from LinkedIn. This can take a couple of minutes.
You can also let Spott do this automatically on a schedule. See
[auto-updating profiles](/docs/settings/auto-updating-profiles).
## Enrichment history
Review enrichment usage from **Settings → Features**. Each enrichment feature keeps its
own history, so the record of a phone lookup and the record of a LinkedIn profile refresh
sit in different places:
* **Contact Enrichment History**, for the emails, phone numbers, and LinkedIn URLs you
enriched on a profile.
* **Profile Enrichment History**, for profiles updated from LinkedIn with **Check for
updates**.
Either one shows historical credit usage, which profiles were enriched, whether
enrichment succeeded, and how many credits were deducted. Use the **Export** button
to download the history for review.
Nothing is charged for a profile Spott cannot find: credits are deducted only when
enrichment comes back with something.
## Credit costs
Credits are only deducted when enrichment succeeds. How many credits an enrichment
costs depends on what is found:
* **Work email**: 1 credit
* **Personal email**: 3 credits (personal emails come from a more expensive data source)
* **Phone number**: 10 credits
* **LinkedIn URL**: 1 credit
* **Profile update from LinkedIn** (Check for updates): 5 credits
The current rates are always listed on the **Billing** page in Settings.
## Managing credits
Every seat brings an allowance of **300 credits a month**, so a workspace of ten users
receives 3,000.
New credits are added on the **first day of each month**. The enrichment history shows
the date the next allowance lands, so you can see how long the balance has to last.
Top up from **Settings → Billing** in one of two ways:
* **Monthly subscription**: a recurring monthly credit allowance, at a lower
per-credit price.
* **One-time purchase**: a one-off block of credits.
Credits are **pooled at the team level**: the whole workspace draws from one shared
balance, across all credit-using features such as enrichment and
[auto-updating profiles](/docs/settings/auto-updating-profiles). The allowance is
counted per seat but never held per user, so one person enriching a long list spends
from the same pool as everyone else.
Unused credits **carry over** and expire one year after they were issued, so a quiet
month is not lost. What arrives monthly is the new allowance, not a reset of the
balance. See [Billing & Credits](/docs/settings/billing).
An **Insufficient balance** message means the shared pool is empty, not that you
personally have run out. To stop the pool draining faster than you would like, take
**Enrichment** off the roles that do not need it under **Settings → Security**: there
is no per-user credit limit, so role permissions are the only control.
# Interview Scorecards
Source: https://docs.spott.io/docs/candidates/interview-scorecards
Score a candidate against a job's criteria, manually or with AI, to keep interview feedback structured and comparable.
A **scorecard** rates a candidate against the requirements of the job they applied to.
It gives your team a consistent way to compare candidates and to record structured
interview feedback in one place.
## Set up the job's scorecard first
A scorecard belongs to a **job**, not to a candidate: it is the list of criteria in the
**Scorecard** section of the job's **Overview** tab, and every candidate on that job is
scored against the same list.
Set it up there before you start interviewing. In **Quick Actions** on the job, **Add
Scorecard** lets you build the criteria yourself and **Generate Scorecard** has AI write
them from the job description and sourcing criteria. Once the job has one, the same
actions read **Edit Scorecard** and **Regenerate Scorecard**.
**Generate Scorecard** writes the criteria from the job description, so a job whose
Overview has no description yet has nothing to generate from. Fill in the description
first, or build the criteria by hand.
### Reuse a scorecard across jobs
Most agencies interview for the same kinds of roles over and over, and rebuilding the
same criteria on every job wastes the effort that went into getting them right the first
time. Your workspace keeps a library of **scorecard templates**, as many as you need, and
applying one fills a job's scorecard instead of you starting from a blank list.
In **Configure Score Card**, **Apply template** lists the templates your workspace has
saved, each with a short description of what it is for, such as a technical skills
screen or a first social interview. Pick one and its criteria fill the scorecard, ready
to adjust for this particular role.
Templates are **shared with the whole workspace** and only an admin can create or change
them, so the library stays a deliberate set rather than filling up with one-off variants.
They are built under **Manage templates**, at the bottom of the same menu. There is no
save-as-template action in this dialog: a scorecard you have just assembled by hand stays
on the job, and turning it into a template means building it again under Manage
templates.
Applying a template beats **Regenerate Scorecard** when you already know what you
interview for: it is the same list every time, so two recruiters scoring two candidates
are scoring them on identical criteria.
**Editing a job's scorecard wipes the scorecards already filled in** for candidates in
that job's pipeline. Spott warns you in the dialog. Get the criteria right before you
start interviewing rather than changing them halfway through, or you lose the feedback
your team has already recorded.
## Add a scorecard
From a candidate's application, open **Quick Actions** and choose:
* **Add Scorecard** to create a scorecard you fill in yourself, or
* **Generate Scorecard** to have AI fill it in first.
### When Add Scorecard is greyed out
Both actions are unavailable on an application until the **job** has a scorecard, because
there are no criteria to score anyone against yet. This is the usual reason the buttons
look dead on a candidate you are about to interview, and it is fixed on the job rather
than on the application: go to the job's Overview tab and set the criteria up as above.
## Generate a scorecard with AI
**Generate Scorecard** opens a dialog where you pick a **language**. The AI then rates
and comments on every attribute in the scorecard, based on the candidate's profile and
the vacancy details.
## Read and edit a scorecard
The scorecard is a table with three columns:
* **Criteria**: the requirements pulled from the job, such as "Minimum 5 years B2B
sales experience".
* **Score**: a color-coded rating of how well the candidate meets each criterion.
* **Comments**: the reasoning behind each score.
AI-generated scores and comments are a starting point. You can edit any score or
comment, leave a comment blank, and add an overall **Comment** at the top of the
scorecard from your own interview.
Every other place Spott uses AI is mapped out in [AI in Spott](/docs/get-started/ai-in-spott).
# Last Interaction
Source: https://docs.spott.io/docs/candidates/last-interaction
How Spott keeps track of the most recent touchpoint with each candidate.
The **Last Interaction** field on a candidate's details panel tracks the most recent
real touchpoint with the candidate, together with **Last Interaction With**, which
shows the teammate who had that touchpoint.
Last Interaction is updated by two-way touchpoints:
* **Emails**: emails sent to or received from the candidate through a connected mailbox
* **WhatsApp messages**: messages exchanged with the candidate through a connected
WhatsApp account
* **Phone calls**: logged and received calls through a connected calling (VoIP) integration
* **Calendar meetings**: meetings with the candidate from a connected calendar
These update the timestamp regardless of which team member in your organization had
the touchpoint, as long as their accounts are synced with Spott. Adding a note or
completing a task does **not** move Last Interaction.
Spott also tracks a broader **Last Activity Date**, which reflects recent activity
on the record. You can filter and sort on both fields in the Candidates view.
**Completing a task moves Last Activity Date**, and writes an entry in the record's
activity feed saying so. The two fields part company here, and deliberately: chasing a
candidate for a document is work on the record, but it is not a conversation with them.
Last Interaction stays where it was, so a candidate nobody has actually spoken to in two
months cannot be made to look fresh by ticking off admin.
This helps you keep track of the most recent contact with each candidate across
channels and team members, and quickly find candidates who have not been touched in
a while.
# Managing Candidates
Source: https://docs.spott.io/docs/candidates/managing-candidates
A tour of the candidate profile: the tabs, the details side panel, and the quick actions you can take from one place.
The candidate profile brings everything about one person together: their experience,
conversations, files, and AI context. This page walks you through it.
Every person exists only **once** in Spott. Someone can be a candidate, a client
contact, or both, and their notes and history stay on the same record even when they
change companies or roles. The **Add as contact** button on a profile adds the contact
role to the same person. It does not create a copy.
## Open a candidate profile
Go to the **Candidates** page in the left menu and click a candidate's name.
The header shows the candidate's name, role, company, and contact details. Below it,
the profile is organized into three tabs:
* **Overview**: all information about the person.
* **Candidate**: their applications, placements, and matching. See
[tracking applications](/docs/candidates/candidate-applications).
* **Inbox**: the full message history, across all channels.
## Quick actions
In the top right corner of the profile you find:
* The candidate's **LinkedIn profile**.
* **Present**, to share the candidate with a client.
* The **Actions** menu: send an email, send a calendar invite, add to a job, add to a
list, add a task, add a note, enroll in a campaign, or merge two people.
## The Overview tab
The Overview tab has a row of subtabs on the left and a side panel on the right.
### Summary
Your starting point. Based on the whole profile, Spott shows:
* **Suggested field updates** picked up from recent calls, meetings, and notes. They
appear here as Spott picks them up, so there is nothing to go and fetch: check the
Overview tab after a call and accept or reject each one.
* A short **AI summary** of the candidate.
* **Salary expectations**.
* **Candidate sentiment**, based on recent conversations.
* **Suggested tasks**, picked up from recent calls, meetings, and notes. Hover one to
see why it was suggested and where it came from, then add it to your task list or
dismiss it.
* **Upcoming meetings**.
The **AI summary**, **salary expectations**, and **candidate sentiment** are written from
the profile as it stood when they were generated. After you correct the record, open the
three dots next to one of those headings and choose **Regenerate value** to have Spott
write it again from what is there now.
### Notes
Add and track notes about the candidate or one of their applications. With the Spott
Notetaker enabled, meetings are transcribed and summarized into a note automatically.
Notes also serve as context for the AI features.
Notes and emails can be **docked**: they open in a floating window that stays on
screen while you move around the rest of the profile, so you can take notes while
reading the CV or checking past communication.
A docked note carries its own controls in the title bar: pin it, minimize it out of the
way, expand it to full screen, copy a link to it, or set a reminder. Minimize one and it
drops to a small icon in the bottom right, still open, so you can bring it back when the
call moves on.
### Experience
The candidate's skills, work experience, and education, with tenure statistics.
This information can be entered manually, parsed from a CV, or imported from LinkedIn
with the Chrome extension.
When the candidate has a CV on file, a **Latest CV** toggle appears at the top left
of the tab. Switch it on to read the CV document itself instead of the parsed
profile, without leaving the record.
The company names in the work experience are clickable. Clicking one opens a preview of
that employer with its description, industry, headcount over time, funding rounds, and
the employees you already have in Spott. From that preview you can click **Add as
company** to create the company as a client record, which is handy when a candidate's
current employer turns out to be a prospect. See
[adding a company](/docs/companies/adding-a-company#from-a-company-preview).
The buttons at the top keep the profile up to date:
* **Add note**: jot a note down without leaving the tab.
* **Request updated CV**: send the candidate a link to upload their latest CV.
* **Update with new CV**: upload a newer CV yourself. Spott compares it with the
profile and only applies what changed.
* **Check for updates**: refresh the profile from LinkedIn.
* **Generate CV**: create a [formatted CV](/docs/candidates/client-documents) in your
agency's template.
Read more in [updating a candidate profile](/docs/candidates/update-profile-from-cv).
### Communication
Your message history with the candidate on **email**, **linked emails**, **WhatsApp**,
and [**SMS**](/docs/inbox/sms), and a quick way to reply without leaving the profile.
The channels are listed down the left, split into the workspace ones and your personal
ones.
Synchronisation works in both directions. Messages sent outside Spott also show up
here, and vice versa. For the full-screen version, open the **Inbox** tab.
### Files
Files attached to the candidate, such as their CV. Click the three dots next to a CV
to **generate a formatted CV**, so every CV you share with clients follows the same
[template](/docs/candidates/client-documents).
Filter the tab by **file type** to get to the one you want on a record that has
collected years of documents, instead of scrolling the whole list. The same filter is on
the Files tab of every record that has one.
Click a file to open it in the **file viewer**, which reads Word documents and PDFs
without downloading them or handing them to another application. Press `Ctrl+F`
(`⌘F` on a Mac) to **search inside the document**, and step through the matches with the
arrows. On a six-page CV that is the difference between reading it and checking whether
the candidate has ever touched Kubernetes.
The viewer is the same wherever a file opens in Spott, including the
[Latest CV toggle](#experience), email attachments, and
[client documents](/docs/candidates/client-documents).
### Tasks
Follow-up actions for this candidate. Assign them to yourself or a teammate, set due
dates, and track completion.
### Consent
Track the candidate's **consents** (GDPR and other compliance requirements, with type,
source, and validity period) and **marketing opt-outs** to exclude them from marketing
emails.
This subtab appears when consent tracking is enabled for your workspace. See
[consent management](/docs/settings/gdpr-consent).
### References
Log references for the candidate and add comments per reference.
## The side panel
### Details
All the candidate's fields: contact details, location, languages, availability, salary
expectation, and any custom fields your workspace uses. Click **Show all values** to
see every field.
Like the Experience subtab, these values can be entered manually, parsed from a CV, or
imported from LinkedIn. In Settings you can create new fields, reorder them, and choose
which ones show by default. See
[creating custom attributes](/docs/settings/customizing-candidate-profiles).
### Activity
A timeline of everything that happened on the record, with who made each change. It
covers **updates** to attributes, **notes**, **tasks**, **meetings**, **emails &
messages**, **calls**, **applications** (including stage moves), and **contacts**.
Use the **Filters** button at the top of the timeline to choose which of those event
types are visible.
### Ask AI
A personal agent that knows the whole profile: details, experience, notes, emails, and
applications. Ask it things like:
* "Summarize the situation with this candidate."
* "Give me an application overview."
* "What should I do next with this candidate?"
## Frequently asked
* **No duplicates.** An email address, phone number, or LinkedIn URL can belong to only
one person in the whole database. If a CV or import matches an existing person, Spott
updates that person instead of creating a copy.
* **Phone numbers use international format** (for example `+32...`). Spott validates
this on entry. It keeps deduplication, enrichment, and calling integrations reliable.
* **Checking who owns an identifier?** Paste the email address or phone number into
global search (`⌘K` / `Ctrl+K`) to find the person it belongs to.
* **The Source field** records where a candidate came from, not their current status,
and is not editable.
* **Marking someone off limits** is done with the candidate's **status**, which offers
**Do not contact** and **Do not poach**. The status list is fixed, so if you need your
own values, build a [custom attribute](/docs/settings/customizing-candidate-profiles)
and use that instead.
* **Inline edits need Enter.** When you change an email address or a phone number in
place, press Enter to commit it. Clicking away discards what you typed, which reads as
the field refusing to save.
* **Bulk delete** handles up to 1,000 candidates at a time.
* **You cannot reuse your own login email** on a candidate record.
* **Profile photos** can be uploaded manually on a candidate profile.
* **WhatsApp on the Communication tab stays private to each user**, so a colleague's
WhatsApp threads are not visible to the rest of the team.
* **Numbers must be in international format** (for example `+32...`) for calls and
[SMS](/docs/inbox/sms) to be matched back to the candidate.
**Manage candidates** in the Get Onboarded guide. A walkthrough of the whole record: finding, reading, maintaining, and presenting a candidate.
# Merging Duplicate People
Source: https://docs.spott.io/docs/candidates/merge-duplicates
Combine two records for the same person into one, keeping all their data.
Spott catches most duplicates **automatically**: when you add or import a person that
matches an existing record, it offers to update that record instead of creating a
copy. When the same person still ends up in Spott twice, because the two records
shared nothing to match on, you can **merge** them manually so all their history stays
in a single place.
## How Spott detects duplicates
When you add or import a person, Spott checks for an existing record with a matching
**email address, phone number, or LinkedIn URL**. It does not match on name alone, so
two different people with the same name are not treated as duplicates.
If it finds a match, Spott shows a **Duplicate candidate** prompt with the matching
identifiers highlighted, and offers to **update the existing record** (for example,
**Update candidate from CV**) instead of creating a second one.
## Merge two people
When two records share no matching identifier, for example one was imported from a CV
and the other added from LinkedIn with different contact details, automatic detection
cannot link them. Merge them manually:
1. Open either person's profile.
2. Click **Actions** in the top right and choose **Merge 2 people** (shortcut `⇧M`).
You can also select both people with the checkboxes in the main **Candidates** or
**Contacts** view, then click **Candidate Actions** (or **Contact Actions**) in the
bar at the bottom of the screen and choose **Merge 2 people**.
3. In the **Merge People** dialog, the two records are shown side by side. Spott
combines their data, such as emails, phone numbers, LinkedIn, and attachments, into
one record.
4. Review the combined result on the right, then click **Merge People**.
The record on the **right** takes priority. When the same field has different values
on each side, the right-hand value is kept. Put the record you consider most correct
on the right.
## Good to know
* You merge **two people at a time**. There is no bulk merge, so selecting more than
two records in a list view does not offer the merge action.
* Fields that can hold several values, such as **emails, phone numbers, and
attachments**, are combined, so nothing is lost there. Fields that hold a single
value, such as the **job title**, keep the right-hand record's value and the other is
overwritten. This is why the side you put on the right matters.
* **Merging cannot be undone.** Review the side-by-side comparison before you confirm.
* Merging a Candidate with a Contact keeps the result as a **Candidate**.
# Presenting Candidates
Source: https://docs.spott.io/docs/candidates/presenting-candidates
Send a candidate to your client contacts for a role, with their CV or a generated report attached.
**Presenting** a candidate emails them to your client contacts, usually hiring
managers, for a specific role. You can present a candidate who has applied to a job, or
make a **speculative presentation** when there is no active role yet.
## Present a candidate
1. Open the candidate, or their application, and click **Present** in the top right.
2. A **Send email** opens, set up for presenting the candidate. The subject is filled
in for you, for example "Presenting Steven Brower for Account executive".
3. Add the client **recipients** and write your message.
## Attach a CV or report
The panel on the right, under **Browse files for** the job and candidate, holds the
documents you can attach. It groups what the records hold, so **Reformatted CVs** lists
the formatted CVs you generated, and a group only appears once there is something in it.
Where **Generate candidate report** is offered, it sits under **Reports** and writes one
without leaving the email; reports you generated earlier stay listed there. It is not
always available, and when it is missing you attach a document the record already holds
instead. See [candidate report](/docs/candidates/client-documents#candidate-report).
The panel is not limited to CVs and reports. It lists the **other documents held on the
records** too, such as a portfolio, a certificate, or a signed document, so the
attachment you need is rarely one you have to go and find on your desktop.
Nothing is attached for you. **Drag the file from that panel onto the body of the email**
until "Drop files here" appears. Clicking a file only opens a preview, which is the usual
reason a presentation goes out with no CV on it.
See [CVs & client documents](/docs/candidates/client-documents) for what each document
contains and how it is generated.
## Additional actions
While presenting, you can also do either of the following in the same step:
* **Create Application**: add the candidate to the job's pipeline as you present them.
* **Create Speculative Presentation**: log the presentation when there is no active
role for the candidate.
The dialog also carries a **stage** toggle, which moves the candidate to a stage you pick
the moment the email is sent. It is off unless you turn it on, so a candidate whose CV you
have just emailed stays where they were until you either use this or drag the card. Set it
to your CV Sent stage and the [KPI](/docs/settings/stages) is logged as you send.
## Generate a shortlist document
To send a client several candidates in one document instead of one presentation each,
select them in the Candidates table and use **Generate Shortlist** under **Candidate
Actions**. See [shortlists](/docs/candidates/client-documents#shortlist).
## Present to several contacts at once
Start from a **list of contacts** or a **filtered view** on the Contacts page: select
the contacts and present the candidate to all of them in one action. You can also
bulk-present several candidates at once from the Candidate table or from a job pipeline.
### Send bulk email: one mail or one each
With more than one recipient in the dialog, **Send bulk email** decides how the message
goes out. It does not add recipients.
* **On**: every recipient receives their **own individual email**, and none of them sees
the others.
* **Off**: all recipients receive **the same email** and share one thread, which is what
you want when a hiring manager and their colleague should be able to reply to each
other.
The toggle only appears once there is a second recipient, and it is **locked off** when
you present several candidates at once, since that always goes out as one shared email.
Where a candidate or contact has **more than one email address** on file, the recipient
row in the bulk window lets you switch to the other one before sending, so a client who
reads their work address and a candidate who only reads their personal one can both be
on the same send.
### Log speculative presentations in bulk
**Create Speculative Presentation** also works on a selection. Select the rows on the
Candidate, Application, or Speculative Presentation table and use the action in the
snackbar at the bottom of the screen to log them all at once, rather than opening each
record. This is the practical way to record a mailshot to a client group after the fact.
On a speculative presentation's own detail page you can **add and remove contacts**
directly, so a presentation that went to one person at the client can be corrected to
show everyone who was actually on it.
# Searching Candidates
Source: https://docs.spott.io/docs/candidates/search-candidates
Find candidates with the search bar, Boolean queries, structured filters, and AI text to filters, and save your setup as a view.
The Candidates page gives you three ways to find people: the search bar for quick lookups,
structured filters for precise slices of your database, and the **Search** tab for deep,
AI-powered sourcing across the whole pool.
Open the **Candidates** page from the left menu (shortcut: `G` then `A`; see all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts)).
## Use the search bar
The search bar sits in the top left of the candidate table. Type a name or keyword to
narrow the list as you type.
Looking up who owns an **email address or phone number**? Use [global search](/docs/get-started/global-search)
(`⌘K` / `Ctrl+K`) instead. It finds the person an identifier belongs to across the
whole database.
### Boolean search
The search bar supports full Boolean queries with **AND**, **OR**, **NOT**, and
parentheses. Spott switches to Boolean mode automatically as soon as your query
contains double quotes:
```
("Java developer" OR "backend engineer") AND NOT "intern"
```
This gives you precise control when a plain keyword search returns too much.
## Apply structured filters
Click the **Filters** button above the table to add a filter. Filters are grouped by
the kind of data they match. The menu is built from your own workspace, so it is longer
than any list here: custom attributes and the fields your integrations add show up in it
as well. The groups worth knowing about are these.
* **Current Job Title**, **Years of Experience**, and **Keywords**
* **Company**, with industry and past companies
* **Location** and **Education**
* **Compensation** and **Last Interaction**
* **Jobs**: everyone who is in a process for a specific job or company, or currently
sitting in a specific stage
* **Rejected**: everyone whose application was closed, filtered by who ended it, **By
Us**, **By Candidate** or **By Client**, and by the
[rejection label](/docs/settings/labels) that was recorded. The two together are how you
find the people worth going back to: someone the client turned down because the role was
already filled is a different prospect from someone who withdrew, and both are different
from a candidate your team rejected on skills.
* **Lists** and **Source**
* For candidates synced from the **VDAB CV database**, the date their CV was last
updated **on VDAB**, which you can filter and sort on as well as the date the record
was first created in Spott. The two answer different questions: creation date tells you
how long you have had the profile, the VDAB date tells you how fresh it actually is.
Sort on it to work the recently refreshed profiles first.
* **Phone number**, including its **area code**, so you can cut a list by dialling code
when the location field is thin
* Any **custom fields** your workspace has configured
* **Compliance** filters such as consent status, when consent tracking is enabled
By default, results match **all** applied filters. Use the three-dot menu on an applied
filter to combine filters as **any** instead, for example "Paris or London". For more
complex slices, combine filters into **filter groups**: each condition in a group is
joined with **AND** or **OR**, and you click the operator in front of a condition to
switch it.
**Location** offers **Set location** for a radius around a point, and **Set area** for a
named area, which can be a city, a region, or a country. As you type, each suggestion is
labelled with what it is, such as **Region**, **Municipality**, or **Place**, so you can
tell "Flanders, Belgium" the region from a town of the same name before you pick it.
Locations are geocoded, so both "London" and "Greater London" resolve to the same area.
**Set area** also accepts whole continents: **Europe**, **North America**, **South
America**, **Asia**, **Africa**, and **Oceania**. Useful for the coarse cut you make
before anything else, such as everyone outside Europe on a role that cannot sponsor a
visa.
Location also filters on **ZIP or postal code**, which is the precise cut when a named
area is too broad and a radius is too round. It is the filter to reach for when a client
recruits by postcode district, or when a shift pattern only works for people in specific
codes. The same **Location** filter behaves this way everywhere in Spott, on contacts,
companies, and jobs, not only on candidates.
There is no "has received an email" filter as such. **Last Interaction** is the one to
reach for, since email is one of the touchpoints that moves it: filter on **Last
Interaction At** for when you were last in contact, **Last Interaction With** for which
colleague it was, or the broader **Last Activity Date** for any activity on the record.
### AI text to filters
You do not need to know where each filter lives. Keep typing a description in the
filter box, for example "React developer with 5+ years of experience, living in
California", and Spott converts it into filters for you with **AI Text to filters**.
Locations follow what you actually wrote. Ask for "within 30 km of Ghent" and you get a
**radius** filter around Ghent; name a place without a distance, such as "living in
Flanders", and you get an **area** filter for that place.
### Preset filters
A filter set you use often can be saved as a **preset filter**, so you apply it in
one click instead of rebuilding it. With your filters applied, open the filter menu,
hover over **Preset filters**, and choose **Save current filter set**.
Give the preset a name and save. From then on it appears under **Preset filters**,
ready to apply.
Where a [view](#save-filters-into-views) saves the whole table setup, a preset saves
just the filter set. Presets are also available when editing the **pre-filters** of a
search, so you can reuse the same filter set for deep sourcing:
## Save filters into Views
Save a set of filters as a view to come back to it later. You can create as many views
as you want:
* Click the view picker (it shows **All** at first)
* Set your filters
* Click **Save view**
* The saved view is now available from the dropdown
When you change filters, sorts, or columns on a view, a save / discard prompt appears
at the top of the table. Changes only stick after you save them. See
[using views](/docs/settings/using-views) for everything a view holds.
## Deep sourcing with the Search tab
Where the search bar and filters match profile fields, **Search** runs an AI-ranked
search across every candidate in your database, including their notes and the
attachments **labeled as CVs** (other attachments are not searched).
Open it from **Search** under **Tools** in the left menu, or from the **Search** tab
next to **All candidates** at the top left of the Candidates page.
Describe your ideal profile in your own words, or use **Start from** to base the search
on an existing job in Spott or on a pasted job description. Spott turns your input into
pre-filters and criteria that you review before running the search, then ranks the
results by match score. Nothing Spott picks up is fixed: you can add, edit, or remove
any pre-filter or criterion, both before you run the search and afterwards.
The tags under the prompt box, for example **Job Title**, **Location**, and
**Experience**, light up as Spott recognises those details in your description. They let
you check what was picked up before you run the search.
### Recent searches and history
Your recent searches sit under the prompt box, each with its pre-filters and criteria,
its top match, and the number of candidates found. Click one to reopen it instead of
describing the profile again. **Search History**, in the top right, shows the full list.
### Reading the results
Search and [Matching](/docs/jobs/matching) run on the same engine and return the same
result table. How the two halves of a search work together is explained in full there:
Why pre-filters narrow the pool and criteria rank what is left.
Scores from 0 to 100, the thumbs rating per criterion, and the reasoning behind them.
The **pre-filters** and **criteria** chips above the results stay editable. Open either
one to adjust the search and run it again, rather than describing the profile from
scratch.
### Act on the results
Work through the list with the **All**, **To Review**, and **Reviewed** tabs. Tick the
candidates you want, and an action bar appears at the bottom of the table.
* **Accept** moves the selected candidates into a pipeline. A stage picker opens so you
choose where they land, using the [stages](/docs/settings/stages) your workspace has
configured.
* **Mark as reviewed** moves them to the Reviewed tab, so you can keep working through
the ones you have not judged yet.
* **Candidate Actions** and **Communication Actions** hold the bulk operations on the
selected records, including **Generate Shortlist**, which writes the selection into a
[Word shortlist for a client](/docs/candidates/client-documents#shortlist).
* **Enrich** looks up missing emails and phone numbers for the selection. See
[contact enrichment](/docs/candidates/contact-enrichment).
### Change a field on many records at once
The same action bar carries an attribute update, which opens a dialog called **Update
Candidate Attribute**. Pick the attribute, set the value, and it is written to every
record you selected.
The picker covers your **custom attributes** and **Main Contact**, which makes it the way
to hand a batch of candidates to a different consultant after an import, or to set a
custom status across a list without opening the records one by one. It works on
candidates and contacts. Companies have no equivalent yet, so an off-limits flag across a
few hundred companies still has to be set record by record.
Bulk actions that write to records, such as adding a selection to a list or to a job,
handle **1,000 records at a time**. Larger jobs have to be split, or handed to support.
A bulk email reaches each person on their **work address first, then their personal one**,
taking the address marked primary where there is more than one. Somebody whose address sits
only in the personal field is still reached. That resolution is described in full under
[which address a recipient is reached on](/docs/outreach/campaigns#which-address-a-recipient-is-reached-on),
and unlike a campaign, a bulk email gives you no control over it.
A bulk email from **Communication Actions** is paced deliberately, leaving 30 to 90
seconds between messages so your provider does not read the burst as spam. A send to 50
people takes the best part of an hour, and there is no way to speed it up. Nothing is
stuck: watch them leave rather than sending again.
Use **Share Search**, in the top right, to hand the search over to a colleague.
## Organize results
* By default the table is sorted by **last activity**, so recently active candidates
come first.
* Sort on any sortable column from its header menu. Sorts are saved as part of the view.
* Results in the Search tab and in matching are always ranked by **match score**.
* Clear all filters to return to the full candidate list.
Two ranking rules override a column sort without saying so. A **similar to** filter on
job title orders the results by similarity, so clicking a column header appears to do
nothing; switch that filter to **is**, or add a last interaction filter, and the sort
comes back. The Search and matching tabs behave the same way, ranked by match score.
To count the results of a search, **select all**: the count appears with the selection.
There is no total on the table itself.
Every other place Spott uses AI is mapped out in [AI in Spott](/docs/get-started/ai-in-spott).
# Updating a Candidate Profile
Source: https://docs.spott.io/docs/candidates/update-profile-from-cv
Keep candidate profiles up to date with a new CV, a self-service update link for the candidate, or a LinkedIn refresh.
Spott detects and merges new information from CVs, so you never retype details by
hand. When a newer CV comes in, Spott compares it with the existing profile and only
applies what changed.
## Open the candidate's Experience subtab
Go to **Candidates**, open the candidate, and select the **Experience** subtab on the
Overview tab. The update buttons are at the top.
## Choose your update method
* **Request updated CV**: send the candidate a link where they upload their latest CV
and can update their email and phone number themselves. Their profile updates
automatically once the file is received. The flow asks the candidate for GDPR consent,
and their answer is **recorded on the profile**, under the **Consent** subtab. See
[consent management](/docs/settings/gdpr-consent).
* **Update with new CV**: upload a new CV file yourself, as a PDF, a DOCX, or an image
such as a photo of a printed CV. Spott shows you what changed, and you accept or
reject each suggested change before it is applied.
* **Check for updates**: refresh the profile from the candidate's LinkedIn profile.
LinkedIn profile updates use enrichment credits. You can find credit pricing on the
**Billing** page in Settings.
## How incremental updates work
Spott compares the new data with the existing profile and merges the differences. It
is a comparison, not an overwrite:
* New information, like recent roles, new education, or updated contact details, is
picked up as a suggested change.
* Existing fields stay unchanged unless the new data actually differs.
* Duplicates and minor variations, like job title variants, are handled automatically
to keep the data consistent.
How much control you have depends on the method:
* **Uploading a CV yourself** is supervised: you review the detected changes and
accept or reject each one.
* **CVs that arrive via the request link** are merged automatically, without a review
step.
* **CVs forwarded by email** (`cv@spott.io`) for an existing candidate are stored on
the profile as an attachment, but do **not** update the profile fields.
## Finalize and review
Once the update is processed:
* Review the updated sections, such as Experience, Education, and Details.
* The **Activity** panel on the profile shows every change and who or what made it.
Manual edits you make after a CV update always override the parsed results.
# Adding a Company
Source: https://docs.spott.io/docs/companies/adding-a-company
Create a client company in Spott from the Companies view, from a company preview, or straight from LinkedIn.
You can quickly navigate to the Companies page with `G` then `M`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
## Open the Companies view
From the left-hand navigation bar, select **Companies** to open your client list.
## Add a new company
### From the Companies view
* Click the **Add Company** button in the top-right corner of the page.
* A pop-up form appears where you can enter the company name.
Spott recognizes known companies while you type and shows them with their logo,
industry, and size. Pick a recognized company and Spott fills the record with the
available public information, including the logo and website. If the company is not
found, fill in the details yourself: description, industry, size, domain, and LinkedIn.
Once you have entered the details, click **Create company** to add the new client
company to your database.
### From a company preview
Company names are clickable throughout Spott, for example on a work experience entry
in a candidate's or contact's profile. Clicking one opens a preview of that company
with the public information Spott knows about it: description, industry, headcount over
time, funding rounds, and the current and past employees you already have in your
database.
That preview only has something to show for a company Spott can identify in its own
database. A name that arrived from a CSV, a migration, or manual entry often is not
linked to it, so clicking through gives you a near-empty preview rather than the profile
above. See [why a company has no logo](#why-a-company-has-no-logo), which is the same
missing link seen from the other side.
If the company is not a client record yet, click **Add as company** in the top right of
that preview. The record is created with the information from the preview, so you do
not have to fill it in again.
### From LinkedIn with the Chrome extension
You can also create a company without leaving LinkedIn. Open the company's LinkedIn
page and open the [Spott extension](/docs/settings/chrome-extension) side panel. If the
company is not in Spott yet, the panel says so and offers **Import as Company**, which
pulls the details straight from the company page. If it already exists, the panel shows
the record you have, so you can check it instead of creating a duplicate.
Importing one of the company's contacts creates the company as well, so either route
gets the client into Spott.
### From a CSV or Excel import
Companies are created automatically as part of a
[file import](/docs/get-started/import-csv): every company name on an
imported candidate or contact row is matched to an existing company or created as a
new one. Choosing **Any** as the import type also lets Spott recognize rows that are
companies in their own right.
## Why a company has no logo
Logos and the enriched company details behind them come from Spott's company database,
and a company record is only linked to it when Spott can identify the organization.
Importing from LinkedIn always makes that link. A company that arrives another way, from
a data migration, a CSV, manual entry, or the API, often does not, and adding a LinkedIn
URL or a website to the record afterwards does not create the link on its own.
The quick fix is to **upload a logo by hand**, the same way you can on a person's
profile. That settles the cosmetic half of the problem, on client-facing documents and
anywhere the company appears in a list.
It does not create the database link, though, so the enriched details stay missing. To
repair that properly, import the company from LinkedIn as above, which creates a linked
record, then [merge the two companies](/docs/companies/merge-companies) so you keep the
history on the original.
## Next steps
Find your way around the tabs, columns, and Details panel.
Link parent companies, subsidiaries, business units, and divisions.
# Company Hierarchy
Source: https://docs.spott.io/docs/companies/company-hierarchy
Link a client's parent company, subsidiaries, business units, and divisions so you see the whole group from any record in it.
Big clients are rarely one company. A group can hold separate legal entities per
country, business units with their own hiring managers, and divisions per product line.
The **Hierarchy** tab on a [company record](/docs/companies/company-record) connects
those records so you can see the whole group from any company inside it, instead of
keeping the structure in your head.
The tab shows the whole group as a tree. The company you are on is marked **Current**,
and every other company shows its relationship to the company above it. Open the
Hierarchy tab from any company in the group and you see the same tree.
## Add companies to the group
Click **Add child** to attach the companies that belong to this one. In the **Add
children** dialog, the parent is already filled in. Search for one or more companies,
pick the **Relation to parent**, and click **Add children**.
Use **Change parent** in the top right to attach the company you are on to a group, or
to move it under a different parent.
Every company in the tree has a **⋮** menu with the rest of the actions:
* **Add child**: hang another company under that one, which is how you build a tree more
than two levels deep.
* **Change relation to parent**: correct the relationship type afterwards.
* **Remove from hierarchy**: detach that company from the group.
## Types of relationships
The relation is set on the link between a company and its parent, so one group can mix
all three. It is required and defaults to **Subsidiary**.
| Relationship | Use it for |
| - | - |
| **Subsidiary** | A separate legal entity owned by the parent, such as a country entity or an acquired company that kept its own name. |
| **Business unit** | A commercial unit inside the group, often with its own budget and its own hiring managers. |
| **Division** | A structural part of the parent, for example split by product line or region. |
Picking the right type matters when you report on a client group or need to know which
entity actually signs the contract.
## Who can change the structure
Building and editing a hierarchy is governed by its own permission, so a role can be
allowed to read a client group's structure without being able to change it. If the
**Add child**, **Change relation to parent**, and **Remove from hierarchy** actions are
missing or refuse to save, that permission is off for your role. See
[managing access](/docs/settings/managing-access).
Worth restricting on a large account: the tree is shared, so a colleague who reparents
one entity changes the structure everyone else is reporting on.
## How deep a hierarchy goes
A hierarchy is a tree, not a single parent-child pair. A child company can have its own
children, as in the example above where a regional entity sits under another subsidiary,
so a group with a holding, national entities, and divisions under those is one connected
structure. Each company sits in **one hierarchy at a time**, with a single parent, which
keeps the tree unambiguous.
How deep it may go is capped for the whole workspace. **Settings → General → Maximum
company hierarchy depth** sets the number of levels, chosen from a list that starts at
two. Worth lowering where the group structure is a reporting dimension rather than a
filing system: a shallow cap keeps everyone modelling clients the same way, instead of one
team nesting every department and another keeping the whole group flat.
Lowering the cap does not break the groups you have already built. **Hierarchies that are
already deeper are kept**, and stay readable and reportable as they are. What changes is
which way they can move: a tree over the limit can only be **shrunk** until it is back
within it, so you cannot add another level to it in the meantime.
# The Company Record
Source: https://docs.spott.io/docs/companies/company-record
Find your way around a company record in Spott: its tabs, columns, Details panel, and suggested candidates.
A company record brings everything about one client together: the jobs you run for
them, the people you talk to, the candidates you placed, and the documents in between.
## Explore the tabs
After creating the company, you can edit and add more information in the company
record view. The main tabs are:
* **Jobs**: open or past job orders for this client, with an aggregated pipeline overview.
* **Speculative**: candidates presented to this client without an open role.
* **Notes**: internal notes for your team.
* **Contacts**: people linked to this company, with their contact details and role.
* **Files**: uploaded documents.
* **Tasks**: to-dos and reminders.
* **Placements**: candidates who are or have been placed at this company.
* **Hierarchy**: parent and child companies, and the type of relationship between them.
See [company hierarchy](/docs/companies/company-hierarchy).
Depending on the features enabled for your workspace, you may also see
**Opportunities** and **Matching** tabs. See
[suggested candidates for a company](#suggested-candidates-for-a-company).
The columns you see in the **Jobs** and **Contacts** tabs of a company record mirror
the columns configured on the main **Jobs** and **Contacts** views. Change them there
in **View Settings** and the company record follows. See
[using views](/docs/settings/using-views).
The **Jobs** tab **sorts**, so an account with a long history opens on what matters now
rather than on whatever order the jobs happen to be in. Selecting rows in these tabs
also reaches the [contacts linked to them in bulk](/docs/contacts/search-contacts#5-reach-contacts-in-bulk-from-another-table).
## The Details panel
The **Details** panel on the right is always visible, regardless of which tab you are
in. It holds the company's fields, including the **Tax Identifier** (VAT number, with
automatic validation) and any custom fields your workspace uses.
Keeping your client records complete and using custom attributes will greatly improve
your ability to search, filter, and report on your client data in Spott.
## Suggested candidates for a company
The **Matching** tab on a company record works from the company's location instead of a
job's requirements. It lists **Suggested Candidates** from your database who are within
a given distance of the client, with their location, current or last company and role,
how long they have been active there, and their institution.
Drag the **Within range** slider to widen or narrow the search: 10, 25, 50, 100, or 250
kilometers around the company. The list updates with the range, so you can start tight
and open up when a client is in a thinner talent market.
This is the fastest way to see who you already have near a client, for example when you
prepare a speculative approach or a client visit. For matching against a concrete role,
with match scores and criteria, use the [job's Matching tab](/docs/jobs/matching)
instead.
## Deleting a company
Deleting a company **deletes its jobs along with it**, including open ones, and none of
it can be recovered. There is no trash and no undo, and support cannot restore a
deleted company for you. Where a client has simply gone quiet, move them to a closed
stage rather than deleting the record.
## Next steps
Link parent companies, subsidiaries, business units, and divisions.
Link the right people to this client.
# Merging Records
Source: https://docs.spott.io/docs/companies/merge-companies
Merge duplicate people, companies, or jobs to consolidate information into a single record.
When you identify a duplicate, whether it is a person, a company, or a job, you can
merge the records to consolidate all information into a single place.
## From a record
1. Navigate to one of the records you want to merge.
2. Open the **Actions** menu in the top-right corner of the page.
3. Select the merge action:
* **Merge 2 people** on a candidate or contact profile
* **Merge 2 Companies** on a company record
* **Merge 2 Jobs** on a job record
4. Pick the duplicate record and follow the prompts to complete the merge.
## From a list view
You can also start a merge straight from a list view, without opening a record first.
1. Select the two duplicates with the checkboxes in the list.
2. An action bar appears at the bottom of the screen showing how many records are
selected.
3. Click the actions button in that bar and choose the merge action:
* **Candidate Actions** > **Merge 2 people**
* **Contact Actions** > **Merge 2 people**
* **Company Actions** > **Merge 2 Companies**
* **Job Actions** > **Merge 2 Jobs**
4. Review the side-by-side comparison and confirm.
Select **exactly two** records: merging works two records at a time, so the action is
not offered for a larger selection.
Merging requires the matching permission (for example, who can merge candidate or
contact records is controlled by your role).
Because every person exists only once in Spott, merging two people combines their
candidate and contact roles, notes, and history into one record. If one of the two
is a candidate, the merged record stays a candidate.
If nothing appears to happen right after merging, give the system a moment and check
if the merge has completed.
# Organizing Companies
Source: https://docs.spott.io/docs/companies/organizing-companies
Customize, filter, and sort your company records in Spott for effortless organization.
You can quickly navigate to the Companies page with `G` then `M`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
The **Companies** view in Spott is fully customizable, giving you control over what
information you see, how it is displayed, and how it is organized.
## Customizing columns
Your client list is displayed as a table, with each column representing an attribute
such as **Name**, **Stage**, **Contacts**, **Size**, **Industry**, or **Domain**. You can:
* **Add columns**: click **View Settings** in the top right corner and toggle on the
attributes you want to see.
* **Hide columns**: in View Settings, click the three dots next to a column and remove it.
* **Reorder columns** by dragging them left or right, in the table or in View Settings.
Column changes are saved as part of your view, and a view has to be saved explicitly.
See [using views](/docs/settings/using-views). You can create custom company fields
from Settings.
## Searching
The search bar finds companies by name and keywords. It supports full **Boolean
queries** (AND, OR, NOT); Spott switches to Boolean mode automatically when your query
contains double quotes.
## Filtering your data
Add filters from the filter menu above the table. Filters include:
* **Stage**: track whether a client is a Lead, Prospect, or another stage
* **Lists**: companies on a specific list
* **Location**: find clients in or around a specific location, or by [ZIP or postal
code](/docs/candidates/search-candidates#apply-structured-filters)
* **Company**: name, size, and industry
* **Dates**: created at and next task due
* **Last Interaction**: when the last touchpoint happened, and with whom
* Any **custom fields** your workspace has configured
Use these filters to quickly find the clients that matter for your current task.
## Sorting your records
Order your list by key attributes such as:
* **Company Name**
* **Created At**, newest or oldest first
* **Modified At**
* **Domain**
* **Next Task Due**
* **Last Interaction Date**
Sorting is especially useful for prioritizing follow-ups or reviewing recent activity.
Combine filtering and sorting for the most precise view. For example, see only Leads
in the Tech industry, sorted by the most recent interaction.
# Companies Quickstart
Source: https://docs.spott.io/docs/companies/quickstart
Explore all guides related to companies in Spott, from creating company records to managing linked jobs, contacts, and candidates.
Companies are your client records in Spott. They tie together the jobs you run for a
client, the contacts you work with, and the candidates you place there.
Create a client record from Spott, a company preview, or LinkedIn.
Find your way around the tabs, columns, and Details panel.
Link parent companies, subsidiaries, business units, and divisions.
Customize columns, filters, and sorting on the Companies view.
Consolidate duplicate companies into one record.
Link the right people to your client companies.
# Adding and Managing Contacts
Source: https://docs.spott.io/docs/contacts/adding-a-contact
Add a new client contact to Spott, link them to a company, and find your way around the contact profile.
You can quickly navigate to the Contacts page with `G` then `O`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
## 1. Open the Contacts view
From the left-hand navigation bar, go to **Contacts** to see all client contacts in
your system.
## 2. Group contacts by company
At the top-right of the Contacts view, you can toggle **Group by company**.
* **On**: contacts are grouped under their company name, so you see everyone from the
same organization together.
* **Off**: all contacts are shown in a single list, sorted according to your chosen
sort option, for example Last Activity Date.
Use **Group by company** when you want to work in a client-centric way. Disable it
when you prefer to sort and filter by individual contact attributes.
## 3. Add a new client contact
There are three ways to create a contact in Spott:
### Add a contact manually
Click the **Add Contact** button in the top-right corner.
Search for an existing person in Spott, or type a new name and create the person on
the spot. Every person exists only once in Spott, so if the person is already in your
database (for example as a candidate), the contact role is added to the same record.
Then pick the **Company** the contact works for and click **Add Contact**.
### Add a contact via the Chrome extension
Import contacts straight from LinkedIn with the
[Spott Chrome extension](/docs/settings/chrome-extension).
### Add contacts in bulk from a file
The import wizard is not candidate-only: upload a CSV or Excel file, choose
**Contacts** as the import type, and each row becomes a client contact linked to the
company in that row. Up to 1,000 records per import. See
[Import from CSV or Excel](/docs/get-started/import-csv) for the full list of
columns you can map.
## 4. The contact profile
The contact profile works just like the
[candidate profile](/docs/candidates/managing-candidates).
### Overview tab
* **Summary**: an AI summary of the contact and suggested field updates based on the
whole profile.
* **Notes**: all notes related to this contact and their jobs.
* **Experience**: work experience and education.
* **Communication**: view and send email or WhatsApp messages.
* **Files**: job descriptions, briefing documents, terms.
* **Tasks**: follow-ups, so you never miss one.
The side panel on the right is the same as for candidates: **Details**, **Activity**,
and **Ask AI**.
### Contact tab
* **Jobs**: all jobs this contact is tagged on.
* **Speculative**: all candidates presented proactively to this contact.
* **Companies**: the current and past companies this contact is related to.
Depending on the features enabled for your workspace, you may also see an
**Opportunities** subtab.
## One person at several companies
A director who sits on two boards, or a manager who has moved, does not need a second
record. On the contact, open the **Contact** tab, then **Companies**, then **Add to
company**.
Someone linked to more than one company then shows **one row per company** in the
Contacts list, which is why a name can appear twice in a table that is otherwise one row
per person. The profile itself carries all of the companies together.
A job move is not automatic for contacts. Where a candidate can be refreshed from a CV or
from LinkedIn, a contact who changes employer stays attached to the old company until you
add them to the new one.
## Editing a contact
* **The name** is edited inside the contact record, in the side panel under the
**Personal** section.
* **The LinkedIn URL** lives under **Show all values** in the Details panel. If the
LinkedIn tab reports no URL on file, that is where to add it, rather than on the tab
itself.
* **A leaving date** cannot be earlier than the day the company link was created, so a
historical departure may be refused until that link is corrected.
### Greyed out contacts
A contact whose name shows greyed out and in italics is **inactive**, which follows from
the start and end dates on their company link. Inactive contacts are left out of global
search, though the Contacts table still finds them. Someone who seems to have vanished
from search is usually here rather than deleted.
**Deleting a contact leaves the person behind.** Creating a contact also creates a
person record, and deleting the contact removes only the contact role. Re-importing
them then reports that they already exist. To remove them completely, delete the person
too, from the three dots at the top right of the record.
Deleted records cannot be restored. There is no trash and no undo, and Spott cannot
reverse a bulk deletion for you, so check a selection before you confirm one.
Keeping client contacts up to date ensures you always have the right people connected
to the right clients.
# Contacts Quickstart
Source: https://docs.spott.io/docs/contacts/quickstart
Explore all guides related to contacts in Spott, from adding new records to managing client relationships.
Contacts are the client-side people you work with: hiring managers, HR partners, and
decision makers. A contact is the same kind of record as a candidate. One person can
be both, with a single history.
Create a contact, link them to a company, and tour their profile.
Bulk add contacts and their companies from a CSV or Excel file.
Find the right contacts with search, filters, and sorting.
Manage the client companies your contacts belong to.
How Spott keeps one record per person, even when roles change.
# Searching Contacts
Source: https://docs.spott.io/docs/contacts/search-contacts
Find and organize client contacts in Spott using search, filters, and sorting.
You can quickly navigate to the Contacts page with `G` then `O`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
## 1. Open the Contacts view
From the left-hand navigation bar, select **Contacts** to open your full contact list.
Any filtering and sorting you do here can be saved as a view, so you come back to the
same list tomorrow. See [using views](/docs/settings/using-views).
## 2. Search with keywords
Use the search bar at the top of the Contacts view to find contacts by text in their
profile fields, such as their name, company, or role.
The search bar supports full **Boolean queries** (AND, OR, NOT). Spott switches to
Boolean mode automatically when your query contains double quotes.
## 3. Filter your contacts
Open the **Filters** menu above the table. Filters include:
* **Current Job Title**, **Company**, and **Stage**
* **Lists**: contacts on a specific list
* **Location**: the contact's or the company's location, by named area, by a radius
around a point, or by [ZIP or postal
code](/docs/candidates/search-candidates#apply-structured-filters)
* **Main Contact** and **Main Contact Team**: who owns the relationship
* **Dates**: last interaction, last activity, next task due, and created at. Date
filters take [relative values](/docs/settings/using-views#relative-dates) such as
"last 30 days", so a saved view keeps meaning the same thing tomorrow.
* **Email** and **Phone number**: filter for contacts that have one or that are missing
one, the same way you can on candidates. Filtering on an empty email is the quickest
way to find who needs [enrichment](/docs/candidates/contact-enrichment) before a
campaign goes out. Phone numbers also filter on **area code**, which is the practical
way to slice a list by where people actually are when the location field is thin.
* More fields under **Other**, such as first name, last name, last interaction with,
active, department, and LinkedIn URL
* Any **custom fields** your workspace has configured
Combine multiple filters to narrow your results to the exact set of contacts you need.
## 4. Sort your results
Arrange your contact list by the field of your choice. Sorting options include:
* First Name and Last Name
* Company Name
* Last Interaction Date and Last Activity Date
* Next Task Due
* Start Date and End Date
* Created At
Sorting can be applied together with filters to quickly focus on the most relevant
contacts.
Filters you apply appear as chips at the top of the list. Remove any filter by
clicking the "X" on its chip to broaden your results again.
## 5. Reach contacts in bulk from another table
You do not have to be on the Contacts table to act on contacts. Select rows on a
**Companies**, **Jobs**, or **Opportunities** table and the action bar at the bottom
reaches **every contact linked to the records you selected**.
Under **Communication Actions** you can then, for the whole selection at once:
* **Send an email**
* **Send an SMS** or a **WhatsApp Business message**, on a connected
[number](/docs/inbox/sms)
* **Present a candidate** to them
* **Enroll them in a campaign**
**Send an email** reaches each contact on their **work address first, then their personal
one**, taking the address marked primary where there is more than one, so a contact whose
address sits only in the personal field is still reached. See
[which address a recipient is reached on](/docs/outreach/campaigns#which-address-a-recipient-is-reached-on)
for the full order. A campaign lets you narrow that with **Deliver to**; a bulk email does
not.
This is the fast path for the things that used to mean opening records one at a time:
mailing the hiring managers on twelve open jobs, or enrolling every contact at an
account into a [campaign](/docs/outreach/campaigns).
Check what the selection actually covers before you send. Selecting three jobs at one
company can resolve to the same contact more than once, and a contact linked to
several selected records should only hear from you once.
# AI in Spott
Source: https://docs.spott.io/docs/get-started/ai-in-spott
Everything Spott's AI does for you, from CV parsing to matching, meeting notes, and agents on every record.
AI is not a feature bolted onto Spott: it runs through every part of the platform.
This page is the map of everything it does, with links to the details.
## Getting data in
* **CV parsing**: drag and drop [up to 1,000 CVs](/docs/candidates/adding-candidates)
and Spott extracts profiles for your review, or forward CVs to `cv@spott.io` for
fully automatic processing.
* **CV diffing**: re-upload a newer CV and Spott
[detects and merges only what changed](/docs/candidates/update-profile-from-cv).
* **Enrichment**: find missing emails, phone numbers, and LinkedIn URLs
[automatically](/docs/candidates/contact-enrichment), and keep profiles fresh with
[auto-updating profiles](/docs/settings/auto-updating-profiles).
* **AI-filled columns**: define an attribute with a prompt and Spott
[fills it for every record](/docs/settings/ai-filled-columns).
* **CSV mapping**: on [CSV import](/docs/get-started/import-csv), Spott reads
your column names and sample data and suggests where each column belongs.
## Finding the right people
* **Job matching**: AI ranks your whole database against a job's criteria with
[0 to 100 match scores and per-criterion explanations](/docs/jobs/matching).
* **Candidate matching**: the other direction. A candidate's Matching subtab
[suggests the jobs that fit them](/docs/candidates/candidate-applications), plus
similar candidates.
* **Company matching**: a client's Matching tab lists
[the candidates you already have near them](/docs/companies/company-record#suggested-candidates-for-a-company).
* **AI text to filters**: type "React developer with 5+ years in California" in the
filter box and [Spott builds the filters](/docs/candidates/search-candidates#ai-text-to-filters).
* **Inbound triage**: every [applicant is scored](/docs/jobs/inbound-applications)
against the role automatically.
## Capturing conversations
* **Note Taker**: joins your online meetings, transcribes them in any language, and
writes [structured meeting notes](/docs/notes/note-taker) using your
templates.
* **Call intelligence**: every [VoIP call](/docs/calls/phone-calls) is
transcribed and mined for suggested profile updates and follow-up tasks.
* **Suggested field updates**: the
[candidate's Summary subtab](/docs/candidates/managing-candidates) proposes profile
updates picked up from recent calls, meetings, and notes.
## Writing for you
* **Job descriptions**: [generate or rewrite vacancy texts](/docs/jobs/job-portal)
in your templates and any language.
* **Campaign content**: [generate outreach copy](/docs/outreach/campaigns) with
instructions and context, per recipient.
* **Message templates**: drop an
[AI Generated content block](/docs/inbox/message-templates#personalize-with-variables)
into a template and it writes that passage from your instruction.
* **Scorecards**: [generate an interview scorecard](/docs/candidates/interview-scorecards)
from the job's sourcing criteria, and let AI rate the answers once the interview
notes are in.
* **Formatted CVs**: [reformat any CV](/docs/candidates/client-documents) into your
agency's template from the candidate's profile.
* **Shortlists**: turn a selection of candidates into a
[written Word shortlist](/docs/candidates/client-documents#shortlist)
for a client, anonymized if you want.
## Agents everywhere
* **Ask AI** lives on [candidates](/docs/candidates/managing-candidates#ask-ai),
[jobs](/docs/jobs/job-details), [applications](/docs/jobs/applications),
opportunities, and [calls](/docs/calls/phone-calls): an agent that knows the whole
record and answers questions about it.
* **The [Spott MCP server](/docs/developers/mcp)** connects Claude, ChatGPT, and any
MCP-capable assistant to your workspace, so you can run the entire workflow from a
conversation.
All of this runs on the context in your records. Complete profiles, linked notes,
and synced communication make every AI feature measurably better. That is the real
reason to keep your data in Spott.
## Steering the AI
You are not stuck with the defaults. Three places in Settings shape what the AI
produces:
* **[Features](/docs/settings/features)**: an admin turns the AI capabilities on or off
for the whole workspace, including enrichment, AI-filled columns, and auto-updating
profiles.
* **[Templates](/docs/settings/templates)**: every template you control steers what the
AI produces. Insight Templates are the instructions behind call and meeting insights,
Job Description Templates steer generated vacancy texts, and presentation, note, and
email templates shape the rest.
* **[Personal preferences](/docs/settings/preferences)**: **Default AI Language** sets
the language Spott writes in.
## What the AI reads
Spott's AI works from your **notes**, **work experience**, and **CV files**.
**What about my messages?**
* **Email**: only **Ask AI** reads it, and only the mail synced to the record you are
standing on. That is what lets it answer "summarize the situation with this
candidate". No other AI feature touches your email.
* **WhatsApp**: **never read**, by any AI feature, Ask AI included. Messages are
stored on the record and available to you, not to the AI.
# Dashboard
Source: https://docs.spott.io/docs/get-started/dashboard
Get an overview of your performance, pipeline, and daily activity in one central place.
You can quickly navigate to the Dashboard with `G` then `D`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
The Dashboard gives you a real-time snapshot of your recruitment activity, from
revenue and calls to open jobs and candidate progress. It is your personal home
screen when opening Spott.
## My Statistics
Use the **time period filter** on the top right to set the reporting period (for
example This week, This month, This quarter, or a custom range).
There is also a **user filter** for looking at a teammate's numbers rather than your
own, or at a [team](/docs/settings/managing-teams). It only appears if your role lets
you manage analytics: without that permission the Dashboard shows your own figures.
The metric cards show key performance numbers for the period. Open **Configure
Dashboard** to choose which metrics appear and drag them into the order you want. The
available metrics are:
* **Total Revenue booked**, **Total Placements added**
* **Total Jobs added**, **Total Candidates added**
* **Total Phone Calls (excl. attempted)**, **Total Outbound Calls**
* **Total Online Meetings**, **Total In-person Meetings**
* **Total CVs sent**, **Total Standard CVs sent**, **Total Speculative CVs sent**
* **Total 1st Interviews**, **Total 1st Standard Interviews**,
**Total 1st Speculative Interviews**
* **CV Sent Fill Rate**, **1st Interview Fill Rate**
Configure Dashboard is **workspace-wide**: the metrics you turn on or off affect
everybody's dashboards, not just your own.
### Set targets
**Configure Targets** turns the metric cards from a number into progress against a
goal, which is what makes the Dashboard worth opening daily.
Targets are set **per user and per metric**, in a grid: one row per teammate, one column
per metric such as Jobs Added, Candidates Created, Placements, successful phone calls,
or CVs sent. Leave a cell at 0 for anyone the target does not apply to.
Above the grid, **Time Window for Targets** says what period a target covers, for
example Every Month.
Changing the time window **rescales every target value automatically**, and targets
are saved against the window you picked. They then scale up or down to match whatever
time filter you apply to your insights, so a monthly target of 20 reads as 5 on a
weekly view rather than staying at 20.
### Drill down into a number
Click any metric card to open the records behind it, so you can go from "12 CVs sent"
to which twelve.
The Dashboard metrics are a fixed set. If you want to count something the cards
do not cover, for example notes with a specific label, build a custom insight in
[Reports](/docs/get-started/reports).
### Whose number it is
A KPI is credited to **the person who performed the action**, not to whoever owns the
application. Whoever drags the card to CV Sent gets the CV sent, and whoever marks the
placement gets the placement, even if a colleague owns the candidate.
Ownership itself follows from who added the candidate to the pipeline. That leaves one
case worth watching: an application that arrives on its own, from a job board or an
inbound feed, can end up with **no owner at all**, and its activity then appears on
nobody's dashboard. If a consultant insists their CVs sent are missing, check the owner
on those applications first.
Two more things shape what you see. Interviews and CVs sent are counted on the date the
card moved, not the date of the interview, which is set by the
[stage markers](/docs/settings/stages). And a placement split between colleagues is
credited whole to the user in **Placed by**; the split percentages only divide the
booked revenue.
## Pipeline Summary and Job Status
* **Pipeline Summary** shows the applications you own, per stage. You can **sort** it,
so the stages you care about most sit at the top instead of following the pipeline
order.
* **Job Status** shows the jobs you are on the team of, broken down by status. It sorts
the same way, so the statuses you work from sit at the top.
Both are clickable: select a stage to see who is behind the number.
These two widgets show where things stand today, so the time period filter above them
changes the metric cards and leaves these alone. Your filter choices are remembered when
you leave the Dashboard and come back.
Both widgets only count jobs whose **status** is marked as one to show in search, set per
status under [Settings → Stages](/docs/settings/stages). A Pipeline Summary that is empty
while the jobs clearly exist is the usual sign that the setting is off.
The Dashboard updates in real time as you log calls, add candidates, or move them
through stages.
**Home dashboard** in the Get Onboarded guide. The same ground as a walkthrough, with the filters, targets, and drill-downs in the order you meet them.
# Data Migration
Source: https://docs.spott.io/docs/get-started/data-migration
How Spott migrates your data from your previous system, with a validation step before go-live.
When you move to Spott from another CRM or ATS, our team runs the migration for you.
## Validation environment first
Your data is first migrated into a separate **validation environment**. You review it
there, together with our team, to confirm everything came across correctly, for example
candidates, contacts, jobs, notes, and placements, before it reaches your live
workspace. Only once you are happy with the result do we complete the migration to
production.
This means you get to check and sign off on the imported data before your team starts
working in it.
## Learn more
For a full overview of how a migration works and how to prepare your export, see the
[recruitment CRM migration guide](https://spott.io/resources/recruitment-crm-migration-guide).
# FAQ
Source: https://docs.spott.io/docs/get-started/faq
Answers to the questions our support team hears most, from syncing and enrichment to campaigns and the Note Taker.
The questions our support team hears most, with the short answer and where to read
more.
Can't find your answer here? Email [support@spott.io](mailto:support@spott.io), or ask
us from the chat bubble inside Spott.
## Email & calendar
It is not instant: Spott syncs years of email and calendar history and matches it
to the people in your database, which typically takes 8 to 12 hours for a normal
inbox. If your calendar looks empty right after connecting, give it time and
check again the next day.
If the error appears on the Microsoft or Google consent screen, your
organization's IT policy is blocking the permission grant, not Spott. A workspace
admin can allow Spott for the whole organization (in Microsoft Entra ID under
Enterprise Applications, or the Google equivalent). If you are the admin, tick
"allow for everyone in my organization" on the consent screen.
If they reach the recipient and appear in Spott but not in Outlook, the cause is
almost always a consumer-tier Microsoft plan, which routes outgoing mail through
an alias. The fix is a Microsoft 365 Business plan, arranged by your IT admin.
The owner of that mailbox restricted their sharing level. Everyone controls how
much colleagues see of their synced email under **Settings → Accounts**: metadata
only, subject line and metadata, or full access.
Blocked by design, for everyone including admins: it would expose the colleague's
entire email history with that address and bypass the email visibility model.
Go to **Settings → Domains**, add your domain, and create the DNS records shown
there. Sending from a verified domain protects your deliverability. Marketing
campaigns can only send from mailboxes on a verified domain.
## Candidates & data
Open one of the duplicates and use the **Actions** menu: Merge 2 people, Merge 2
Companies, or Merge 2 Jobs. Merging is pairwise: for three duplicates, merge
twice. See [merging records](/docs/companies/merge-companies).
The quick search bar matches names and keywords. For identifiers like an email
address or phone number, use global search (`⌘K` / `Ctrl+K`). For deep matching
on skills and experience, use the [Search tab](/docs/candidates/search-candidates),
which reads the whole profile including notes and attachments.
Add a filter (for example on status or jobs) and save the setup as a
[view](/docs/settings/using-views). Views remember filters, sorting, and columns.
Credits are only deducted when enrichment succeeds. Pricing is on the **Billing**
page in Settings. See [enrichment](/docs/candidates/contact-enrichment).
Yes. Use **Generate CV** on a candidate's Experience subtab or from their Files.
The templates are configured for your workspace; email `support@spott.io` to set up
your branded one. See [CVs & client documents](/docs/candidates/client-documents).
Only if the attribute is created as AI-filled from the start. Converting an
existing attribute later applies AI fill only to new records, and there is no
bulk backfill afterwards; values can be regenerated one record at a time.
## LinkedIn & the extension
Publicly available information only: name, role, company, experience, education,
location. Contact details visible only inside Recruiter or Sales Navigator cannot
be imported; use [enrichment](/docs/candidates/contact-enrichment) to find emails
and phone numbers instead.
Close and reopen the side panel (click the Spott icon in the browser toolbar
twice). Refreshing the LinkedIn page does not help, because the panel is a
separate context.
## Campaigns
Inside the campaign's **Delivery Window**: the hour window you set, optionally on
business days only. Sends are also staggered with randomized gaps and daily
limits per mailbox to protect deliverability, and new sending accounts are warmed
up gradually. See [campaigns](/docs/outreach/campaigns).
Yes. **Reply received** and **meeting booked** are exit criteria: the recipient
leaves the sequence automatically. After the last step, Spott keeps monitoring
replies for a cooldown period so late answers are still captured.
You can edit message content and step timing for steps recipients have not
reached yet. Structural changes (adding, removing, or reordering steps) are
locked once started: duplicate the campaign instead.
No, campaigns send from the creator's connected mailbox. Have the colleague
duplicate the campaign and enroll the recipients; the duplicate sends from their
inbox.
## Meetings & the Note Taker
It joins if any workspace colleague in the meeting has it enabled. Check your own
setting first, then ask colleagues in the invite to check theirs.
Not automatically. Around the scheduled time you can manually ask it to rejoin
from the meeting card on the Calendar; it resumes recording from that point.
The scheduler treats calendar events marked **Busy** or **Out of office** as
blocking. An all-day or multi-day event marked Busy wipes out those days: set its
status to Free or Tentative. Also check the booking link's own rules (booking
notice, buffers, weekly availability). See [the scheduler](/docs/calendar/scheduler).
## Jobs & matching
Three usual causes: hard filters that are too strict (aim for a filtered pool of
roughly 2,000 candidates or fewer, but not near zero), criteria that read like
keywords instead of an ideal profile, and shallow candidate data. The AI can only
rank what it can read, so CVs, notes, and transcripts matter. See
[matching](/docs/jobs/matching).
Structural scorecard edits delete every per-candidate scorecard on that job so
scoring stays comparable, and this is unrecoverable. The UI warns you first.
Finalize the structure before the team starts scoring.
Not currently; the timestamp is system-generated on public job listings.
## Placements
The field's data is removed from every past placement that used it, not just
future ones. Renaming and adding fields are safe. Export affected placements
first if you need the history.
The table shows core fields only, because different placements can use different
forms. Open a placement's detail page to see and edit its form values. Exports to
Excel do include the nested form values.
## AI assistants & API
Through the [Spott MCP server](/docs/developers/mcp): add Spott in
[Claude](/docs/developers/claude) or [ChatGPT](/docs/developers/chatgpt) and approve
the OAuth prompt. You can then search, update records, and run your workflow from
the conversation.
See [the Spott API](/docs/developers/api-overview) and
[webhooks](/docs/developers/webhooks). API keys are generated under
**Settings → API** and are bound to the user who creates them.
Not answered here? Email [support@spott.io](mailto:support@spott.io). We keep this
page updated with what customers ask us most.
# Global Search
Source: https://docs.spott.io/docs/get-started/global-search
Jump to any record in the workspace from anywhere, by name, email address, phone number, or record ID.
Global search is the fastest way to reach a record you already know exists. It is not the
place to build a shortlist: for that, use the filters on a table or the AI-ranked
[Search tab](/docs/candidates/search-candidates).
Open it with `⌘K` on a Mac or `Ctrl+K` on Windows, or click **Search** in the top left.
## What it matches
* **Names** of people. A person is one result, however many places they appear in your
workspace: someone who is a contact at two companies, or a contact who is also a
candidate, no longer comes back as a row per role.
* **Jobs, lists, opportunities and companies**, on their own names. Searching `engineer`
brings back the jobs called Software engineer next to the lists you built of software
engineers, and a company name returns the company itself.
* **Email addresses**, including personal ones. This is the reliable way to answer "who is
this person who just emailed me", which a table search on names cannot do.
* **Phone numbers**, so an unrecognised number on your screen becomes a name.
* **Record identifiers**, the short code shown on a record such as `#42B8C269C`. Turn
these on with **Show Record IDs** under **Settings → Features → Workspace**, which both
displays the ID on a record and lets people copy it.
That short code is the **tail of the record's full identifier**, not the whole thing.
**Copy** hands you the full one, which is longer than what the header shows and is the
form that search and the [API](/docs/developers/api-overview) expect. Nothing is wrong
when the copied value does not look like the code on screen.
Each result carries a badge naming its type, such as **Person**, **Job**, **List** or
**Opportunity**. Jobs and opportunities put the company they belong to in front of their
own name, so two jobs with the same title stay easy to tell apart.
### Combine what you remember
You rarely remember a name exactly, so search takes the pieces you do have and puts them
together:
* **Part of a first name with a last name**, for when the spelling of the first name is
the part you are unsure of.
* **A first name with a company name**, which is usually how you remember someone you met
once: the name that stuck and where they work.
Results also **prefetch** as you move through them, so the panel on the right fills
immediately instead of loading each time you change your selection.
## Read the record without opening it
Selecting a result fills the panel on the right, and for most lookups that panel is the
answer, so you never leave the page you were on:
* Job title, company, and location
* Personal email, personal phone, and LinkedIn
* Any custom attributes carried on the record, for example a tech stack
* **Main contact**, whoever on your team owns the relationship
* **Last interaction**, how long it has been since anyone spoke to them
The panel follows the type of the result. Select a job instead and it shows who is working
on it, whether it is open, its location, salary range and employment type.
Because it reads without opening, global search is the right tool mid-call. Type the number
that is ringing, read who they are and when a colleague last spoke to them, and answer
knowing both.
The `G` then letter jumps, the `A` then letter add menu, and the rest.
# Spott in Five Minutes
Source: https://docs.spott.io/docs/get-started/how-spott-is-organized
The record types, the people model, and how the ATS and CRM sides of Spott fit together.
Five minutes on Spott's building blocks makes everything else click. Spott is built
around a small set of **record types** that link to each other.
## One person, one record
The most important idea in Spott: **every person exists only once**. A person can be
a **candidate**, a **client contact**, or both at the same time, and their notes,
emails, and history stay on the same record even when they change companies or
roles.
That is why an email address, phone number, or LinkedIn URL can belong to only one
person in your whole database, and why re-adding someone enriches their existing
profile instead of creating a duplicate. See
[managing candidates](/docs/candidates/managing-candidates).
## The record types
* **Candidates**: the people you place. Their profile carries experience, documents,
communication, and AI context. ([Candidates guide](/docs/candidates/adding-candidates))
* **Contacts**: the client-side people you work with: hiring managers, HR partners.
Same record type as candidates, different role. ([Contacts guide](/docs/contacts/quickstart))
* **Companies**: your clients. They tie together jobs, contacts, and placements.
([Companies guide](/docs/companies/quickstart))
* **Jobs**: the roles you fill for a client, each with its own pipeline,
advertising, and portal. ([Jobs guide](/docs/jobs/quickstart))
* **Opportunities** (optional): deals you are working to close that are not a
specific role yet. ([Opportunities guide](/docs/opportunities/opportunities))
Two record types connect the others:
* **Applications** link one candidate to one job and carry the stage, scorecards,
and interviews. ([Applications guide](/docs/jobs/applications))
* **Placements** record a successful hire: the candidate, the job, the client, and
the fee. ([Placements guide](/docs/placements/placements))
## The CRM side and the ATS side
* The **CRM side** is about winning business: companies, contacts, and
opportunities, moved through stages you define.
* The **ATS side** is about filling roles: jobs, candidates, applications, and
placements.
The handoff between them is explicit: a won opportunity
[converts to a job](/docs/opportunities/opportunities), and the recruiter takes it from
there.
## Stages everywhere
Jobs, applications, companies, and opportunities all move through **stages**, and
every stage set is customizable under **Settings → Stages**. Stages drive the
Kanban boards, the dashboards, and your reports.
## Everything feeds the AI
[Notes](/docs/notes/quickstart), emails, CVs, and transcripts are not just history: they are the context
Spott's AI uses for matching, summaries, and suggestions. The more complete your
records, the better everything works. See [AI in Spott](/docs/get-started/ai-in-spott).
# Import from CSV or Excel
Source: https://docs.spott.io/docs/get-started/import-csv
Bulk add candidates, contacts, and companies to Spott from a CSV or Excel file, and see exactly which columns you can map.
The import wizard lets you bulk add people to Spott, for example when migrating
from another system or uploading a sourcing list. Each row in your file becomes one
person. You can import **up to 1,000 records** per import, from **CSV or Excel
(.xlsx)** files.
## What you can import
When you upload a file, you choose what the rows represent:
| Option | What it does |
| - | - |
| **Candidates** | Imports names, emails, work history, education, and more as candidate records. |
| **Contacts** | Imports client contacts, their roles, and their companies. |
| **Any** | Spott detects automatically whether each row is a candidate, a contact, or a company. |
**Yes, you can import contacts too.** The wizard is not candidate-only. Pick
**Contacts** to bulk-load client contacts, or **Any** if your file mixes candidates,
contacts, and companies.
Companies do not need their own file. Whenever a row has a company on it, Spott
matches it to an existing company or creates a new company record, and links the
person to it.
Under **Actions** you can also **Add to list** or **Add to job**, which applies to
every record in the import.
## Start an import
Navigate to **Candidates** from the main sidebar.
In the top right corner, click **Import / Export**, then select **Import from CSV**.
This opens the import wizard. Admins can also reach it from **Settings > Import**.
Select the CSV or Excel file from your computer, choose **Candidates**,
**Contacts**, or **Any**, optionally add a List or Job, then click **Start Import**.
Spott analyzes the file and prepares the mapping.
## Map columns to Spott fields
Spott reads your column names and sample data and **suggests a mapping for each
column automatically**. Your headers do not have to match Spott's field names:
"Job Title" is recognized as Work Experience Title, "City" as Location. Review the
suggestions and adjust where needed. For each column you can:
* Accept the suggested Spott field
* Pick a different **Spott field** from the dropdown (use the search box at the top)
* **Skip the column** so it is not imported
Skipped and unmapped columns are ignored. Nothing else in the file is imported, so a
column only lands in Spott if it is mapped to one of the fields below.
### Fields you can map to
These are the Spott fields available in the mapping dropdown. The list is complete:
if a column has no matching field below, it cannot be imported.
| Spott field | Example value |
| - | - |
| First Name | `Anna` |
| Last Name | `Peeters` |
| Gender | `Female` |
| Nationality | `Belgian` |
| Birth Date | `1989-04-17` |
| Location | `Antwerp, Belgium` |
There is no Full Name field: split names into a **First Name** and a **Last Name**
column. If your file only has a full name column, add the split columns before
uploading and skip the combined one.
| Spott field | Example value |
| - | - |
| Work Experience Title | `Finance Manager` |
| Work Experience Company | `Acme` |
| Work Experience Description | `Led a team of six...` |
| Work Experience Location | `Brussels` |
| Work Experience Start Date | `2021-03-01` |
| Work Experience End Date | `2024-09-30` |
One row creates **one** work experience entry. Leave the end date empty for the
current role.
| Spott field | Example value |
| - | - |
| Education Degree | `Master of Economics` |
| Education Institution | `KU Leuven` |
| Education Field of Study | `Economics` |
| Education Description | `Thesis on...` |
| Education Grade | `Cum laude` |
| Education Start Date | `2007-09-01` |
| Education End Date | `2011-06-30` |
One row creates **one** education entry.
| Spott field | Example value |
| - | - |
| Language | `Dutch` |
| Language Fluency | `Native` |
| Spott field | Example value |
| - | - |
| Email Address | `anna.peeters@example.com` |
| Phone Number | `+32 470 12 34 56` |
| LinkedIn URL | `https://www.linkedin.com/in/annapeeters` |
These are the fields Spott deduplicates on, so include at least one of them.
| Spott field | Example value |
| - | - |
| Note | `Met at the Brussels finance meetup` |
The note is added to the person's profile as a regular note.
**Custom fields cannot be mapped.** The dropdown only offers the standard fields
listed above, so [custom fields](/docs/settings/customizing-candidate-profiles) your
workspace has configured are not filled by an import. Set those on the records
afterwards.
A row holds a single work experience and a single education entry. To import a full
career history, use a CV upload or the
[Chrome extension](/docs/settings/chrome-extension) instead, or enrich the
candidates after the import.
### Example file
A file with these headers imports cleanly, without any manual remapping:
```csv candidates.csv theme={null}
First Name,Last Name,Email Address,Phone Number,LinkedIn URL,Job Title,Company,City,Degree,Institution
Anna,Peeters,anna.peeters@example.com,+32 470 12 34 56,https://www.linkedin.com/in/annapeeters,Finance Manager,Acme,Antwerp,Master of Economics,KU Leuven
Tom,Janssens,tom.janssens@example.com,+32 495 98 76 54,https://www.linkedin.com/in/tomjanssens,Controller,Globex,Ghent,Bachelor of Accountancy,Odisee
```
Spott maps `Job Title` to Work Experience Title, `Company` to Work Experience
Company, and `City` to Location. The same file works for a contact import: the
company column is what links each contact to their client company.
## Complete the import
Confirm the mapping to start the import. Spott creates a record for every row. After
the import completes, the records appear on the Candidates or Contacts page and can
be searched, filtered, exported, and added to Lists.
**An import creates records, it does not update them.** When a row matches an
existing person, that person is still added to the Job or List you selected, but
their existing data is not changed by the import.
**Company names need an exact match.** When a row has no other unique identifier,
companies are matched on name only. Matching is case-insensitive but otherwise
exact: "Acme" and "acme" match, "Acme" and "Acme BV" do not. Spott does keep a
manually curated list of aliases for well-known companies (so "Accenture GmbH"
and "Accenture PLC" resolve to the same company), but for names not on that list,
anything that does not match exactly creates a new company record.
## Tips for successful imports
* Include at least one unique identifier per person. **Email or LinkedIn URL is
recommended**, so Spott can deduplicate against existing records.
* Map first name and last name for clean records.
* Remove empty rows before uploading.
* Use UTF-8 encoding for CSV files for best compatibility.
* Use a consistent date format across the file, ideally `YYYY-MM-DD`.
* Double check email and phone mappings to avoid data landing in the wrong field.
* Importing into a job adds the people as applications, but **cannot set their
application status or add comments**. Set those in the pipeline after the import.
A LinkedIn URL column imports the link to the person's profile, not the profile
content itself. To pull in full LinkedIn profile data, use the
[Chrome extension](/docs/settings/chrome-extension)
or enrichment after the import.
Migrating a full database from another ATS or CRM is a different job, and our team
runs it for you. See [Data migration](/docs/get-started/data-migration).
# Fill a role, end to end
Source: https://docs.spott.io/docs/get-started/recruiting-workflow
The complete Spott workflow: from creating a job to placing a candidate, with links to every step.
This is the spine of Spott: how a role goes from intake to placement, and which page
covers each step.
[Add the job](/docs/jobs/adding-a-job) and link it to the client company. Fill
the **Overview** tab with sourcing criteria, attach the client's job
description, and link your intake call notes. This context powers everything
that follows.
Work three channels in parallel:
* **[Matching](/docs/jobs/matching)**: AI ranks your database against the role.
The job's Matching tab and the
[Search tab](/docs/candidates/search-candidates) run the same engine, so use
whichever you are standing in: the job when you are working one role, Search
when you are hunting across the database. Add the people you like to the job.
* **[Advertising](/docs/jobs/job-portal)**: publish
the vacancy to your job board, LinkedIn, or
[multiposters](/docs/integrations/multiposting), and review applicants on the
[Applicants tab](/docs/jobs/inbound-applications).
New people enter the database via [CV upload, email forwarding, or the
extension](/docs/candidates/adding-candidates), deduplicated automatically.
Track everyone on the
[Candidates tab](/docs/jobs/job-pipeline) of the job.
Log conversations with [notes](/docs/notes/adding-notes), let the
[Note Taker](/docs/notes/note-taker) capture your meetings, and
[reach out at scale with campaigns](/docs/outreach/campaigns). Each
[application](/docs/jobs/applications) carries its scorecards and
interviews.
Present candidates directly from the pipeline, or publish a shortlist to the
[Company Portal](/docs/jobs/company-portal) where the
client reviews candidates and gives feedback in real time. Schedule interviews
with the [calendar](/docs/calendar/schedule-a-meeting) or
your [booking links](/docs/calendar/scheduler).
Mark the winning candidate as placed and record the
[placement](/docs/placements/placements): fees, dates, and your custom placement
form. Placements feed your revenue reporting automatically.
Follow your numbers on the [Dashboard](/docs/get-started/dashboard) and in
[Reports](/docs/outreach/reports): pipeline funnels, time in stage, fees, and
activity.
Much of this can run itself: [automations](/docs/settings/automations) open the
placement dialog when you move someone to Placed, send consent emails on stage
changes, or close the job when the role is filled.
Working deals before there is a role? Start on the CRM side with
[opportunities](/docs/opportunities/opportunities) and convert to a job when the deal
closes.
# Building Reports
Source: https://docs.spott.io/docs/get-started/reports
Build custom reports from live data: pick a data source, an insight type, and a visualization, then filter, group, and set targets.
This page is the step-by-step build. For finding your way around the section, the
ready-made reports, and drilling into a number, see [Reports](/docs/outreach/reports).
While the [Dashboard](/docs/get-started/dashboard) shows a fixed set of activity
metrics, **Reports** is the fully custom builder: you choose what to count, how to
slice it, and how to draw it. Every number stays live, reading directly from your
workspace data. You find Reports in the left navigation under **Tools**.
A report is made up of one or more **insights**. Each insight answers one question,
for example "how many jobs did we add per stage" or "how many Reference Gained notes
did the team log this month". Create a report with **New Report**, then click
**Add New Insight** to fill it. A report also has its own **Time period** filter
that applies across its insights.
Every workspace starts with three ready-made reports: **Client breakdown** (on
companies), **Candidates overview**, and **Team performance** (on users, including
fee income per user and a sortable team leaderboard). Use them as they are, or
duplicate an insight as a starting point for your own.
## Configuring an insight
Give the insight a title, configure it in the right-hand panel while the left side
previews the live result, and click **Save Chart** when you are done.
You build an insight by making four choices:
1. **Data source**: the record type the insight reports on: Candidates, Jobs,
Applications, Companies, Opportunities, Contacts, Users, Notes, **Interactions**,
Placements, or Rejections. Pick **Multi-source** to combine several record types in
one view.
To report on outbound mail, use **Interactions**. It exposes emails sent, and only
emails sent, so it answers "how many did we send" rather than what happened to them
afterwards. Opens and clicks live in [Marketing](/docs/outreach/marketing).
2. **Type of insight**: how the data is measured.
3. **Metrics**: what is counted. An insight can hold multiple metrics; click **Add
metric** to compare counts side by side, for example all Notes next to Manual
Notes Created.
4. **Visualization**: how the result is drawn.
### Types of insight
* **Pivot**: break a metric down across a dimension with **Group by**, for example
jobs per stage, per company, or per team member.
* **Historical Values**: track how a metric evolves over time.
* **Funnel**: see how records convert from one pipeline stage to the next.
* **Time in Stage**: measure how long records sit in each stage.
The available insight types depend on the data source. Funnel and Time in Stage
rely on pipeline stage data, so they are offered for stage-based sources such as
**Applications** and **Jobs**. For sources without stages, like Candidates, only
Pivot and Historical Values are available.
### Visualizations
Draw the result as a **Bar**, **Line**, or **Pie** chart, a **Table**, or a
**Single Metric** headline number.
### Filters, grouping, and targets
Click **Add filter** to narrow down which records count. You can filter on the data
source's attributes, including any [custom attributes](/docs/settings/customizing-candidate-profiles)
you created, plus **Team**, **Office**, and **Team Member** to scope an insight to part of
your organization. A **Time period** filter restricts the insight to a date range.
The Team and Office filters work on every report and dashboard. In a multi-office
workspace, that is how one office reads its own numbers without building a separate copy of
each report: see [teams and offices](/docs/settings/managing-teams) for how the two differ.
For **Pivot** insights, **Group by** splits the result across any attribute of the
data source.
Each insight can also have a **Target**: enable it and set a number, and the insight
shows your progress against that goal as a percentage, with a **Target Achieved**
state once you pass it.
## Tracking activity with note labels
To report on logged activity such as calls, client meetings, or references, report
on **Notes** and filter by [note label](/docs/settings/labels).
If your team logs activities as notes with a consistent label, for example First
Call, Client Check-in, or Interview Feedback, you can count exactly how often each
activity happens, per period and per person. Coming from another ATS, this replaces
comment types or activity types: create a note label per activity, then build a
Notes insight filtered on that label.
For clean reporting, agree on a small, fixed set of note labels up front.
For touchpoints Spott records automatically, use the **Interactions** data source
instead. It covers two-way [interactions](/docs/candidates/last-interaction) such
as emails, WhatsApp messages, phone calls, and calendar meetings, and can be
filtered by **Interaction Type**, **Label**, **Tag**, or **Tag Type**.
## Drilling down
Numbers on a report are clickable: click one to open the exact records behind it,
so you can see what is driving a metric instead of trusting the total on its own.
## Managing and exporting insights
Open the **⋮ menu** on any insight to **Edit**, **Duplicate**, **Export as Excel**,
or **Delete** it.
When exporting, you can name the file and optionally tick **Include drilldown
data**; by default the export contains the chart data only.
There is currently no scheduled or emailed report delivery.
## Sharing
The Reports overview has two sections: **Your reports**, visible only to you, and a
workspace section **visible to everyone**. There is no team-level sharing tier in
between.
Who can view, manage, and export reports is controlled per role from
**Settings → Security**. See [managing access](/docs/settings/managing-access).
**Reporting in Spott** in the Get Onboarded guide. Build your first report step by step, with worked examples to copy.
# Inbox
Source: https://docs.spott.io/docs/inbox/inbox
Centralize and manage all your candidate, client, and team communications in one unified workspace.
The Inbox brings your communication channels together, so you never lose track of
conversations with candidates or clients.
You can quickly navigate to the Inbox with `G` then `I`. In the left sidebar, it sits
under **Workspace**. The Inbox is available when the unified inbox is enabled for
your workspace under **Settings → Features**.
## Your unified view
The Inbox consolidates the communication channels connected to your account:
* **Email**
* **WhatsApp**
* **[SMS](/docs/inbox/sms)**, on the SMS-capable numbers of your VoIP account
Each message automatically links back to the relevant person in Spott. At the top of
the page you find three tabs: **Inbox** for your conversations, **Outbox** for
scheduled and queued messages, and **Message Templates**, where the mails you send
over and over live. See [message templates](/docs/inbox/message-templates).
## Browse and read conversations
The left column lists all ongoing conversations with timestamps. Selecting a thread
opens the full conversation history on the right, with sender, recipients, and
attachments at a glance. Messages stay grouped by thread, so long exchanges remain
neatly organized.
**Filter the list** rather than scrolling it. You can narrow the left column to the
conversations that need you, for example only the ones **awaiting a reply**, so the
threads you have already handled drop out of view.
## Reply directly
From the conversation view, use **Reply** or **Reply All**. Replies are sent through
your connected integration (Gmail, Outlook, or WhatsApp) and stored in
Spott automatically. When composing, you can **link a record** and add **labels** to
keep the thread organized.
The composer toolbar carries the rest: attachments, your signature, a
[message template](/docs/inbox/message-templates), a
[scheduler link](/docs/calendar/scheduler), and an AI action that drafts a candidate or
job pitch for you.
**Select a passage of text** and a formatting pop-up appears over it, including a
**font size** selector. **Aptos** is available as a font family, so mail drafted in
Spott can match what your colleagues send from Outlook. This works in every email
dialog, not only the Inbox composer.
Spott **warns you before sending an email with an empty subject line**. A mail with no
subject is easy to send by accident and easy for the recipient to overlook, so the check
catches it while you can still add one.
### Schedule an email
To send an email later, click **Schedule email** at the top right of the composer. A
**Deliver on** row appears with the date and time the email should go out, and a countdown
such as *In 29 minutes* so you can see at a glance when that is. Scheduled emails wait in
the **Outbox** tab until they are sent. Changed your mind? Click **Deliver immediately**,
where **Schedule email** was, to go back to sending straight away.
The time next to **Deliver on** carries a **time zone**, shown as a chip such as **GMT+2**.
It starts on your own time zone. Click it to pick another from a searchable list grouped
by region, so an email to a client in New York lands at 9:00 their time without you working
out the offset. The same time zone picker sits in the
[calendar invite](/docs/calendar/schedule-a-meeting#schedule-a-new-meeting) dialog.
## Keep communication in context
Every message is contextually linked: candidate conversations appear on the
candidate's **Communication** subtab, and the same history is visible wherever the
person appears. Everything syncs in both directions, so updates in your email client
appear in Spott and vice versa.
Make sure your email integration is active under **Settings → Accounts** to enable
full syncing.
The Inbox only syncs messages with people who **already exist as a record** in Spott
(a candidate or contact). A message from an address that isn't in your workspace yet
won't show up until you add that person.
### The first sync takes hours
When you connect a mailbox, the initial sync can take **up to 12 hours** before your
history is fully in Spott. Nothing is broken in the meantime: new messages keep
arriving while the backlog fills in behind them. Connect your mailbox the day before
you need it rather than the morning of.
## Email visibility
Under **Settings → Accounts → Default Email & Calendar Sharing**, you choose how much
of your email your workspace colleagues can see by default:
* **Metadata only**: colleagues see the participants and timestamp. The subject line
and body stay private to the participants.
* **Subject line and metadata**: colleagues see the subject, participants, and
timestamp.
* **Full access**: everything is shared with your workspace, including the body,
subject line, and attachments.
This is a **personal setting**: it applies to your own mailbox, so every user picks
their own level. See [connected accounts](/docs/settings/accounts).
An email that should never have been synced, such as a private message, can be removed from
Spott altogether by a user whose role has the **Delete Interaction** permission. It
disappears for everyone in the workspace, and stays in the mailbox it came from. See
[managing access](/docs/settings/managing-access#permissions-people-go-looking-for).
# Message Templates
Source: https://docs.spott.io/docs/inbox/message-templates
Create and personalize email templates from the Inbox, with variables that fill in recipient details automatically.
Templates help you send personalized messages faster while keeping a consistent tone
across your outreach.
## Open the Message Templates tab
From the left-hand sidebar, go to **Inbox** and click the **Message Templates** tab
at the top. This page lists all your templates with their subjects, previews, and
authors.
## Create a new email template
Click **New Email Template** in the top-right corner and choose whether the template
is **Personal** or shared with the **Workspace**. In the editor you can set:
* Name, for internal use
* Subject
* Email body content
* Attachments
Use clear, reusable titles so your team can easily identify templates, for example
"Candidate Intro – Software Engineer".
The body editor offers a **set of fonts** you can send in, so a template can follow your
house style rather than the default. **Montserrat** is among them.
## Personalize with variables
Type `{` in the editor to browse the available variables. They fill in automatically
when the message is sent, for example:
* **Recipient > First Name** and **Recipient > Last Name**
* **Job > Name** and **Company > Name**
* **AI Generated content**, which writes a passage based on your instruction
Variables only populate if the matching details exist in Spott.
### Variables in the subject line
Variables work in the **subject** as well as the body. Type `{` in the subject field and
pick a variable the same way, so a subject of
`Hey { Recipient > First Name }, new opportunity` goes out with the name filled in per
recipient.
The subject takes the **record variables**, the ones that pull a name, a job, or a company
off the record. **AI Generated content** is not one of them: a written passage belongs in
the body. That keeps a subject line predictable in length, which is what you want in the
one part of the message that gets truncated in the inbox list.
This works everywhere a subject line does: a one-off email from the composer, a message
template, and a [campaign](/docs/outreach/campaigns). A personalized subject is the part
of the message people see before they decide to open it, so it is worth more than the
same personalization further down the body.
### AI-generated content
**AI Generated content** is not a fixed variable: you tell it what to write about, and
it writes that passage per recipient when the message goes out.
**Write about** picks the record it draws on: **Recipient**, **Candidate**, **Contact**,
**Company**, or **Job**. Then give it an **instruction**, for example "invite the
recipient to review the information in a friendly but professional tone". Spott uses
that record's data to write the passage, so the same template lands differently for
every person on the list.
## Auto-save and usage
Templates are **saved automatically** as you type. There is no save button.
Once created, templates are available when composing messages in the Inbox and in
[campaigns](/docs/outreach/campaigns). In the Inbox, **Start from template** in the
composer toolbar lists your workspace and personal templates, so you never have to
leave the conversation to fetch one.
From the three-dot menu on a template you can
**change its visibility** (personal or workspace) or **delete** it. Presentation and
job description templates live separately, under **Settings → Templates**.
# SMS
Source: https://docs.spott.io/docs/inbox/sms
Send and receive text messages from Spott using the SMS-capable numbers on your VoIP account.
Candidates answer a text when they will not answer a call. SMS keeps that channel on
the record with everything else, instead of on your phone.
You send and receive text messages from Spott itself, using the **SMS-capable numbers
on your VoIP account**. Every message is stored on the candidate or contact it belongs
to, and threads show up in the [Inbox](/docs/inbox/inbox) alongside email and WhatsApp.
## Supported providers
SMS rides on your telephony provider, so you need a number that can send texts:
* [RingRing](/docs/integrations/ringring)
* [RingCentral](/docs/integrations/ringcentral)
* [Ringover](/docs/integrations/ringover)
* [Aircall](/docs/integrations/aircall)
Not every number on a VoIP account can send SMS. If a number does not appear in Spott,
check with your provider whether texting is enabled on it.
## Turn SMS on
SMS is switched on **per number**, on your provider's own page under **Settings →
Integrations**. Open the provider, scroll to the **SMS** block, and toggle the numbers
you want to text from.
How much work that is depends on the provider, because they scope SMS differently:
* **[Ringover](/docs/integrations/ringover)** is the simplest. SMS is enabled
**workspace-wide**, so switching a number on is done once and it is on.
* **[RingCentral](/docs/integrations/ringcentral)** is **per user**. Alongside the
number toggles there is an **SMS** row in the Workspace block where you connect your
own RingCentral account, and every colleague has to do that for themselves.
RingCentral constrains SMS to the individual account, and groups numbers by
**extension**, so the numbers offered to you are the ones on your own extension.
* **[Aircall](/docs/integrations/aircall)**: see the caution below.
* **[RingRing](/docs/integrations/ringring)** has no self-service page under Settings →
Integrations yet. The connection works, but support sets it up for you.
**With Aircall, the toggle is not proof.** Aircall does not tell Spott whether a given
number can actually send texts, so the toggle turns on either way. If you switch SMS
on for an Aircall number and messages do not go out, confirm with Aircall that texting
is enabled on that number.
## Send a message
Open a candidate or contact and go to their **Communication** tab. The channels
available for that person are listed on the left: workspace channels such as **Email**
first, then your personal ones, **WhatsApp** and **SMS**, each with the number the
conversation runs on.
Select **SMS** to open the thread. Above it sit the numbers you can text from, so
someone with several numbers enabled can send from the right one. Pick the number, type
in the box at the bottom, and press **Send**.
An SMS thread is **not a live chat**. Spott refetches the conversation every 30
seconds, so a reply can take up to half a minute to appear.
Phone numbers must be stored in **international format** (for example `+32...`) for
incoming messages to be matched to the right person, exactly as with
[phone calls](/docs/calls/phone-calls).
## Who can see your texts
SMS threads are **private to you**, the user whose number they run on, the same way
[WhatsApp](/docs/integrations/whatsapp) conversations are. Colleagues do not see them,
and there is no sharing setting to widen that, unlike
[email visibility](/docs/settings/accounts#email-visibility).
## Good to know
* **No bulk texting yet.** SMS is a one-to-one channel today: you cannot send it from a
[campaign](/docs/outreach/campaigns), an [automation](/docs/settings/automations), or
a [message template](/docs/inbox/message-templates). Automated SMS is heavily
regulated in several regions, which is why it is not simply switched on.
* **Your provider bills the messages.** Spott sends through your VoIP account, so
texts count against whatever your provider charges for SMS.
* **Numbers come from your provider.** Spott does not issue phone numbers; add or
enable an SMS-capable number on the provider's side first.
# Adding and Managing Jobs
Source: https://docs.spott.io/docs/jobs/adding-a-job
Create a new job in Spott, link it to a client, add sourcing criteria, and manage the full workflow from one record.
You can quickly navigate to the Jobs page with `G` then `J`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
## 1. Open the Jobs view
From the left-hand navigation bar, select **Jobs** to open your job listings.
## 2. Add a new job
Click the **Add Job** button in the top-right corner. In the **Add New Job** dialog,
fill in the essentials:
* **Job Title**: the position you are adding
* **Company**: the client this job belongs to
* **Status**: the job's stage
You can add more details right away: employment type, location type, one or **multiple
locations**, salary range, description, and the client contacts involved.
Set the **job description language** here too. It used to be American English whatever
you were recruiting for, which meant rewriting every description for a Dutch or French
role. Pick the language once on the job and everything Spott generates for it starts in
that language.
Leave it unset and the job falls back to **Default job description language**, a
workspace-wide setting under [Settings → General](/docs/settings/general). Set that to
the language you recruit in most and the per-job field becomes the exception rather than
something to remember every time. It is its own setting, separate from the **Default AI
Language** in your [personal preferences](/docs/settings/preferences), which governs what
language Spott writes to you in.
Click **Create Job** at the bottom-right of the dialog. Your new job appears in the
Jobs list with its own record.
## 3. Import a job instead of typing it
You do not have to fill the dialog in by hand. Two routes create the job from a posting
that already exists:
* **Import from URL**: paste the link to a public job posting in the **Add New Job**
dialog and Spott reads the vacancy text into the job's fields.
* **The browser extension**: import a job straight from the page you are looking at.
See [the browser extension](/docs/settings/chrome-extension).
Either way you land on the same job record, with the details prefilled and editable.
## 4. Define the job on the Overview tab
The job now exists, but it is empty. Setting it up properly is a short sequence of its
own, and it is worth following in order because each step feeds the next: link your
files and intake notes, generate the details from them, fill in the fee structure, link
the contacts, build the scorecard, then ask AI.
That whole flow lives on [the Job Overview tab](/docs/jobs/job-details).
## 5. Manage the job through its tabs
* **Candidates**: the pipeline. Track candidates through each stage, take quick
actions, and place or reject them. See
[the job pipeline](/docs/jobs/job-pipeline).
* **Matching**: AI search across your database to find the best new candidates for
this role, excluding anyone already in its pipeline. See
[matching](/docs/jobs/matching).
* **Advertising**: write or generate the vacancy text and publish it to the Spott
job board, LinkedIn, or multiposters. See
[advertising](/docs/jobs/job-portal).
* **Applicants**: review candidates who applied. See
[inbound applications](/docs/jobs/inbound-applications).
* **Company Portal**: share selected candidates with your client. See
[the company portal](/docs/jobs/company-portal).
* **Files** and **Notes**: documents and notes related to the job. Notes are **never
linked to a job automatically**: Spott only tags the people it recognizes. Link an
intake call or a client meeting to the job yourself from the note, and it shows up
here. See [adding notes](/docs/notes/adding-notes).
* **Tasks**: follow-up actions for the role. See
[job tasks](/docs/jobs/job-tasks).
Depending on the features enabled for your workspace, you may also see **Campaigns**
(outreach sequences for this job) and **Communication** (tagged emails) tabs.
## One job, several openings
When a client hires three people for the same role, keep **one job**. A job carries a
single pipeline but any number of placements, so all three hires are recorded against it
and the pipeline stays in one place instead of being split across duplicates.
There is no built-in field for a number of openings. If you need the headcount visible
and reportable, add a custom attribute under **Settings → Data model → Jobs**, for example
a number field called Openings. See
[customizing profiles](/docs/settings/customizing-candidate-profiles).
## Delete a job
Open the job and use the **three dots**, labelled **Actions**, at the top right of the
record.
A delete option that is **greyed out** rather than missing means your role does not carry
the **Delete Job** permission, so an admin has to either grant it or delete the job for
you. See [managing access](/docs/settings/managing-access).
Deleting a job cannot be undone, and it takes the applications on it with it. To take a
role off your active list without losing the history, move it to a closed
[job status](/docs/settings/stages) instead.
## Next steps
Use Matching to surface the best fits from your database.
Move applicants through the job's stages.
# The Application Record
Source: https://docs.spott.io/docs/jobs/applications
The application record ties one candidate to one job and carries the stage, scorecards, interviews, comments, and activity.
An **application** is the link between one candidate and one job. It carries
everything about that specific process: the stage, scorecards, interviews, comments,
and the full activity history.
It is the record behind every card in the [job pipeline](/docs/jobs/job-pipeline).
Clicking a candidate there opens what this page describes.
## Open an application
Click an application anywhere it appears:
* A card in the [job pipeline](/docs/jobs/job-pipeline)
* The **Candidate** tab on a [candidate profile](/docs/candidates/candidate-applications)
* The **Applications** tab on the Jobs page, which takes [saved views](/docs/settings/using-views)
like any other table
Use the arrows at the top to step to the **next or previous application** on the job
without going back to the pipeline.
## What you see
* **Comment**: a free-text summary of where this application stands.
* **Scorecard**: structured evaluation of the candidate for this role. Add one
manually or let AI generate it from your workspace's
[scorecard](/docs/candidates/interview-scorecards) template.
* **Upcoming meetings**: the meetings already scheduled with this candidate, with the
date and how many people are on the invite.
* **Status**: once the candidate is rejected or placed, a block here carries the
outcome. See [rejection](#rejection) and [placements](/docs/placements/placements).
* **Active campaigns** the candidate is enrolled in.
* **Activity feed**: everything that happened, filterable by type. It opens with the
stage the application was created in, so a candidate added straight into Interview
reads differently from one that walked the whole pipeline. The same stage is on the
application's created event in the [API](/docs/developers/api-overview).
The side panel also carries the candidate's **contact details**, so the phone number
and email are in front of you without opening their profile. Combined with moving
between applications, that turns a pipeline into a **call list**: work down the
applications, dial from the panel, log what happened, move on. It is there on both
spec and non-spec applications.
The side panel shows the application's **Details**:
* **Owner**: the teammate responsible
* **Stage**, and **Label** and **Sub Stage** underneath it
* **Status**: in process, rejected, or placed
* **Added to job** date and **Last Activity**
* **Source**: the channel the candidate applied through, such as LinkedIn or your own job
board
* Any custom fields your workspace uses
The source belongs to the application, not to the candidate. Someone already in your
database who applies to a new job through LinkedIn gets an application sourced from
LinkedIn, so you can see which channel brought them back for this role even though the
candidate record itself is years old. Add **Source** as a column on the Applications tab to
compare channels across jobs.
There is also an **Ask AI** tab that knows the whole application.
## Quick actions
From the application you can act directly:
* **Send email** or **Enroll in campaign**
* **Present candidate** to the client, or **Add to portal** to publish them on the
[Company Portal](/docs/jobs/company-portal)
* **Add note**
* **Add Scorecard** or **Generate Scorecard**
* **Mark placed**, creating a [placement](/docs/placements/placements)
* **Mark rejected**
* The three interview actions, below
The list adapts to where the application stands: a placed candidate offers **Extend
placement**, and a published one offers **Remove from portal**.
### The three interview buttons
They look similar and do different things.
* **Log client interview** records an interview that is already agreed, without mailing
anyone. You give it a title and a time, and optionally toggle **Send Calendar
blocker** to put the slot in your own calendar. Use it when the client has scheduled
the interview themselves and you only want it on the record.
* **Send interview** opens a full calendar invite to the **candidate**: subject, date,
location, and the online meeting toggle that generates the Teams or Meet link. It is
the meeting composer described in
[scheduling a meeting](/docs/calendar/schedule-a-meeting), prefilled for this
application, so you can also insert your signature, a template, or a scheduler link.
* **Send interview w/ client** does the same, with the client contact on the invite as
well.
## Rejection
Press **Mark rejected** and fill in:
* **Rejected by**: rejected by the client, rejected by us, or withdrawn by the candidate
* **Marked by**: which teammate is recording it
* **Rejection reason**: one or more reasons, configurable as labels in Settings
* **Additional information**: free text
* A **Send email** toggle, if the candidate should hear it from you at the same time
Afterwards the application carries a **Rejected** block with who rejected, the reasons,
who logged it, and when. Nothing is deleted, and you can always **add the candidate
back to the pipeline** later.
### Reject several at once
Closing a job leaves a tail of candidates to let down. Select them with the checkboxes
in the job's **Applications** view and reject the whole selection in one go. The same
bulk action is available on the [job pipeline](/docs/jobs/job-pipeline#bulk-actions).
The dialog is the one above, filled in once for everybody selected: rejected by, marked
by, rejection reasons, and additional information. Switch on **Send email** and each
candidate in the selection is mailed.
# Company Portal
Source: https://docs.spott.io/docs/jobs/company-portal
Give clients direct, secure access to the candidates you present for their roles.
The Company Portal is a secure space where your clients can view their open roles,
track candidate submissions, and collaborate with your team. It reduces back-and-forth
communication and gives clients real-time visibility into the hiring process.
The portal carries **your branding**, not Spott's: the logo, colours, and privacy policy
you set once in **Settings → Workspace & Branding** apply to it like they do to your job
board. Your client sees your company, not ours. See
[workspace and branding](/docs/settings/general).
## Access a job's Company Portal tab
In Spott, go to **Jobs**, open the job, and click the **Company Portal** tab. Inside,
the subtabs show the portal **Overview**, client **Activity**, published
**Candidates**, and **Rejected** candidates.
## Publishing candidates
You control exactly who is visible to the client:
* Publish a single candidate with **Publish on portal**.
* Publish in bulk from the job's pipeline: select candidates with the checkboxes and
choose **Add to company portal**.
* Publish **automatically by stage**: with **Show all candidates in real time**
enabled, configure which pipeline stages trigger publication. Candidates are then
shared with the client as soon as they reach the right stage, with no manual
publishing one by one.
## Portal controls
On the right panel you can:
* **Open or close the portal** with the status toggle.
* **Invite contacts**: pick the client contacts who should have access. Each one gets an
automated email with their **personal access link** to the portal, so nobody shares a
password and you can see who has been given access. The invite email's color picker
offers your workspace's [email editor colors](/docs/settings/general#email-editor-colors).
* **Preview** the portal to see exactly what your client will see.
* Toggle **Show all candidates in real time** so newly added or updated candidates appear
for the client automatically, rather than a fixed snapshot. A stage selector sits under
it, so you decide which stages publish; early stages such as a long list can stay
internal while later ones share automatically.
* Show or hide the **hiring team** names and their contact details.
* Choose exactly **which candidate attributes the client sees**, one toggle each.
### What the client can see about a candidate
These toggles are set **per job**, not once for the workspace, and several of them expose
personal data about a candidate to a third party. Check them before you invite anyone to
a new portal rather than assuming they carry over from the last one.
An admin can set the starting position of every toggle on this page, and attach files
such as your Terms of Business automatically, under **Settings → General →
[Company Portal Defaults](/docs/settings/general#company-portal-defaults)**. New portals
then open already configured the way your team works, and you adjust from there rather
than from scratch.
Above the attribute list:
| Toggle | Effect |
| - | - |
| Show all Candidates in real time | Publishes candidates automatically, filtered by the stage selector beneath it |
| Show Candidate stages | Lets the client see which stage each candidate is in |
| Show Scorecards | Exposes your [interview scorecards](/docs/candidates/interview-scorecards) |
| Show Salary Range | Shows the job's salary range in the portal |
| Show rejection labels and reasons | Adds *why* a candidate was rejected next to the fact that they were |
Rejection detail is worth a deliberate choice. Left off, a client sees only that an
application is closed, and the follow-up question arrives by email. Switched on, the
[rejection label and reason](/docs/settings/labels) you recorded internally are visible
to them, which answers the question before they ask it but also puts your internal
wording in front of the client. Make sure your rejection labels read like something you
would say to them.
Then one toggle per attribute:
| Attribute | Notes |
| - | - |
| First Name, Last Name | Last name can be withheld for an anonymised shortlist |
| Profile picture | |
| Email & Phone | Direct contact details for the candidate |
| City & Country location | |
| LinkedIn | |
| Show CV inline | Renders the CV in the page rather than as a download |
| Latest CV | The CV file itself |
| Experience, Education | Company and institution names, with role and course descriptions |
| **Current Salary** | Personal financial data |
| **Date of Birth** | Personal data, and a discrimination risk in most jurisdictions |
| Status | The candidate's availability status |
| **Gender** | Personal data, and a discrimination risk |
| **Nationality** | Personal data, and a discrimination risk |
| Languages | |
The four in bold are the ones worth a deliberate decision. A client rarely needs a
candidate's date of birth, gender or nationality to judge a shortlist, and in several
jurisdictions sharing them invites a discrimination claim you cannot easily defend. Any
**custom attributes** on the record can be published too, so check those as well.
Only contacts registered under the **company associated with the job** can be invited
to the portal.
Clients can **view candidates, leave comments, and request an interview**. They cannot
move candidates between stages, reject candidates, or bulk-export files. Those stay
with your team.
## What your client does in the portal
The client opens the portal from their personal link and sees the candidates you published.
**Clicking a candidate opens their profile**, which is where the work happens.
On that profile the client gets:
* **Status**, showing when the candidate was added and last updated, whether they are still
in process, and their current stage, with a progress bar of how far through the pipeline
they are.
* **Feedback**, a **1 to 5 rating**. This is the "impression" that shows up in your activity
feed, so a score here is the fastest signal you will get that a client has actually read
someone.
* **Request Interview**, which tells you they want to meet the candidate without a mail
thread about it.
* **Conversation**, a comment box on that specific person. Comments from your team and
theirs sit together, so the discussion about one candidate stays in one place.
They can also **add files** of their own, for example a signed job description or feedback
from an internal interview. Everything they add stays on the candidate.
The **current role** shown for each candidate comes from their most recent experience
entry, so correcting it means updating that experience on the candidate rather than
anything in the portal. Beyond the visibility toggles above, the fields the portal shows
are fixed.
To check what a client sees, open their portal link in a **private or incognito
window**. Opening it while signed in to Spott shows you what your own Spott user can
see, which includes jobs from other companies and looks like a serious leak until you
notice the cause.
When a client replies in the portal, **everyone assigned to the job** is notified. A
**Request Interview** raises a notification and nothing more: no calendar invite is
created, so you still schedule and send the invitation yourself, and that is the moment to
add any colleagues who should be in the room.
## Track what the client is doing
The **Activity** subtab is a running log of what your client has done in the portal.
Each entry names the person, the action, and the candidate it applies to:
* **Invited to the portal**, so you can see who was given access and when.
* **Accessed the portal**, so you know the invitation was actually used.
* **Left a comment on** a named candidate, with the comment text inline.
* **Left impression** on a named candidate, with the score they gave.
Scroll down the right-hand side of the portal tab for the shorter version of the same
question: which of your invited contacts have opened the portal and which have not.
### Views are recorded per candidate
Opening a candidate's profile is recorded as a **view**, shown on that candidate's page in
the portal rather than in the job-level feed. There is no roll-up across candidates yet,
so seeing who was read means opening the candidates one at a time.
A client scrolling the published list does not count. The view is logged when they click
into the profile itself, which makes it a real signal that someone was considered rather
than merely listed.
**Every view is recorded, not just the first one.** A contact who comes back to the same
candidate a third time before a decision is telling you something, and that repeat
interest now shows up rather than being collapsed into the single visit they made on the
day you published.
## Workflow
* Select which candidates to publish.
* Configure the visible fields to show or hide details.
* Invite the client contacts who should have access.
* Track their feedback and activity from the Activity subtab.
**Manage jobs** in the Get Onboarded guide. Publishing candidates, client access, and reading the activity feed, in the flow of running a job.
# Inbound Applications
Source: https://docs.spott.io/docs/jobs/inbound-applications
How Spott captures incoming applications, scores them with AI, and moves them into your pipeline.
**Inbound applications** are all candidates who apply through your job board posting,
LinkedIn, or an integrated [multiposter](/docs/integrations/multiposting) such as
[Broadbean](/docs/integrations/broadbean). Applications are
automatically linked to the right job, enriched with candidate data, and queued for
your review, so no application is missed.
You review them in two places: on each job's **Applicants** tab, and across every job at
once on the Jobs page.
## Access a job's Applicants tab
In Spott, go to **Jobs**, open the job, and click the **Applicants** tab. It used to be
called **Inbound**.
Use the **search box** above the list to find an applicant by name, which is quicker than
scrolling once a popular job has collected a few hundred of them.
## Candidate list
Each applicant row shows, among others:
* Name and avatar
* **Match score** (0 to 100, from Very Weak to Very Strong Match). Click the score
for an explanation per criterion. The score only appears once you have **run a
search on the job**: without one there is nothing to score against, so the column
stays empty. See [matching](/docs/jobs/matching).
* Email and phone
* Work experience, with the latest roles expandable for details
* Location
Match scores are based on the job's description, details, and intake notes.
Detailed sourcing criteria on the job's Overview tab give more accurate results.
Use the **Triage** button to adjust the AI criteria used for scoring.
## Candidate status
Filter applicants by:
* **For Review**: new applicants, the default list
* **Accepted**: moved into the pipeline
* **Rejected**: with two options: reject and keep in your database, or reject and
delete from the database
**To reject someone with an email**, do not reject them first. Press **Send email**,
write the rejection, and use the toggle in the composer to reject the application as
the mail goes out. That way the candidate hears from you and the application is
closed in one step.
## Workflow
* Review inbound applicants and their AI scores.
* Accept top candidates, individually or in bulk, straight into the pipeline stage
of your choice. The stage offered by default is set workspace-wide under **Settings →
[Stages](/docs/settings/stages#the-default-stage-for-inbound-applications)**, so you do
not have to configure it on every new job.
* Reject applicants who do not meet the requirements.
## Review applicants across all jobs
When applications come in on a dozen jobs at once, opening each job to see who applied is
the slow part. The **Inbound Applications** tab on the Jobs page, next to **Jobs**,
**Applications**, and **Speculative Presentations**, gathers every inbound application in
the workspace into one list, whatever job it came in on.
Each row shows the candidate, the job, the client, the application's state, its **source**,
when they applied, and the owner. The same **For review**, **Accepted**, and **Rejected**
toggle as on a job sits at the top, with a search box for names.
The list starts with everything. Narrow it with the filter button, on **Stage**, **Job**,
**Job Stage**, **Job Owners**, **Company**, **Owner**, **Label**, **Rejected By**,
**Rejection Label**, or any of the candidate's own fields. Filtering on **Job Owners** is
the quick way to see only the applications on your own jobs.
### Act on applicants
Select one applicant or several and pick an action:
* **Accept**: choose the stage the candidate should land in, and they move into that job's
pipeline.
* **Reject & keep in database**: the application is closed and the candidate stays in
Spott. You can still **Accept anyway** later if you change your mind.
* **Reject & delete from database**: the application is closed and the candidate is
removed.
* **Send email**: write to the applicant. The composer has an **Additional actions**
section with three toggles, **Accept**, **Reject & keep in database**, and **Reject &
delete from database**, so the decision goes out with the email in one step. Switching a
toggle on does not ask for anything else.
Everything works the same for a single applicant and for a bulk selection, so a morning's
worth of applications can be cleared from one screen.
# Job Overview
Source: https://docs.spott.io/docs/jobs/job-details
The Overview tab centralizes a job's details, sourcing criteria, and attachments, and powers Spott's AI features.
A job's **Overview** tab is where the role gets defined: the client and contact data,
the requirements, the fee structure, and the **sourcing criteria** that power AI
matching and job description generation. Everything Spott's AI does on this job runs on
what you put here, so it is worth doing properly once.
## Access a job's Overview tab
In Spott, go to **Jobs**.
* Find the job you are looking for. Make sure it is under the right company or client.
* Click on the job title. The **Overview** tab opens first.
## Set the job up, in order
The steps below build on each other. Working through them in this order means the AI
has something to work from by the time you ask it for anything.
### 1. Link files and notes
Start with the raw material you already have:
* **Attach files**, for example the client's job description document.
* **Link notes** from the intake call or internal discussions. Notes are never linked to
a job automatically, so tag the intake note to the job yourself. See
[adding notes](/docs/notes/adding-notes).
### 2. Generate the details from that input
Click **Regenerate Details** and Spott reads what you attached in step 1 to fill in the
job, in the language you choose. It can:
* Summarize an existing job description into a concise format
* Fill in missing information based on the provided content
* Rewrite the description for clarity and better candidate engagement
Nothing is overwritten while you are not looking. Spott comes back with a list of
**suggestions** rather than a rewritten job: each field shows its **Original** value
next to the **Updated** one, and you accept it with the check or discard it with the
cross. There is no accept-all, so every change is a decision you make. Work down the
list, then click **Apply** to write only what you kept. **Cancel** leaves the job exactly
as it was.
Only the fields the AI wants to change are listed, so a job it has little to add to comes
back as a short list rather than the whole record to scroll through.
That matters most on a job you have already curated. The fee arrangement you negotiated
and the requirement the client stressed on the intake call survive a regeneration,
because you decide field by field rather than trading the whole record for the AI's
version of it. Suggestions cover your workspace's **custom attributes** too, not only
the standard fields.
If you would rather not use AI, paste an existing job description or write the details
by hand instead. The rest of the flow is the same.
### 3. Fill in the details and the fee structure
Complete the role's own fields: requirements, locations, compensation, and the fee
arrangement you agreed with the client.
For a **Retained** job, set up the fee structure here first: the milestones,
negotiated fee, and estimated salary. These must be in place before you can log a
[placement](/docs/placements/placements) against the job, so configuring them up
front avoids getting blocked mid-placement.
**Fee splits** live in the side panel and can be set before any placement exists. The
split records how the fee is divided across users and must total 100%. Setting it here
means the agreement is captured when the deal is made rather than at placement time, it
lets Spott forecast on jobs that have not been filled yet, and it **prefills the
placement** when the time comes. On a permanent placement the job's **deal value** is
carried over the same way. You can still adjust the split on the
[placement](/docs/placements/placements) itself.
### 4. Link the contacts
Attach the client contacts involved in the role, so the people side of the job is on
the record rather than in someone's mailbox.
### 5. Build the scorecard template
Set up the scorecard your team will use to evaluate candidates for this job. Build it
by hand, or let AI generate it from the sourcing criteria you just wrote. See
[interview scorecards](/docs/candidates/interview-scorecards).
### 6. Ask AI
The side panel has an **Ask AI** tab, an agent that knows the whole job record and can
answer questions about it. With steps 1 to 5 done, it has the full picture.
Ask it to rework the job description and it **proposes the changes for you to review**
rather than writing them straight onto the record. Nothing is applied until you say so,
so asking the assistant to try a shorter version costs you nothing if you prefer what you
had.
The sourcing criteria on this tab are what [AI matching](/docs/jobs/matching) runs
on, so the more complete they are, the better your matches.
# Job Pipeline
Source: https://docs.spott.io/docs/jobs/job-pipeline
Track every candidate on a job through your stages with the Candidates tab, in a Kanban board or list view.
The **Candidates** tab on a job shows all candidates linked to that role, organized
by stage. It gives you a clear overview of progress and lets you manage every step of
the hiring process.
## Access a job's pipeline
In Spott, go to **Jobs**, open the job, and click the **Candidates** tab.
## Pipeline stages
Candidates move through your pipeline stages, for example Sourced, Engaged,
Interview, Presented, and Placed. The stages are **fully customizable** from
**Settings → Stages**. Stages are set **workspace-wide**, not per job, so a change
applies to every job that uses that pipeline.
## Add a candidate to the pipeline
Click the **+** on any stage column to add a candidate directly to that stage. Search
for an existing candidate, or use **Upload CV** to create one on the spot, then click
**Add to job**.
## Two views
* **Board view**: a Kanban-style board with drag and drop.
* **List view**: a table that is sortable and filterable.
In board view, click the **number at the top of a column** to cycle what it counts:
all candidates, in-process, or rejected.
## Candidate cards
Each candidate appears as a card showing their name and role, plus quick actions for
notes, the latest CV, tasks, communication, and opening the full profile. Drag and
drop cards to move candidates between stages, or drop them on the rejected group to
reject them.
**A card shows what you tell it to.** Open the **View settings** column and add the
fields and shortcuts you want on the card, so the information you check on every
candidate is there without opening anything. See
[using views](/docs/settings/using-views).
One of the fields you can add is whether the candidate is currently **published on the
[Company Portal](/docs/jobs/company-portal)**. It is available in both board and list
view, so you can see at a glance who the client can already see and who is still
internal, without opening the portal tab to check.
### Clicking a card
Clicking a candidate's card opens their **application** for this job, which is where
the day-to-day work happens:
* **Quick actions** for the next step on this candidate
* The **activity feed**, so you can see everything that has happened on the
application in one place
* The **internal thread**, for the conversation your team has about this candidate
without it leaving Spott
See [the application record](/docs/jobs/applications) for the full tour, including what
the three interview buttons do.
### Rejected and placed cards
A card carries its outcome. Rejected candidates move to the **Rejected** group with a
red header saying who rejected them, and a placed candidate turns green.
**You do not need to create a rejected stage.** Rejection is handled across the
stages in Spott, so you keep track of which step of the process a candidate was
rejected at. Reject them from the stage they are in, rather than moving them forward
first, and your stage-conversion reporting stays accurate. To reverse a rejection,
open the application and bring the candidate back into the pipeline.
## Bulk actions
Select multiple candidates with the checkboxes to act on them at once: move to a
stage, change label, reject, present, enroll in a campaign, add to another job or a
list, send an email, or publish them to the
[Company Portal](/docs/jobs/company-portal).
### Take someone off a job without rejecting them
A candidate added to the wrong job should not be rejected, because a rejection is a real
outcome and it stays in the reporting. Select them in the pipeline and use the **three
dots** to remove them from the job instead. The candidate keeps their record and their
history, and the job loses an application that never should have been there.
## Filters and search
Use the search bar (Boolean queries supported) or filters to quickly find candidates
in the pipeline by name, company, or other attributes.
# Advertising
Source: https://docs.spott.io/docs/jobs/job-portal
Create, publish, and manage job vacancies: on Spott's job board, LinkedIn, or multiposters like Broadbean, Idibu, and VDAB.
The **Advertising** tab is where you turn a job into a public vacancy: write or
generate the posting, publish it, and collect candidate applications.
## Access a job's Advertising tab
In Spott, go to **Jobs**, open the job, and click the **Advertising** tab.
The publishing options, LinkedIn and the multiposters among them, stay hidden until the
job has a **job description**. A consultant who opens the Advertising panel on a fresh job
and finds nowhere to publish is looking at an empty description rather than a missing
integration, so write or generate one first.
## Write or generate a job description
You can create your vacancy description in several ways:
* Type the description manually, or paste an existing one.
* Click **Generate Job Description** to create it with AI from your job details. You
can also use this to rewrite or translate an existing description.
* Refine the result with the **Ask AI** assistant in the sidebar: prompt it to adjust
the tone, add requirements, or shorten a section, and keep iterating until it reads
right, instead of relying on a single one-click rewrite.
The AI formats the result using the job description templates from
**Settings → Templates**, which you can customize to your style.
**Generate Job Description** needs the **External job title** to be filled in, and hides
itself when it is empty. That field is what candidates see rather than your internal job
name, it defaults to the internal name, and you can edit it to whatever the market calls
the role.
### Advertise the same job in several languages
A job description can hold **multiple language versions**. In the **Job portal** panel
on the right, click **+ New language** and pick one. Each language you add appears in
that panel with its own **Open** or **Closed** status, and a chip above the description
switches which version you are editing.
**Each open language gets its own public URL on the Spott job board**, so you advertise
one role in several markets without creating a separate job for each. Jobs also carry a
**Language** attribute, which you can filter and report on like any other job field.
A job holds **one description per language**, so a language you have already added drops
out of the **+ New language** picker. A language that seems to have gone missing is
usually one you already have.
### Split the description into sections
By default a description is a single content block. You can instead have job
descriptions **split into structured sections**, for example the role, the
requirements, and the offer. It is a **workspace-wide** choice, set on your job
description template under **Settings → Templates**, not something you pick per job.
Keep the single block if you only publish through Spott.
Choose sections when you push descriptions out through the
[API](/docs/developers/api-overview) or through multiposters to job boards that expect
separate fields, which is common for Benelux and DACH boards.
## Publish your vacancy
### Option 1: the Spott Job Board
The Spott job board showcases your open positions online and receives applications
directly into Spott. In the right-hand panel:
* Switch the **Spott Job Board** toggle to **Open** to publish the vacancy. You can
set it back to **Closed** at any time.
* Pick the **inbound applications stage** where new applicants should land.
* Use **Preview** to see the posting as candidates will, and **Copy link** to share
the application link.
Updates to the description are reflected immediately for candidates.
#### What candidates see
The job board is a public page carrying your open roles, with the vacancy text you
wrote and an application form that files applicants straight into the job's Applicants
tab. **Use Preview before you open a vacancy**: it shows the posting exactly as a
candidate gets it.
The board carries **your branding, not Spott's**: your logo, your accent colour on the
buttons, and your own privacy policy and consent disclaimer on the application form.
All of it is set once in **Settings → Workspace & Branding** and applies to every
vacancy you publish. See [workspace and branding](/docs/settings/general).
**Apply for this position** opens the application form: name, email, phone, optionally
LinkedIn and location, the CV itself (PDF or DOCX, up to 5MB), and a cover letter. Your
consent disclaimer sits at the bottom, above the submit button.
### Option 2: LinkedIn
Link a LinkedIn Recruiter job posting so applications flow into Spott. See
[connecting a LinkedIn job board post](/docs/jobs/linkedin-job-posting).
### Option 3: multiposters
With a multiposter integration enabled, you can distribute the vacancy to many job
boards at once:
* **Publish to Broadbean**: see the [Broadbean integration](/docs/integrations/broadbean)
* **Publish to [Idibu](/docs/integrations/idibu)**
* **Publish to [VDAB](/docs/integrations/vdab)**, for the Flemish public job board
Multiposting uses **your own commercial account** with the multiposter. Posting
credits, per-board fees, and pricing are handled with the multiposter, not Spott.
Every advert you publish appears in the **Job Adverts** list at the top of the
Advertising tab, grouped into **Open** and **Closed** adverts. Each row shows the job
board, its status, the inbound stage, the published and removal dates, and how many
candidates have **Applied**, so you can track all your channels in one place.
Closing a job in Spott does **not** automatically close its published adverts. Close
each advert from this list, or set up an [automation](/docs/settings/automations) to
do it, so a filled role stops collecting applications.
## Candidate flow
When a candidate applies through any of these channels, the application is captured
automatically and appears in the
[Applicants tab](/docs/jobs/inbound-applications) for review,
ranked by AI.
# Job Tasks
Source: https://docs.spott.io/docs/jobs/job-tasks
Manage tasks linked to each job to keep your hiring process on track.
You can quickly navigate to the Jobs page with `G` then `J`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
**Tasks** in Spott let you assign, track, and complete actions related to a specific role, from scheduling interviews to sending offers. Every task is tied to the job, ensuring nothing falls through the cracks and your team always knows what needs to be done next.
## Access a job’s Tasks page
In Spott, go to **Jobs**.
* Find the job you’re looking for. Make sure it’s under the right company or client.
* Click on the job title.
* Click on the **Tasks** tab on the top ribbon.
## Tasks overview
The Tasks tab helps you manage all follow-up actions related to a job, candidate, or company.
## Task list
Each task includes:
* Description with a linked record (job, candidate, etc.)
* Due date, highlighted if overdue
* Record, the associated job or candidate
* Labels, to categorize the task (for example Follow Up or Candidate Interview)
* Assigned to and assigned by
As a best practice, use tags as much as possible, so tasks are always visible in the right context across the different pages.
## Managing tasks
* Uncompleted tasks are shown by default
* Mark tasks as complete once finished
## Creating a task
Click **New Task** and specify:
* Task title or description
* Due date
* Associated record, job, candidate, company, or contact
* Assignee
## Workflow
Example:
* Add a reminder to call the client tomorrow
* Link it to the job
* Assign it to a colleague
* Once completed, it will be removed from the pending list.
# LinkedIn Job Board Posts
Source: https://docs.spott.io/docs/jobs/linkedin-job-posting
Link a LinkedIn job board post to Spott and receive inbound applications from LinkedIn for review.
You can quickly navigate to the Jobs page with `G` then `J`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
## 1. Make sure you have a connected email account on Spott where you can receive LinkedIn applications
Before creating a job board posting, make sure you have a connected email account that is synced with Spott:
In Spott, go to **Settings → Accounts**.
* Find the **Outlook** or **Google** integration
* Make sure it is connected
* If it is not connected, click **Connect** and follow the login prompts
## 2. Create a Job Board post on LinkedIn
* When choosing the email on which you will receive applications, make sure to enter the email account that you connected to Spott in step 1.
* In your **LinkedIn settings**, make sure notifications for applications are turned
**on**. Spott reads the application from the mail LinkedIn sends you, so if that
notification never goes out, nothing reaches Spott.
## 3. Link your Job Board post to Spott
To link your job board advert to a Spott job:
1. Go to the **Jobs** tab
2. Open the relevant job
3. Navigate to the **Advertising** tab
4. Click **+ Connect to LinkedIn Job**
Before publishing, you must have created a **LinkedIn Recruiter Project** within LinkedIn Recruiter.
Once you start creating the posting in Spott, the LinkedIn job board settings will open.
Here you can configure:
* **Application stage**, the stage where inbound applications should be added
* **LinkedIn Project URL**, paste the URL of your LinkedIn Recruiter project
* **LinkedIn Application URL** (optional). If the job was already public, fill in the LinkedIn application URL
The project URL is the address bar of your LinkedIn Recruiter project. Open the project in
LinkedIn Recruiter and copy the URL up to and including the number:
In the example above, the URL to paste into Spott is
`https://www.linkedin.com/talent/hire/2057073842`.
The project URL has to end with the project's **number**. Copying it out of LinkedIn
Recruiter usually adds something after it, most often `/overview`, and the link will
not work until you delete that part. This is the single most common reason a LinkedIn
posting does not connect.
Once the job board posting is published, any [inbound application](/docs/jobs/inbound-applications) from the LinkedIn job posting will be automatically added to your Spott candidate database. These details are parsed from the email sent by LinkedIn. This is why we need the email you receive applications on to be synced with Spott.
Spott can only read an application that arrives **with a CV attached**, and the file
has to carry a file type. An application without a CV, or with an attachment that has
no extension, cannot be parsed into a candidate.
# Job Matching
Source: https://docs.spott.io/docs/jobs/matching
The Matching tab runs an AI search across your candidate database to surface the best new candidates for a role.
**Matching** in Spott uses AI to compare the job's requirements against your candidate
database, surfacing the most relevant matches in seconds. It runs on the same engine as
[candidate search](/docs/candidates/search-candidates), using the job's description,
notes, and sourcing criteria as input.
Matching is built to surface **new** candidates, so it leaves out anyone already in
this job's pipeline. To review the people already on the job, use its
[pipeline](/docs/jobs/job-pipeline) instead.
## Access a job's Matching tab
In Spott, go to **Jobs**, open the job, and click the **Matching** tab.
## Run a search for the job
The first time, click **Start new job search**. Spott converts the job's context
from the Overview tab into filters and criteria, which you can review and adjust
with **Edit criteria** before clicking **Run search**.
Results **stream in as they are scored**, so the strongest matches are on screen while
the rest of the database is still being worked through. Start reading the top of the
list straight away: the list keeps growing under you rather than making you wait for a
complete set.
The better the sourcing criteria on the job's Overview tab, the better the
matches. Upload intake call notes or a detailed job description first.
## Filters vs criteria
When Spott builds the search from the job, it splits your requirements into two parts,
shown separately when you use **Edit criteria**:
**Pre-filters** narrow the candidate pool *before* ranking. They are structured
conditions such as **Job Title**, **Field of Study**, **Keywords**, and **Years of
Experience**. Use the **Match all filters** toggle to require every filter (AND) or any
of them (OR). Spott shows how many candidates currently match, so you can widen the
filters when too few come through.
**Criteria** rank the candidates that pass the pre-filters. They are plain
natural-language statements (for example, "Business-level fluency in French") and are
**numbered in priority order**: criteria higher in the list weigh more heavily in the
match score. Drag a criterion by its handle to change that order, click the **×** on a
row to drop it, or use **Add criteria** to add your own.
A good rule of thumb: use **pre-filters** for the hard requirements that must be true,
and **criteria** for the softer qualities you want to rank on.
**Do not put keywords in the criteria.** Criteria are read as statements about the
person, not as search terms, so a bare keyword rates badly and drags the ranking with
it. Keywords belong in the pre-filters, where they are matched as conditions. Write a
criterion the way you would describe the candidate: "has run payroll for a company of
200+" rather than "payroll".
Both editors open from the **pre-filters** and **criteria** chips above the results,
so you can adjust a search and re-run it without starting over.
## Read the results
Candidates are ranked by a **match score from 0 to 100**, from Very Weak to Very
Strong Match.
Every **criterion** you set also becomes its own column: each candidate gets a thumbs
rating for it, from one to three thumbs-up for a match down to a thumbs-down where they
fall short. This lets you see at a glance *which* requirements a candidate meets, not
just their overall score.
**The score only judges the criteria.** Every candidate in your results already
passes the pre-filters, including the ones at the bottom of the list. A Very Weak
Match is not someone who failed your hard requirements: they met all of those, and
then scored poorly on the criteria you asked Spott to rank on.
Click a candidate's score to go deeper. It opens their **full profile**, so you can
assess them properly rather than judging on a row in a table, alongside the
**reasoning** behind each per-criterion rating. From there you can **Accept** the
candidate or **mark them reviewed**.
Each row also shows the candidate's active jobs and last interaction, so you can spot
who is already in a process elsewhere.
### Card view and table view
Results come in two shapes, switched with the two icons above the results on the right.
**Card view** gives each candidate room for their current and past roles, education, and
the reasoning behind every criterion, which reads better when you work through the top
of the list one person at a time.
**Table view** puts one candidate per row with a column per criterion, which is the
faster way to compare a long list.
### Search history and export
The same row of icons holds two more:
* **Search history**, which keeps every search you have run on this job. Go back to what
you ran last week, see what it returned, and pick it up again instead of rebuilding
the criteria.
* **Export**, to take the results out of Spott.
## Review workflow
Use the **All**, **To Review**, and **Reviewed** tabs to work through the results:
* Review the candidates with the highest match scores.
* Add strong fits directly to the job's pipeline.
* You can re-run or refine the search at any time by editing the criteria.
**Accept**, **Reject**, and **Reviewed** only track your progress through the list.
They do not train or personalize the matching model, so marking candidates does not
change future results.
## Matching on a company
Company records have their own **Matching** tab. It does not run a job search: it lists
the candidates you already have within a chosen distance of the client, which is useful
for speculative approaches. See
[suggested candidates for a company](/docs/companies/company-record#suggested-candidates-for-a-company).
## Next steps
Send your best matches to the client.
Track applicants through the job's stages.
Every other place Spott uses AI, in one map.
# Jobs Quickstart
Source: https://docs.spott.io/docs/jobs/quickstart
Explore all guides related to jobs in Spott, from creating roles to managing pipelines and placements.
A job in Spott ties a role to a client company and carries the whole workflow: the
description, the candidate pipeline, advertising, inbound applications, and the
client portal.
Create a job, link it to a client, and tour its tabs.
Find the right jobs with search, filters, and sorting.
Publish the vacancy to your job board and multiposters.
Let AI surface the best candidates for the role.
Track candidates through every stage of the process.
Give clients real-time visibility into their roles.
# Searching Jobs
Source: https://docs.spott.io/docs/jobs/search-jobs
Find and organize jobs in Spott using search, filters, and sorting options.
You can quickly navigate to the Jobs page with `G` then `J`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
## 1. Open the Jobs view
From the left-hand navigation bar, select **Jobs** to open your full job list.
You can work in **list view** or **board view**. The list is the table you see by
default; the board groups your jobs into columns so you can read the whole desk at a
glance. Switch between them at the top of the view. Whichever you pick, the filters
and sorting below work the same way, and you can save the result as a view. See
[using views](/docs/settings/using-views).
Next to **Jobs**, tabs at the top of the page open the other tables that hang off your jobs:
**Applications**, every candidate in every job's pipeline; **Inbound Applications**, the
people who applied and are waiting for review (see
[inbound applications](/docs/jobs/inbound-applications#review-applicants-across-all-jobs));
and **Speculative Presentations**.
## 2. Search with keywords
Use the search bar at the top of the Jobs view to find jobs by text in their fields.
The search bar supports full **Boolean queries** (AND, OR, NOT). Spott switches to
Boolean mode automatically when your query contains double quotes.
Anywhere else in Spott that asks you to pick a job, the autocomplete puts **open jobs
first** rather than ranking purely on how well the title or company name matches. The
role you are staffing today comes up before the one you filled last year.
Autocompletes throughout Spott also **keep loading as you scroll**, instead of stopping
at the first twenty or so results. On a common surname or a client with many similar
job titles, the record you want is no longer hidden behind a list that refuses to go any
further: keep scrolling until you reach the end of the matches.
## 3. Filter your jobs
Open the **Filters** menu. Filters include:
* **Status**: the job's stage
* **Location** and **Company**. Location filters on a named area, a radius, or a [ZIP
or postal code](/docs/candidates/search-candidates#apply-structured-filters)
* **Users** and **Team**: who works on the job
* **Dates**: created at, start at, end at, and next task due
* **Details**: location type and employment type
* More fields under **Other**, such as the job name and target company
* Any **custom fields** your workspace has configured
You can combine multiple filters to narrow your results.
### See which jobs are live on job boards
Add **active job board postings** as a column in list view, or as a row on the cards in
board view, to read at a glance which jobs are actually advertised. You can filter on it
too, which is the fast way to catch the open role nobody ever posted. See
[multiposting](/docs/integrations/multiposting) for how postings get there.
The **Job Adverts** column also filters on when an advert went up and came down, its
**published at** and **unpublished at** dates. That answers the questions a single on/off
filter cannot: which roles went live this week, or which adverts come off the boards in
the next few days and may need reposting.
## 4. Sort your results
Arrange your job list by the field of your choice. Sorting options include:
* Name and Company Name
* Status
* Created at and Modified at
* Start At and End At
* Employment Type and Location Type
* Next Task Due At
Sorting can be applied together with filters to quickly focus on the most relevant
jobs.
Each filter you add appears as a chip at the top of the list. Remove any chip to
broaden your results again.
## 5. Work through the list without losing it
Opening a job from the table puts it in an overlay on top of your list, and the list
stays where it was underneath. Use the **up and down arrows** at the top of the overlay
to step to the next or previous job in your filtered set, so you can review a whole
selection without going back and forth.
# Lists
Source: https://docs.spott.io/docs/lists/lists
Create and use Lists in Spott to organize and collaborate on Candidates, Contacts, and Companies.
The **Lists** feature in Spott lets you group records into custom collections across **Candidates**, **Contacts**, and **Companies**.
Lists are ideal for keeping track of important records, such as a hotlist of highly placeable candidates.
**Lists are static, views are dynamic.** A list holds exactly the records you put in
it until you add or remove one yourself. A [view](/docs/settings/using-views) is a
saved set of filters, so records join and leave it on their own as they start or stop
matching. Use a list for a curated shortlist you want to keep working this quarter
even when those candidates no longer match the filter that found them. Lists still
support filtering, exporting, and saved views inside them.
## Create a new List
### Step 1. Open the Lists page
At the top of the page, you will find the **New List** button along with the Lists you have already created. Lists are grouped into **Personal** (only visible to you) and **Workspace** (visible to everyone).
### Step 2. Choose an entity type
When creating a new List, select one of the following types:
* Candidates
* Companies
* Contacts
## Work with a List
Once inside a List, you can manage its contents and configuration in several ways.
### Add items to a List
You can add records to a List in multiple ways:
* **Manually**, by clicking **Add items** in the top right and selecting records directly in Spott
* **By [importing a CSV or Excel file](/docs/get-started/import-csv)**, to bulk add
candidates, contacts, or companies
You can also add Candidates, Companies or Contacts by selecting the one or multiple checkboxes next to their name.
A list holds up to **10,000 records**, added in batches of 1,000.
### Take action on a List
A list is a working set, not just a folder. Select records inside it and act on them
in bulk:
* **Send an email** to the people on the list
* **Present candidates** to a client, straight from the list. See
[presenting candidates](/docs/candidates/presenting-candidates)
* **Enroll them in a campaign**, so a whole shortlist enters a sequence at once. See
[campaigns](/docs/outreach/campaigns)
### Export a List
Lists can be exported to **Excel** with **Export as Excel**, making it easy to share data or work with it outside of Spott.
### See which lists a record is on
**List membership** is available as a column on the Candidate, Contact, and Company
tables, so you can see at a glance which lists a record belongs to. You can also
**filter on it**, which is how you answer questions like "who on this shortlist has not
been contacted yet". On a candidate or contact, the lists they are on also show in the
**side panel** of their record.
### Filter, Sort and save views
Lists support the same filtering and usability features you are used to on record pages. You can apply filters and save views for quick access. See
[using views](/docs/settings/using-views).
Filtering on a user offers **deactivated users** as well as active ones, so a list built
by someone who has since left is still findable by their name.
## Manage List settings
You can update List settings at any time:
* Change the **name** of a List
* **Duplicate** a List to create a new one based on an existing setup
* Control **visibility** via the three-dot menu with **Change visibility**: a List is either **only visible to you** or **visible to everyone**
# Adding Notes
Source: https://docs.spott.io/docs/notes/adding-notes
Add notes in Spott, link them to meetings, people, clients, or jobs, and know where those notes appear.
You can quickly navigate to Notes with `G` then `N`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
Notes are key in Spott: besides keeping your team aligned, they fuel the AI features
with rich context.
There are two kinds. **Manual notes** are the ones you write yourself, in the editor
or as a voice note. **Automated notes** are created for you after a meeting or a call,
with a summary of what was said. Both end up in the same place and behave the same way
once they are linked to a record.
## Open the Notes view
From the left-hand navigation bar, select **Notes** to open the notes list. This view
shows all notes stored in your workspace. The search bar supports Boolean queries.
Once you type a query the results are ranked by **text relevance rather than by date**,
so the newest matching note is not necessarily at the top, and a full word match outranks
a partial one. Clear the search to get the date order back.
Filtering on the owner covers two cases beyond picking an active colleague:
* **No owner**: notes with nobody on them. Automated notes that never matched a person,
and imported history, collect here. It is the list to work through when you want the
back catalogue linked up.
* **Deactivated users**: notes written by someone who has since left, which is usually
what you want when you pick up their accounts.
## Add a manual note
Click **Add Note**. A pop-up editor opens. Type your note on the left; everything that
describes the note lives in the **side panel** on the right.
Notes **save automatically**; there is no save button, and moving to another page keeps
your changes.
### The side panel
The panel is grouped in three, so an open note stays readable instead of carrying a row
of badges above the text:
* **Properties**: who the note belongs to, **Link meeting** to attach it to a specific
calendar entry, and **Activity type**, which categorizes where the conversation
happened: in person, phone outbound, phone inbound, online meeting, or voicemail.
Creating a note from a meeting's detail page fills in the meeting for you.
* **Labels**: add labels (for example Intro, Interview, Business Development),
configurable from Settings. Labels are what you **filter and report on** later, so a
consistent set is what makes call and meeting activity measurable.
* **Linked records**: connect the note to a candidate, contact, job, or company with
**Link record**. A note can carry several. **Link record** opens a full search dialog
rather than a short dropdown, which is what you want when three people share a surname
or two jobs share a title: you get enough of each record on screen to pick the right
one.
On a note Spott captured for you, the same panel carries what it knows: the author, the
date and how long the call lasted, and the activity type it was logged under.
At the bottom of an empty note you get two more ways in:
* **Start from template**: insert a company note template for consistent structure, for
example an interview debrief or a client call summary. Templates keep note-taking
consistent across the team.
* **Record Note**: record a voice note of up to 5 minutes.
## Automated notes for meetings and calls
You do not have to write up a meeting or a call yourself. When the
[Note Taker](/docs/notes/note-taker) joins a meeting, or a call comes in through a
connected VoIP integration, Spott creates the note for you: a **summary of the full
transcript**, with the **recording and the transcript linked from the note** so you can
go back to what was actually said.
The summary follows one of your [insight templates](/docs/settings/templates#insight-templates),
picked automatically from what the conversation was.
Notes that Spott captures for you are matched to a person by their contact details:
* **Meeting notes** (from the [Note Taker](/docs/notes/note-taker)) link to the
person whose **email** matches a meeting attendee.
* **Call notes** (from a connected VoIP integration) link to the person whose **phone
number** matches the call.
If no email or phone match is found, the note is not attached to a person and only
appears in the main Notes list. Use the **Link record** chips to attach it manually.
### Rewrite an automated note
The summary is not final. Open the note's **⋮** menu for three actions:
* **Resummarize transcript** writes the note again from the original transcript. You
choose which [insight template](/docs/settings/templates#insight-templates) to use and
**which language** to write it in, so you can rerun an intake summary against a better
template, or turn a Dutch conversation into an English note for a client.
* **Generate suggestions** re-runs the suggested profile updates and follow-up tasks
from the same transcript.
* **Delete Note** removes it, permanently.
A deleted note is gone. There is no trash, no undo, and no version history, so an
earlier draft of a note that was edited cannot be recovered either. Support cannot
restore one for you.
Resummarizing works from the **transcript**, so it is available on notes Spott
captured, not on notes you typed yourself. Improving a template does not rewrite the
notes already written with the old one: rerun them here if you want them updated.
## Writing in a docked note
A note can be **docked** into a floating window that stays on screen while you move
around the rest of the record, so you can write while reading the CV or the past
correspondence rather than from memory.
A docked note is a full note, not a scratchpad: **labels and linked records can be set
from the docked window**, so a note written while you were reading something else does
not have to be reopened afterwards to be filed. That matters more than it sounds, because
an unlinked note is invisible to matching, summaries, and Ask AI.
## Where your note appears
Linked notes are visible in multiple places:
* The main Notes list
* The person profile you linked, candidate or contact
* The company profile you linked
* The job record you linked
* The meeting entry, if one was attached
Open any linked record and go to its **Notes** tab to see the same note in context.
To discuss a note with a colleague rather than edit it, leave a
[comment](/docs/notes/comments) on it and `@mention` them.
**Spott's AI can only use a note as context once it is linked to a record** (for
matching, summaries, and Ask AI). An unlinked note is effectively invisible to the AI.
# Comments
Source: https://docs.spott.io/docs/notes/comments
Discuss a candidate, contact, company, or note where the context lives, and pull a colleague in with an @mention.
**Comments** are the conversation about a record. Instead of asking a colleague about a
candidate in a chat tool, where the question is separated from everything it refers to,
you leave the question on the record itself and the whole thread stays with it.
Comments are available on **Candidates**, **Contacts**, **Companies**, and
[**Notes**](/docs/notes/adding-notes).
## Turn comments on first
Comments are off until an admin enables them. Go to **Settings → Features → Workspace**
and switch on **Enable Comments**, the last toggle in that list. Until it is on there is
no comment section on any record, which is what people run into after reading about the
feature and finding nowhere to type.
## Leave a comment
Open the record and find the **Comments** section. Type your comment and click
**Comment**. Everyone with access to the record sees the thread.
On a note, the comment box sits at the **bottom of the note dialog**, below the note
content itself. That separation matters for mentions: typing `@` inside the body of the
note writes plain text, and only the comment box at the foot of the dialog reaches a
colleague.
## Pull someone in with @
Type `@` and start typing. The picker matches **people and records** together, each
result labelled with what it is:
* A **colleague**, to bring them into the thread
* A **candidate**, **contact**, **company**, or **job**, to point at the record you mean
Mentioning a colleague notifies them **in the app, by email, or both**, following what
they have chosen under **Settings → Notifications**. See
[notifications](/docs/settings/notifications).
The mention leaves no marker of its own once the comment is posted, so there is no list
of who you pulled in. Mention someone twice and they are notified twice, which is worth
remembering before re-tagging a colleague to chase an answer.
Mention the person who can actually answer rather than writing an open question: the
mention is what turns a comment into something that reaches someone. Mentioning a record
does the opposite job, giving whoever reads the thread a way straight to the candidate or
job you are talking about, without pasting a link.
## Comments and the AI
Comments are **indexed for [Ask AI](/docs/get-started/ai-in-spott)**, the same as your
other content, so a question like "what did the team say about this candidate" reaches
the discussion and not only the notes.
That is worth knowing in both directions. A decision explained in a comment stays
findable months later. So does a throwaway line, so write comments you would not mind
being surfaced back to you.
**A note is what happened, a comment is what you think about it.** Notes carry the
content of a call or a meeting; comments are the team discussing that content. Both are
searchable, so the split is about keeping a record readable, not about hiding anything:
keep the debrief in the note and the "can you have a look at this one" in a comment.
# Note Taker
Source: https://docs.spott.io/docs/notes/note-taker
Connect your calendar and let the Spott Note Taker transcribe and summarize your Zoom, Teams, and Google Meet meetings.
The Spott Note Taker joins your online meetings, transcribes them in any language,
and turns them into structured meeting notes.
## Quickstart
1. Connect your **Microsoft Outlook** or **Google** calendar under
**Settings → Accounts**. Spott syncs your calendar on a rolling basis to identify
upcoming online meetings.
2. Go to **Settings → Calls** and toggle **Enable Spott Note Taker** on.
3. Accept the terms and conditions.
Spott only joins meetings that include a valid Zoom, Teams, or Google Meet link.
## Turning the Note Taker on and off
The same toggle in **Settings → Calls** controls both directions. Switching **Enable
Spott Note Taker** off immediately unschedules the bot from upcoming meetings and stops
it being scheduled for new ones. Existing transcripts and summaries are kept.
You do not have to choose once and live with it. Even with the Note Taker off, you can
**let it join a specific meeting by hand**. For a step-by-step video, click
[here](https://www.tella.tv/video/vid_cmrxa2xjb004r0aj8g3w5dd5k/view).
You can also **dial the Note Taker in mid-meeting**, which is what you want when
someone removed it or you forgot to switch it on. Use **Dial in Note Taker** from the
meeting in Spott and it joins the call in progress.
### Keep it out of a specific meeting
The bot joins **any meeting you are an attendee of**, which includes an invitation that
was merely forwarded to you. That is how it turns up in a client meeting you were copied
on but are not really part of.
* **For one meeting**, open that meeting in the calendar and deselect the note taker.
* **By default**, set **Settings → Calls** to **Do not join by default**, then switch it
on per meeting, or dial it in once the call has started.
That setting is **per user**, with no workspace-wide off switch. Where a shared mailbox
such as `bookings@` holds a Spott seat, its own setting is what schedules the bot onto
everything it books, so change it on that account rather than on yours.
* **Other participants can trigger the Note Taker.** Even if you disabled it, the bot
may join if another invited participant has automatic joining enabled.
* **Settings changes take time** to apply to already-scheduled meetings.
* You can **disconnect Spott at any time** to stop future meeting joins altogether.
Two limits worth knowing. The Note Taker works on **live calendar meetings only**, so
there is no way to upload an audio file and have it transcribed. And changing its display
name or avatar needs the **Manage workspace** permission, with meetings that are already
scheduled keeping the avatar they were created with, so a new one shows up on new meetings
only.
## How it works
Once enabled, the Note Taker will:
* Schedule the Spott bot to join the **lobby** of your future online meetings from
your synced calendar. Meetings do not need to be created in Spott.
* Join when admitted by the organizer.
* Capture the meeting to **transcribe** what was said, regardless of language, and
generate concise, structured meeting minutes. These appear in Spott typically 2 to
5 minutes after the meeting ends.
The summaries follow the **insight templates** you can customize in Settings, so the
minutes come out in the structure your team wants rather than a generic recap. See
[insight templates](/docs/settings/templates#insight-templates).
Summaries pick up **salary, compensation and benefits** discussed in the call, which
for a recruiter is usually the part of an intake worth re-reading. As with any
transcription, check the number against your own notes before you quote it back to a
client or a candidate.
Transcription is given your recruiting context to work from, so the words it most often
got wrong, people's and companies' names, skills, and the job titles you are hiring for,
come out right more often than a general-purpose transcript would manage.
The Note Taker can be denied from the lobby, and once it is in the meeting you can
**remove it like any other attendee**. You stay in control throughout.
## Who can read the notes
Meeting notes are **visible to everyone in your workspace** by default, and that
includes internal meetings between colleagues. A one-to-one about pay or performance is
written up and readable by the team unless you delete the note afterwards.
Deleting the note does not withdraw the meeting itself. The **recording and transcript
stay available to the people who were in the meeting** through the calendar event, so
deletion removes the note from Spott rather than the record of the conversation.
Where a conversation should not be written up at all, keep the Note Taker out of it in
the first place, using the per-meeting opt-out above.
## Video recording
Admins can decide whether **video recording** is enabled for the whole workspace with
the **Enable Video Recording** setting. When disabled, new meeting videos are not
stored. Individual recordings can also be **deleted per meeting**; deletion is
permanent.
To share a meeting with a client, **download** the transcript or the video from the note
and send it on yourself. There is no way to give someone outside your workspace access to
the note.
## Troubleshooting
**Note Taker not showing up?** Make sure the calendar event has a valid Zoom, Teams,
or Google Meet link and was created in the connected account. Meetings the Note Taker
will join show a small camera icon in the Spott Calendar.
**Note Taker did not join?** Check that the toggle is enabled and that the organizer
did not reject it from the lobby.
# Notes Quickstart
Source: https://docs.spott.io/docs/notes/quickstart
Explore all guides related to notes in Spott, from adding quick comments to automatic meeting notes.
Notes capture the context of your conversations: intake calls, interviews, and
internal discussions. They matter double in Spott, because notes also feed the AI
features, from matching to summaries.
Write notes and link them to people, companies, jobs, and meetings.
Let the Note Taker join your online meetings and turn them into structured notes.
Organize notes with labels, configured in Settings.
Keep note-taking consistent with company note templates.
# Best practices
Source: https://docs.spott.io/docs/onboarding/best-practices
Four habits that make Spott work for you: tag everything, use tasks, centralise information, and lean on AI.
Spott rewards consistency. These four habits are what separate a workspace that
compounds in value from one that becomes a filing cabinet.
## 1. Tag everything, every time
Link candidates, jobs, companies, notes, and emails consistently. This keeps information
connected, improves reporting, and lets the AI deliver smarter, more accurate insights.
Spott's AI can only use a note as context once it is linked to a record. An unlinked
note is effectively invisible to the AI.
How linking works, and what gets tagged automatically.
## 2. Use tasks to drive accountability
Never let candidates or clients slip through the cracks. Assign and track tasks to ensure
timely follow-ups and shared ownership across the team.
Manual tasks, automated tasks, and where they surface.
## 3. Centralise all information
Keep communications, notes, and documents in Spott. The more context in one place, the
less time spent switching tools, and the better your decisions and AI results.
Sync your mail so conversations land on the record.
Capture calls and meetings without typing.
## 4. Leverage AI to work smarter
Move beyond manual filtering.
* **Ask AI** for fast, structured candidate insights.
* **AI search** to surface stronger matches using notes, emails, and more.
Everything the AI does, and what it reads to do it.
Fix the problems that come up most, before they reach us.
# Billing and credits
Source: https://docs.spott.io/docs/onboarding/billing
Check your seats, read your credit balance, and top up when you run low.
In this section you learn where to check your plan and active seats, how to read your
credit balance, how to buy more credits, and which actions spend them.
1. [Billing section](#1-billing-section)
2. [Credits section](#2-credits-section)
3. [Where credits get spent](#3-where-credits-get-spent)
To open it, click the Spott logo in the top-left corner, then select **Billing**.
Billing is an admin area. If you do not see it in the settings sidebar, your role does
not have access to it.
## 1. Billing section
Here you find the number of active seats against your entitlement, along with your
current plan and billing status.
## 2. Credits section
Credits are what AI actions in Spott spend: enriching a profile, auto-updating a record,
and similar. This section shows your balance and lets you buy more.
### 2.1 What you can see
* **Available credits**: what you can use right now.
* **Monthly subscription**: credits you receive each month, if you are subscribed.
* **Credit costs**: how many credits each action uses.
Your monthly allowance lands on the **first of each month**, one allowance per seat.
Credits you did not spend carry over rather than reset, so what arrives is added to the
balance you already had.
### 2.2 What you can do
* **Subscribe monthly** for discounted credits.
* **Buy credits one-time** as needed.
Credits are pooled at workspace level, so the balance you see is shared across your
whole team rather than held per user.
## 3. Where credits get spent
Enrichment is the main consumer of credits. If you want the full picture of what each
action costs before you turn features on, the reference pages go deeper:
What enrichment finds, and what each lookup costs.
Keep profiles current automatically, and what that spends.
Turn credit-consuming features on or off for the workspace.
Everything Spott's AI does, so you know what you are paying for.
## Now your turn
* [ ] Check your **active seats** against your plan
* [ ] Read your **credit balance**
* [ ] Decide between a **monthly subscription** and a **one-time top-up**
Now that your workspace and data are ready, start working the records.
# Bring your data in
Source: https://docs.spott.io/docs/onboarding/bring-your-data-in
Get your candidates, clients, and jobs into Spott, yourself or with our team running the migration.
In this section you learn which route suits the data you are holding, then how to bring in
your candidates, your clients, and your jobs, what only a managed migration can move, and
how to check that everything landed.
1. [Choose how your data gets in](#1-choose-how-your-data-gets-in)
2. [Bring in your candidates](#2-bring-in-your-candidates)
3. [Bring in your clients](#3-bring-in-your-clients)
4. [Bring in your jobs](#4-bring-in-your-jobs)
5. [Bring in the rest](#5-bring-in-the-rest)
6. [Check what landed](#6-check-what-landed)
To start an import, open **Settings** and select **Import**.
## 1. Choose how your data gets in
There are two routes, and most firms use both.
**Do it yourself** when your data is a spreadsheet or a folder of CVs. Everything in
sections 2 to 4 is self-serve, and you can run it today.
**Let our team run it** when you are moving a full ATS across, with jobs, applications,
notes, placements, and history attached to each record. Your data is first migrated into a
separate **validation environment**, where you review it together with our team to confirm
everything came across correctly. Only once you are happy with the result do we complete
the migration to production.
That validation step matters: it means you check and sign off on the imported data
before your team starts working in it.
| What you are moving | Route |
| - | - |
| A spreadsheet of candidates or contacts | CSV or Excel import, section 2 |
| A folder of CVs | Bulk CV upload, section 2 |
| Client companies and their contacts | CSV import or the extension, section 3 |
| Live vacancies | Manually or by URL, section 4 |
| Applications, notes, placements, history | Managed migration, section 5 |
How a managed migration works, and how to prepare your export.
## 2. Bring in your candidates
You have five self-serve routes into the candidate database. Pick whichever matches the
shape of the data you are holding.
### 2.1 Import a CSV or Excel file
The import wizard bulk adds records to Spott, for example when migrating from another
system or uploading a sourcing list. Each row becomes one record. You can import **up to
1,000 records** per import, from **CSV or Excel (.xlsx)** files.
When you upload a file, you choose what the rows represent:
| Option | What it does |
| - | - |
| **Candidates** | Imports names, emails, work history, education, and more as candidate records. |
| **Contacts** | Imports client contacts, their roles, and their companies. |
| **Any** | Spott detects automatically whether each row is a candidate, a contact, or a company. |
The wizard then guides you through mapping your columns onto Spott fields, and runs the
import. Under **Actions** you can also **Add to list** or **Add to job**, which applies to
every record in the import.
**What a CSV import cannot do**
* **Custom fields cannot be mapped.** The dropdown offers standard fields only, so the
[custom attributes](/docs/settings/customizing-candidate-profiles) your workspace has
configured are not filled by an import. Set those on the records afterwards.
* **Records are created, not updated.** An import that matches an existing profile adds
it to the job or list without overwriting its data.
* **Importing into a job cannot set application status or add comments.** The people are
added as applications; set the stage and comments in the pipeline after the import.
A LinkedIn URL column imports the link to the person's profile, not the profile itself.
To pull in the profile content, use the browser extension.
Column by column: what each field expects, and how matching works.
### 2.2 Upload CVs in batches of 1,000
If your data lives as CV files rather than a spreadsheet, upload them and let Spott parse
each one into a candidate record.
You can upload **up to 1,000 CVs at once**. Above 20 CVs there is no preview step, so the
records are created directly. Duplicate records are flagged in red and you decide whether
to create them anyway or skip them.
The attachment does not have to be a PDF. Word documents (.docx) are parsed too.
### 2.3 Forward CVs by email
Forward a CV to **[cv@spott.io](mailto:cv@spott.io)** and Spott parses it into a candidate record, with the CV
attached to the profile.
Forward from your work email, the address you use to sign in to Spott. That address is
how Spott knows which workspace the candidate belongs to. Forwarding from a personal
address will not create the record.
### 2.4 Import from LinkedIn with the extension
Use the browser extension to import candidates from LinkedIn, Sales Navigator, or
Recruiter, one profile at a time or from a search result list. This is the route that
brings the profile content across, not just the link.
### 2.5 Push candidates in from other tools
Connected sourcing tools such as Juicebox push candidates straight into Spott, and the API
inserts them programmatically.
Every route into the database, including maildrop and the extension.
Install, connect, and import from LinkedIn.
Push candidates in from connected tools.
Refresh a record from a new CV, a self-service link, or LinkedIn.
## 3. Bring in your clients
Companies and contacts use the same wizard as candidates, with one useful shortcut.
### 3.1 Import your contacts, and get companies for free
Run the import wizard and pick **Contacts**, or **Any** if your file mixes people and
organisations. Companies need no file of their own: whenever a row has a company on it,
Spott matches it to an existing company or creates a new company record, and links the
person to it.
This is the fastest way to stand up a client base. One clean contact file gives you
contacts, their companies, and the links between them in a single import.
### 3.2 Add clients from LinkedIn or by hand
Use the extension to create a company or contact straight from a LinkedIn page, or add
either manually from the **Companies** and **Contacts** views when you only have a
handful.
From the Companies view, a company preview, LinkedIn, or an import.
Add a contact, link them to a company, and find your way around the profile.
Link parent companies, subsidiaries, and divisions after the import.
Import straight into a list to keep a batch together.
## 4. Bring in your jobs
Jobs work differently from people: **there is no CSV route for jobs.** You have three ways
in.
* **Import from URL.** In the **Add New Job** dialog, paste a public job-posting link and
Spott fills the job fields from the posting. Review or edit before saving.
* **The browser extension.** Import the posting from the vacancy page you are looking at.
* **Manually.** Click **Add Job** and enter the title, company, and status, plus any
details you have.
A larger back catalogue of jobs, with their applications and history attached, comes
across through the managed migration rather than by hand.
Create a job manually, from a URL, or by import, and link it to a client.
## 5. Bring in the rest
Some things cannot be self-imported, and it is worth knowing that before you plan your
first week:
* **Applications**, the link between a candidate and a job, with its stage and history
* **Notes and files** attached to existing records
* **Placements** and historical revenue
* **Activity history** from your old system: emails, calls, and meetings
All of these come across through the managed migration, into the validation environment,
where you sign them off before go-live.
What our team moves, the validation step, and how to prepare your export.
## 6. Check what landed
Before your team starts working in the data, spot-check it.
* **Duplicates.** Spott deduplicates on email address, phone number, and LinkedIn URL, so
re-adding someone enriches the existing profile rather than creating a copy. Anything
that slipped through can be merged.
* **Custom fields.** Open a record you know had custom data in the source file and confirm
what is empty, since custom fields do not come through a CSV import.
* **Company links.** Check that imported contacts are attached to the right company, and
merge any near-duplicate companies the import created.
* **Job and list membership.** If you imported into a job, set the application stages in
the pipeline.
How Spott spots duplicates and how to merge them.
Consolidate duplicate companies and jobs into one record.
Fill in the email addresses and phone numbers your file was missing.
Check what landed by searching and filtering the imported set.
## Now your turn
* [ ] Import **one test CSV** of five rows, and check what mapped
* [ ] Bulk-upload **five CVs** and review the records they created
* [ ] Forward **one CV** to [cv@spott.io](mailto:cv@spott.io) from your work address
* [ ] Import **one contact file** and confirm the companies were created and linked
* [ ] Add **one job** by pasting a public posting URL
* [ ] Open one imported record and note which **custom fields** are still empty
Seats, credits, and topping up.
# Home dashboard
Source: https://docs.spott.io/docs/onboarding/dashboard
See what needs attention, track your progress, and open the records behind each number.
In this section you learn how to read your recruitment activity, review your pipeline and
open jobs, set performance targets, and find records from the home dashboard.
1. [Understand your performance](#1-understand-your-performance)
2. [Review your current pipeline and open work](#2-review-your-current-pipeline-and-open-work)
3. [Find a record with global search](#3-find-a-record-with-global-search)
The dashboard is your personal home screen when you open Spott. It gives you a real-time
snapshot of your recruitment activity, from revenue and calls to open jobs and candidate
progress. If you are elsewhere in the platform, click **Dashboard** at the top of the
left-hand navigation bar, or use the two-key shortcut: press **G**, then **D**.
## 1. Understand your performance
The **My statistics** area gives you a real-time view of recruitment activity for the
period and the people you select.
### 1.1 Choose whose activity and which period to review
Use the **time period filter** in the top right corner to review figures for this week,
this month, this quarter, or a custom date range.
If you have permission to manage analytics, use the **user filter** to switch between your
own activity, a teammate, or a team.
Without permission to manage analytics the user filter does not appear, and the
dashboard shows only your own figures.
### 1.2 Choose which metrics appear
Open **Configure Dashboard** from the gear icon to choose the metric cards shown at the top
of the dashboard. Drag the cards into the order that makes the most sense for your team.
* **Revenue and hiring:** total revenue booked, total placements added, total jobs
added, and total candidates added.
* **Calls and meetings:** total phone calls excluding attempted calls, total outbound
calls, total online meetings, and total in-person meetings.
* **CV activity:** total CVs sent, total standard CVs sent, and total speculative CVs
sent. These totals are mapped to stages in the
[settings](/docs/settings/stages).
* **Interview activity:** total 1st interviews, total 1st standard interviews, and
total 1st speculative interviews.
* **Conversion:** CV sent fill rate and 1st interview fill rate.
Dashboard configuration is workspace-wide. Turning a metric on or off changes
everybody's dashboard, not only yours.
### 1.3 Set targets and track progress
Open **Configure Targets** to set a goal per user and per metric. The target grid has one
row per teammate and one column per metric. Leave a cell at **0** when that target does not
apply to someone.
Choose the **time window for targets**, for example **Every month**, to define the period
each target covers. Metric cards then show actual performance against the goal for the
dashboard period you are looking at.
Changing the target time window rescales every target value automatically. Targets also
scale to match your dashboard filter, so a monthly target of 20 appears as 5 in a weekly
view.
### 1.4 Open the records behind a number
Click any metric card to see the records included in its total. Click **Total Revenue
booked**, for example, to review the fee split behind that figure.
Dashboard metrics are a fixed set. To measure something these cards do not cover, build
a custom insight in [Reports](/docs/onboarding/reporting), or see
[building reports](/docs/get-started/reports) for the full builder.
## 2. Review your current pipeline and open work
The lower part of the dashboard shows what is moving through your pipeline, and lets you
open the applications, candidates, and jobs behind it.
### 2.1 Check Pipeline summary and Job status
Use these two panels to understand the volume behind each stage or status:
* **[Pipeline summary](/docs/jobs/job-pipeline)** shows the applications you own in each
pipeline stage. Sort the
panel to put the stages you use most at the top, then click a stage to see the
applications behind its total.
* **Job status** shows the jobs you are a team member on, grouped by status. Click a status
to see the jobs behind its total.
### 2.2 Open a candidate from My candidates in pipeline
Use **My candidates in pipeline** to review the candidates you are managing across active
job stages. Each row shows the candidate, job, client, current stage, and recent activity.
Click a row to open the application.
### 2.3 Open a job from My open jobs
Use **My open jobs** to review the active roles you own or collaborate on. Click a job to
open its record and carry on working on it.
The dashboard updates in real time as you log calls, add candidates, or move applications
through stages.
## 3. Find a record with global search
Global search opens a record directly when you already know who or what you need.
### 3.1 Search from anywhere
Click **Search** in the top left corner, or press `⌘K` / `Ctrl+K`. See
[global search](/docs/get-started/global-search) for everything it matches. You can search for:
* **People and organisations:** candidates, contacts, and companies by name.
* **Contact details:** phone numbers and email addresses.
* **Unique identifiers:** any supported record by its record ID, once an admin has
switched on **Show Record IDs** under **Settings → Features → Workspace**. The ID then
appears in the top right of a record, and **Copy** gives you the full version to paste
into search.
Every card on the dashboard, the targets, the drill-downs, and who can see what.
The two-key jumps like G then D, and the rest of them.
## Now your turn
* [ ] Open **one candidate** from **My candidates in pipeline**
* [ ] Use the **global search bar** to find a record
* [ ] Set a **target** on one metric and check how you are tracking
Email and meetings, in one place.
# Inbox and calendar
Source: https://docs.spott.io/docs/onboarding/inbox-calendar
Keep conversations in context, schedule meetings, and let candidates or clients book time with you.
In this section you learn how to connect and use the unified inbox, create reusable message
templates, control email visibility, schedule and manage meetings, and share Scheduler
booking links.
1. [Use the unified inbox](#1-use-the-unified-inbox)
2. [Use your calendar](#2-use-your-calendar)
To open your conversations, click **Inbox** under **Workspace** in the left-hand navigation
bar. To manage meetings, click **Calendar** in the same section.
## 1. Use the unified inbox
The inbox brings your connected communication channels into one place and keeps each
conversation attached to the right person in Spott.
### 1.1 Connect your account and let the first sync finish
Before using the inbox, open **Settings → Accounts** and confirm that your Microsoft
Outlook or Google account is connected.
If **Inbox** does not appear in the left-hand navigation, the unified inbox still has to be
turned on for your workspace under **Settings → Features**.
The first mailbox and calendar sync can take up to 12 hours. New messages keep arriving
while Spott imports the older history, so an incomplete history during that window does
not mean the connection failed.
### 1.2 Find, read, and reply to conversations
Open **Inbox** to review communication from the channels connected to your account:
* **Email:** messages from your connected Gmail or Outlook account.
* **WhatsApp:** conversations from your connected WhatsApp account.
* **SMS:** messages sent through an SMS-capable number on your VoIP account.
Use the tabs at the top of the page to move between **Inbox** for active conversations and
their full thread history, **Outbox** for messages that are scheduled or waiting to send,
and **Message templates** for reusable email content.
Select a conversation in the left column to open its history. Use filters such as **Awaiting
a reply** to focus on the conversations that still need action.
From an open thread, click **Reply** or **Reply all**. In the composer you can attach files
or add your signature, link the conversation to a Spott record and add labels, start from a
message template, insert a Scheduler booking link, and ask AI to draft a candidate or job
pitch.
Replies are sent through the connected Gmail, Outlook, or WhatsApp integration and stored
in Spott. Candidate conversations also appear on the candidate profile's **Communication**
subtab.
The inbox only syncs messages with people who already exist in Spott as a candidate or a
contact. If a sender's email address is not attached to a person in your workspace, add
that person before expecting the conversation to appear.
### 1.3 Create and use a message template
The templates here are for email. Presentation and job description templates are a separate
set, managed under **Settings → Templates**.
Open **Inbox**, select **Message templates**, and click **New email template**. Choose
whether the template is **Personal** or shared with the **Workspace**, then fill in:
* **Name:** the internal name you use to find the template.
* **Subject:** the subject recipients see.
* **Email body:** the reusable message content.
* **Attachments:** files that should go out with the message.
Type `{` in the editor to add variables such as the recipient's name, the job name, or the
company name. Variables fill in automatically when the matching information exists in Spott.
You can also add **AI generated content**, choose whether it draws from the recipient,
candidate, contact, company, or job, and give Spott an instruction for the passage it should
write.
Templates save automatically as you type, there is no Save button. Once created, personal
and workspace templates are available through **Start from template** in the inbox, and can
also be used in campaigns.
Give templates clear, specific titles, such as "Candidate intro, software engineer", so
you and your team can pick the right one quickly.
### 1.4 Choose what colleagues can see
To set your default email and calendar visibility, open **Settings → Accounts**, then
**Default email and calendar sharing**. Choose:
* **Metadata only:** colleagues see participants and timestamps, but not the subject or the
body.
* **Subject line and metadata:** colleagues also see the subject line.
* **Full access:** colleagues see the body, subject, attachments, participants, and
timestamps.
This is a personal setting, so every user picks their own sharing level. WhatsApp
conversations always stay private to the connected user.
Channels, filters, replies, syncing, and record linking.
Personal and workspace templates, variables, and AI-generated content.
## 2. Use your calendar
The calendar keeps meetings in sync with Outlook or Google and gives you one place to
schedule, update, and review events.
### 2.1 Review your calendar
Open **Calendar** from the left-hand navigation bar. You can switch between list and
calendar views, review **Upcoming meetings**, and show teammates' calendars beside your own
when you are coordinating availability.
Your Outlook or Google account has to be connected under **Settings → Accounts**. After the
initial sync, calendar changes appear in Spott in near real time.
### 2.2 Schedule a meeting
From the calendar, click **Schedule meeting** in the top right corner. You can also
double-click a time slot, or click and drag across the time you want to reserve.
Fill in the meeting details before sending the invite:
* **Recipients:** everyone who should attend.
* **Subject and body:** what the meeting is about.
* **Date and time:** the schedule, the recurrence, or the **All day** option.
* **Location:** a physical location, or switch on **Online meeting**.
* **Show as free:** keep the time available instead of marking it busy.
* **Hide attendee list:** stop recipients from seeing one another.
* **Dial in [Note Taker](/docs/notes/note-taker):** let Spott record and summarise the
online meeting.
Keep **Send calendar invite** switched on when attendees should receive an invitation. If
the meeting is remote, switch on **Online meeting** so Spott creates a Microsoft Teams or
Google Meet link from your primary connected account.
Spott does not generate Zoom links. The Note Taker can still join a Zoom meeting when it
is invited to an existing Zoom link.
### 2.3 Update or cancel a meeting
Click a calendar event to open its details. From there you can:
* **Toggle Note Taker:** turn recording and summarisation on or off for this meeting.
* **Reschedule:** change the date or time and send the update to attendees.
* **Cancel event:** cancel the meeting and notify attendees.
* **Transcript:** open the transcript and summary after a recorded meeting.
For a step-by-step video on manually letting the Note Taker join a meeting, click
[here](https://www.tella.tv/video/vid_cmrxa2xjb004r0aj8g3w5dd5k/view).
### 2.4 Let others book time with Scheduler
To create a booking link, open **Settings → Calls**, and open **Scheduler**. Switch on
**Enable Spott calendar scheduler**, then click **Create scheduling link**.
Configure each link for the kind of meeting it represents:
* **Meeting duration and slot interval:** the meeting length and the available start times.
* **Maximum days in future:** how far ahead someone can book.
* **Minimum booking notice:** how much notice you need before a meeting.
* **Minimum booking buffer:** the gap to leave before and after existing meetings.
* **Weekly availability:** the bookable times for each day.
You can create several links with different rules, and enable or disable each one
separately.
Copy a link to share it directly, or insert it while writing an email with **Insert calendar
scheduler link**. Anyone opening the link only sees times allowed by your connected calendar
and by that link's booking rules.
Bookings appear in your calendar and link to the relevant records in Spott.
Events marked **Busy** or **Out of office** block Scheduler availability. Events marked
**Free** or **Tentative** do not. Outlook creates Teams links and Google creates Meet
links, based on your primary connected account.
Availability, meeting types, booking rules, and sharing links.
Invites, meeting links, attendees, and event updates.
## Now your turn
* [ ] Connect your mailbox and check that conversations land on the right records
* [ ] Create one **email template**, personal or workspace
* [ ] Set your **email sharing level**
* [ ] **Schedule a meeting** from the calendar
* [ ] Create a **scheduling link** and insert it into an email
Use reminders and shared context to keep your desk moving.
# Manage candidates
Source: https://docs.spott.io/docs/onboarding/manage-candidates
Get candidates into Spott, find them again, keep their record current, and put them in front of a client.
In this section you learn how to get new candidates into Spott, how to find them again in
your database and build views you can come back to, how to read and maintain a candidate
profile so everything about a person stays in one place, and how to reach out and put
someone forward for a job.
1. [Source the candidates you need](#1-source-the-candidates-you-need)
2. [Find the candidates you need](#2-find-the-candidates-you-need)
3. [Find your way around a candidate profile](#3-find-your-way-around-a-candidate-profile)
4. [Get the full picture on one candidate](#4-get-the-full-picture-on-one-candidate)
5. [Keep a profile up to date](#5-keep-a-profile-up-to-date)
6. [Get in touch](#6-get-in-touch)
7. [Put a candidate forward for a job](#7-put-a-candidate-forward-for-a-job)
## 1. Source the candidates you need
There are five ways to add candidates: manually, from CVs, by email, from a CSV file, or
from LinkedIn. Pick whichever fits how you already work.
From the left-hand navigation bar, select **Candidates** to view your full database.
Spott → Dashboard → Candidates
### 1.1 Add candidates manually
Add one candidate at a time by entering their details directly. Best for one-off
additions where you want full control over the record.
Candidates → Add from CV → Add Candidate Manually
### 1.2 Add candidates via CV upload
Upload CVs in bulk and let Spott pull out the candidate details for you, with no manual
entry required.
Candidates → Add from CV → Upload → Select files
You can upload **up to 1,000 CVs at once**. Above 20 CVs there is no preview step.
Duplicate records are flagged in red, and you decide whether to create them anyway.
How Spott detects duplicates, and how to merge two records into one.
### 1.3 Add candidates by forwarding CVs
Already have CVs landing in your inbox? Forward them to Spott and skip the
download-and-upload step entirely. The attachment does not have to be a PDF, Word
documents are parsed too.
Forward to [cv@spott.io](mailto:cv@spott.io)
Unlike a drag-and-drop upload, there is no screen where you check the parsed fields before
the record is created, so an occasional detail can be missed. Spott replies by email when
something goes wrong, for instance when the mail arrived without an attachment.
The replies you can get back, and how to fix each one.
### 1.4 Add candidates from a CSV file
Another way to bring new candidates into Spott is to import a CSV file. This is the route
for a list you already hold as a spreadsheet, or for an export out of the system you are
leaving behind.
Field mapping, limits, and what import can and cannot update.
### 1.5 Import LinkedIn profiles
Import leads or candidate profiles from LinkedIn, Sales Navigator, or Recruiter into your
Spott database using the browser extension. You import one profile at a time, with the side
panel open on the profile you are looking at. Saving people to a Recruiter project does not
carry them across on its own.
Install it, connect it, and see what it can import. Chrome and Edge only.
Every route in, in reference form, including what each one fills in for you.
## 2. Find the candidates you need
The **Candidates** page is your database. You can record, update, and access candidate
information there, and take action on a candidate in one click, without opening their
profile first.
### 2.1 Search and filter the candidate database
The **search bar** at the top left of the candidate table takes names and keywords, and
supports full Boolean queries with **AND**, **OR**, **NOT**, and parentheses. To look
someone up by email address or phone number, use global search (`⌘K` / `Ctrl+K`) instead.
The **Filters** button opens grouped filters: job titles, experience level, company
history, location, education, compensation, and your own custom fields. Filters combine
with AND/OR logic, or into filter groups for more complex queries.
If you would rather not work through the menus, describe your ideal profile in your own
words and Spott turns the description into filters for you.
### 2.2 Save your table setup as a view
A **view** stores a whole table setup: its filters, sorting, which columns are visible,
their order, and their widths. Frequently used filter combinations can also be saved as
**preset filters** and reapplied in one click. Applying filters does not save them, so
press **Save view** once the table looks the way you want it.
A **view** is dynamic: it re-runs its filters every time you open it. A **list** is
static until you add or remove records yourself. Use views for "everyone matching these
criteria", lists for "this specific set of people".
### 2.3 Run a deeper search from the Search tab
When filters are not enough, the **Search** tab runs an AI-ranked search across candidate
profiles, notes, and CV attachments. Describe the profile you are after or point it at an
existing job description, and Spott proposes pre-filters and ranking criteria for you to
review before it runs.
Structured filters, Boolean queries, deep search, and AI search.
Save filters as a view, and configure columns.
## 3. Find your way around a candidate profile
Everything Spott knows about a person lives on one profile, so it pays to know the layout
before you start working in it. Open the **Candidates** page in the left menu and click a
candidate's name. The header shows their name, role, company, and contact details, and the
profile below it is organized into three tabs:
* **Overview**: all information about the person.
* **Candidate**: their applications, placements, and matching.
* **Inbox**: the full message history, across all channels.
### 3.1 Take action from the profile header
The top right corner of the profile holds the candidate's **LinkedIn profile**, the
**Present** button for sharing them with a client, and the **Actions** menu. From Actions
you can send an email, send a calendar invite, add the candidate to a job, add them to a
list, add a task, add a note, enroll them in a campaign, or merge two people.
### 3.2 Use the side panel
The **Overview** tab has a row of subtabs on the left and a side panel on the right. That
panel holds **Details**, **Activity**, and **Ask AI**, the three things you reach for most
often while reading a profile.
Every person exists only **once** in Spott. Someone can be a candidate, a client contact,
or both, and their notes and history stay on the same record even when they change
companies or roles. The **Add as contact** button adds the contact role to the same
person. It does not create a copy.
Every tab on the record, explained.
Follow a candidate through the stages of a job.
## 4. Get the full picture on one candidate
Before you call someone or put them in front of a client, this is where you catch up on
them: what Spott has picked up automatically, what your colleagues have logged, and
anything you want to ask.
### 4.1 Review the AI summary and details
The **Summary** subtab is your starting point. Based on the whole profile it shows a short
**AI summary** of the candidate, their **salary expectations**, **candidate sentiment**
drawn from recent conversations, **upcoming meetings**, plus **suggested field updates**
and **suggested tasks** picked up from recent calls, meetings, and notes. Hover a
suggestion to see why it was made, then accept it or dismiss it.
The right-hand **Details** panel holds the candidate's fields: contact details, location,
languages, availability, salary expectation, and any custom fields your workspace uses.
Click **Show all values** to see every field. The applications the candidate is currently
in sit on the **Candidate** tab.
### 4.2 Review the activity timeline
**Activity** in the side panel is a timeline of everything that happened on the record, and
who did it: attribute **updates**, **notes**, **tasks**, **meetings**, **emails &
messages**, **calls**, **applications** including stage moves, and **contacts**. Use the
**Filters** button at the top of the timeline to show only the event types you care about.
### 4.3 Ask AI about the candidate
**Ask AI** is a personal agent that knows the whole profile: details, experience, notes,
emails, and applications. Ask it things like "Summarize the situation with this candidate",
"Give me an application overview", or "What should I do next with this candidate?".
### 4.4 Read and add notes
All notes linked to the candidate appear on their profile, and they double as context for
the AI features. You can create notes manually at any time, and notes and emails can be
**docked** into a floating window that stays on screen while you move around the rest of
the profile, which is handy for taking notes while reading a CV.
With the **Note Taker** enabled, every meeting with the candidate produces a note
automatically, with a direct link to the recording and the full transcript.
Create your own fields, reorder them, and choose which ones show by default.
Let Spott join a meeting and write the note for you.
## 5. Keep a profile up to date
A profile is only as useful as it is current. These are the tabs you work in to keep a
candidate's history, documents, and permissions accurate. This walkthrough covers the
files, tasks, consent, and references subtabs, plus the Communication subtab that section 5
picks up.
### 5.1 Update experience and CV information
The **Experience** subtab shows the candidate's skills, work experience, and education with
tenure statistics, built from their CV, LinkedIn updates, and other files. You can also
enter or adjust anything manually. When the candidate has a CV on file, switch on the
**Latest CV** toggle at the top left to read the CV document itself instead of the parsed
profile, without leaving the record.
The company names in the work experience are clickable. Clicking one opens a preview of
that employer with its description, industry, headcount over time, funding rounds, and the
employees you already have in Spott. From that preview, **Add as company** turns the
employer into a client record, which is handy when a candidate's current employer turns out
to be a prospect.
The buttons at the top of the tab keep the profile fresh: **Add note**, **Request updated
CV** to send the candidate a link to upload their latest one, **Update with new CV** to
upload a newer one yourself, **Check for updates** to refresh the profile from LinkedIn,
and **Generate CV** to create a formatted CV in your agency's template.
**Update with new CV** compares the new document against the existing profile and applies
only what changed, so the corrections you made by hand are not overwritten.
### 5.2 Manage files
The **Files** subtab holds everything attached to the candidate, starting with their CV.
Click the three dots next to a CV to generate a formatted version, so every CV you share
with a client follows the same template.
### 5.3 Track candidate tasks
The **Tasks** subtab holds the follow-up actions for this candidate. Assign them to
yourself or a teammate, set due dates, and track completion.
### 5.4 Record consent
The **Consent** subtab tracks the candidate's **consents**, meaning GDPR and other
compliance requirements with type, source, and validity period, and their **marketing
opt-outs**, so they can be excluded from marketing emails. The subtab appears once consent
tracking is enabled for your workspace.
### 5.5 Add references
The **References** subtab is where you log references for the candidate and add comments
per reference.
Refresh a record from a new CV or from LinkedIn.
Record consent and track expiry dates.
## 6. Get in touch
Everything you send a candidate happens from their profile, so the conversation and the
record stay in one place and your colleagues can see the history.
### 6.1 Message from the candidate profile
The **Communication** subtab holds your full message history with the candidate across
**email**, **linked emails**, **WhatsApp**, and **SMS**, with the channels listed down the
left and split into your workspace ones and your personal ones. You can reply from here
without leaving the profile. Synchronisation runs both ways: messages sent outside Spott
show up here too, and vice versa. For the full-screen version, open the **Inbox** tab.
WhatsApp threads stay private to each user, so a colleague's WhatsApp conversations are not
visible to the rest of the team.
### 6.2 Find a missing email or phone number
When a candidate's contact details are incomplete, enrichment looks them up for you across
multiple data providers in turn. Open the profile, click the empty email or phone field,
and use the purple **Enrich** button that appears.
The Candidates table does the same in bulk: select up to 1,000 people with the checkboxes,
then use the **Enrich** menu to target personal emails, work emails, phone numbers, LinkedIn
URLs, or a full profile update. Enrichment is switched on per workspace under
**Settings → Features**.
Credits are only deducted on a successful lookup, and the cost varies: a work email costs
1 credit, a personal email 3, a phone number 10, a LinkedIn URL 1, and a profile update
5\. Check the record for details you already have before running it.
Find work emails and phone numbers, and what it costs.
The full-screen view of every conversation, across all channels.
## 7. Put a candidate forward for a job
This is where the profile turns into a placement: find the jobs a candidate fits, then get
them in front of the client.
### 7.1 Match a candidate to a job
From the profile you can **find jobs that match the candidate**, find **similar
candidates** to widen a shortlist, **present the candidate**, and take many other actions.
### 7.2 Present candidates to a client
The **Present** button in the top right sends the candidate to your client contacts for a
role, with their CV or a generated report attached. You can present to several contacts at
once, either from a contact list or with the bulk email option inside the Present dialog.
From a multi-candidate selection, **Generate Shortlist** produces one client-ready document
covering the whole group: a cover page plus the individual profiles, grouped by company.
Choose the job, the template, the language, and whether to anonymize the candidates. It runs
in the background, and the Word document is ready to download when it finishes.
Send candidates to a client, individually or in bulk.
Follow a candidate through the stages of a job.
## Now your turn
* [ ] Add candidates **manually**
* [ ] Add candidates via **CV upload**
* [ ] Add candidates by **forwarding CVs through email**
* [ ] Add candidates from a **CSV file**
* [ ] Import **LinkedIn profiles** into Spott
* [ ] Create **one candidate view** using two filters
* [ ] Open a candidate and switch between the **Overview**, **Candidate**, and **Inbox** tabs
* [ ] **Ask AI** a question about a candidate
* [ ] Create **one task**, tag a company, and assign it to a colleague
* [ ] Send **one email** from the candidate profile
* [ ] Find **one phone number or email** using AI enrichment
* [ ] **Present a job** to a candidate using AI
* [ ] Enroll a candidate in a campaign with a **manual LinkedIn step**, then open the task
it creates and send the message yourself from LinkedIn
That last one catches people out. Spott never sends or syncs LinkedIn messages. A manual
LinkedIn step writes the message for you and creates a task, and completing the task does
not send anything: you still send it from LinkedIn yourself.
Create a job and run candidates through its pipeline.
# Manage clients
Source: https://docs.spott.io/docs/onboarding/manage-clients
Centralise client data, manage company and contact records, and put the right candidates in front of clients.
In this section you learn how to find and create companies, organise client records, manage
contacts, use company matching and hierarchies, and support business development, all from
one place.
1. [Understand the companies overview](#1-understand-the-companies-overview)
2. [Understand the contacts section](#2-understand-the-contacts-section)
3. [Understand opportunities](#3-understand-opportunities)
To open your client list, click **Companies** in the left-hand navigation bar. To work with
individual client-side people, click **Contacts**.
## 1. Understand the companies overview
Companies are your client records in Spott. The Companies page is where you find an existing
account, add one that is not there yet, and open a record to reach the jobs, contacts,
placements, and group structure attached to it.
### 1.1 Find and sort companies
Use the search bar on the Companies page to find a company by name or keyword. For Boolean
search, put an exact phrase in quotation marks, then combine terms with **AND**, **OR**, or
**NOT**.
Click **Filters** above the table to narrow the list by:
* **Stage:** find leads, prospects, or companies at another stage.
* **Lists:** show companies saved to a particular list.
* **Location:** focus on clients in or around a location.
* **Company information:** filter by name, size, or industry.
* **Dates and interactions:** find companies by creation date, next task, or recent contact.
* **Custom fields:** use the fields created for your workspace.
Sort the table when you need to prioritise companies by **Company name**, **Last interaction
date**, **Next task due**, or another available field.
To create a reusable view, click the current view name in the top right corner, select
**+ Create new view**, and give it a name. If you later change its filters, sorting, or
columns, click **Save view** when the save-or-discard prompt appears.
### 1.2 Add a company
From the Companies page, click **Add company**. Start typing the company name and select a
recognised company to fill in the available public information automatically, or enter the
details by hand. Click **Create company** when the record is ready.
You can also add a company from:
* **A company preview:** click a company name elsewhere in Spott, then select **Add as
company** if it is not already a client record.
* **LinkedIn:** open the company's LinkedIn page and the
[Spott browser extension](/docs/settings/chrome-extension). Select **Import as company**
if the company is not already in Spott.
* **A CSV or Excel import:** companies can be matched or created from the company names in
imported candidate or contact rows.
If the extension finds an existing company, it opens that record instead of creating a
duplicate.
### 1.3 Explore the company record
Click a company name to open its record. Use the tabs to reach the information connected to
that client:
* **Jobs:** open and past roles, with an overview of their pipelines.
* **Speculative:** candidates presented without an open role.
* **Notes:** internal context recorded by your team.
* **Contacts:** the people linked to the company, and their roles.
* **Files:** documents uploaded to the company record.
* **Tasks:** follow-ups and reminders connected to the client.
* **Placements:** current and previous placements at the company.
* **Hierarchy:** parent and child companies in the wider group.
Depending on your workspace features, you may also see **Opportunities** and **Matching**.
The **Details** panel stays available from every tab and holds the company's standard and
custom fields.
The columns on a company's **Jobs** and **Contacts** tabs mirror the columns configured in
the main Jobs and Contacts views. Change and save those main views to update the company
tabs.
### 1.4 Find nearby candidates for a company
If Matching is enabled for your workspace, open the company's **Matching** tab to find
candidates near the client's location. Use the **Within range** slider to search within 10,
25, 50, 100, or 250 kilometres.
The results show each candidate's location, current or previous company and role, time in
that position, and institution.
Start with a smaller radius and widen it when the client is in a thinner talent market.
To match against a specific role and its requirements, use the job's **Matching** tab
instead.
### 1.5 Connect related companies
Open **Hierarchy** on a company record when a client belongs to a larger group.
* Click **Add child** to place subsidiaries, business units, or divisions beneath the
current company.
* Click **Change parent** to attach the current company to a different parent.
* Open a company's **⋮** menu to add another child, change the relationship, or remove it
from the hierarchy.
Choose the relationship that explains how the child sits under its parent:
* **Subsidiary:** a separate legal entity owned by the parent.
* **Business unit:** a commercial unit that may have its own budget and hiring managers.
* **Division:** a structural part of the parent, such as a product line or a region.
A company can belong to only one hierarchy at a time, and can have only one parent. A
child company can still have children of its own.
Create a company from Spott, LinkedIn, a preview, or an import.
Configure columns, filters, sorting, and views.
Every company tab, the Details panel, and suggested candidates.
Build and maintain parent and child relationships.
## 2. Understand the contacts section
Contacts are the client-side people you work with, such as hiring managers, HR partners, and
decision makers. Their records keep client conversations, responsibilities, and business
development activity connected.
### 2.1 Find and organise contacts
Click **Contacts** in the left-hand navigation bar to open the full contact database. Use
the search bar to find people by name, company, or role.
For Boolean search, put an exact phrase in quotation marks, then combine terms with **AND**,
**OR**, or **NOT**.
Click **Filters** to narrow contacts by:
* **Role and company:** find people by job title, company, or stage.
* **Ownership:** **Main Contact** and **Main Contact Team**, the person and the team who
own the relationship.
* **Location:** use the contact's or the company's location.
* **Dates and interactions:** find contacts by recent activity, next task, or creation date.
* **Lists and custom fields:** use saved groups and workspace-specific information.
Switch on **Group by company** to keep contacts from the same organisation together. Switch
it off when you want one sortable list.
To create a reusable view, click the current view name in the top right corner, select
**+ Create new view**, and give it a name. If you later change its filters, sorting, or
columns, click **Save view** when the save-or-discard prompt appears.
### 2.2 Add contacts
From the Contacts page there are several ways to add a contact. Search for an existing
person first, or create a new one, then select their company and click **Add contact**.
* **Manually:** search for an existing person first, or create a new person, then select
their company.
* **Browser extension:** import one contact at a time from a LinkedIn profile.
* **CSV or Excel:** choose **Contacts** as the import type to add up to 1,000 rows, and link
each contact to the company in that row.
**One person, one record.** If someone is already a candidate, adding them as a contact
adds the role to the same record. Deleting the contact role does not delete the person
record.
### 2.3 Explore the contact record
Click a contact's name to open their profile. Its structure mirrors a candidate profile.
The **Overview** tab holds:
* **Summary:** an AI summary and suggested field updates.
* **Notes:** notes connected to the contact and their jobs.
* **Experience:** work history and education.
* **Communication:** email and WhatsApp history, and the actions you can take.
* **Files:** job descriptions, briefing documents, and terms.
* **Tasks:** follow-ups assigned to you or your team.
The side panel holds **Details**, **Activity**, and **Ask AI**. Under the **Contact** tab,
use **Jobs** for linked roles, **Speculative** for proactive presentations, and
**Companies** for current and past company relationships. Some workspaces also show
**Opportunities**.
Personal details stay with the person when they move company. Contact details belong to
the company relationship and do not carry over.
### 2.4 Use contacts for presentations and business development
Once the contact record is in place, use it to support the relationship:
* **Present candidates:** select contacts from a list or a filtered Contacts view to present
a candidate to several people in one action.
* **Track potential deals:** if Opportunities is enabled, use it for work you are trying to
close before it becomes a specific recruitment job.
Candidates are not linked to opportunities. Convert the opportunity to a job before adding
candidates to a pipeline.
Search, filters, sorting, grouping, and saved views.
Create contacts and understand their profiles.
Find missing email addresses, phone numbers, and LinkedIn URLs.
Send candidates to one or several client contacts.
## 3. Understand opportunities
Opportunities track deals: anything you are working to close that is not a specific
recruitment job yet. They are most useful when your agency has a distinct sales motion, with
sales reps working deals and recruiters working jobs.
Opportunities are off by default. An admin turns them on under **Settings → Features** by
selecting **Enable opportunities**.
### 3.1 Create an opportunity
Click **Add opportunity**, or press `A` then `Y` from anywhere in Spott.
On the opportunity record, add the detail that makes the forecast useful:
* **Estimated value** and **Target close** date.
* **Opportunity owner:** who is responsible for the deal.
* **Client contacts:** link them, and emails, calls, and meetings with them surface on the
opportunity itself.
* **Notes**, **Files**, **Tasks**, and **Communication:** anything else linked to the deal.
* Any **custom fields** configured for your workspace.
### 3.2 Set up stages
Configure the stages that match your sales process, such as Pitching, Proposal sent,
Negotiation, Closed won, and Closed lost, under **Settings → Stages**.
Drag opportunities between stages as deals progress.
A **List view** is also available, with filters, sorting, saved views, and a **Group by
company** toggle that works the same way as it does on Contacts.
Track deals and convert recruitment work into jobs.
Stages, weighting, and the pipeline forecast.
## Now your turn
* [ ] Create a **new company**
* [ ] Import **three contacts** from LinkedIn using the browser extension
* [ ] Add **one job** for your new company, and add candidates to its pipeline
Close the loop when someone gets hired.
# Manage jobs
Source: https://docs.spott.io/docs/onboarding/manage-jobs
Create jobs, define who you are looking for, match candidates with AI, and run the pipeline to placement.
In this section you learn how to find and create jobs, define each role, use AI matching,
manage candidates through the pipeline, attract applicants, and share progress with clients.
1. [Search and filter jobs, create or import them](#1-search-and-filter-jobs-create-or-import-them)
2. [Define who you are looking for in the Overview](#2-define-who-you-are-looking-for-in-the-overview)
3. [Find the right candidate matches with AI](#3-find-the-right-candidate-matches-with-ai)
4. [Understand the job pipeline](#4-understand-the-job-pipeline)
5. [Create campaigns or advertising to attract inbound candidates](#5-create-campaigns-or-advertising-to-attract-inbound-candidates)
6. [Make tracking easy for clients with the Company Portal](#6-make-tracking-easy-for-clients-with-the-company-portal)
To open the Jobs page, click **Jobs** in the left-hand navigation bar.
## 1. Search and filter jobs, create or import them
The **Jobs** page is where you search and filter your way to any existing role, and where
you create or import the ones that are not there yet.
### 1.1 Find jobs in the database
There are two ways to find the listing you are looking for: the search bar and the filters.
Use the **search bar** at the top of the Jobs page to find jobs using text from their
fields. For a more precise search, put exact phrases in double quotation marks and combine
them with **AND**, **OR**, or **NOT**.
Click **Filters** when you need to narrow the database by specific job information:
* **Status:** find jobs at a particular stage.
* **Location and company:** focus on roles for a specific place or client.
* **Users and team:** find jobs owned or supported by particular teammates.
* **Dates:** narrow by creation, start, end, or next task dates.
* **Employment details:** filter by location type or employment type.
* **Custom fields:** use the criteria created for your workspace.
You can also sort the database by fields such as job name, company, status, dates,
employment type, location type, or the next task due date.
### 1.2 Save a job view
Switch between **List** and **Board** view depending on how you want to review the database.
The same filters and sorting work in both layouts.
To save the setup as a view, click the current view name in the top right corner, such as
**Default view**, and select **+ Create new view**. Give the view a name, then save it so
you can return to the same filters, sorting, and columns later.
### 1.3 Create a job manually
Click **Add job** in the top right corner of the Jobs page to create a role from scratch.
Add the job title, company, and status, then include any available details such as
employment type, location type, salary range, description, and client contacts.
Click **Create job** to add the role to the Jobs list, then click its title to open the
**Overview** tab.
### 1.4 Import an existing job posting
If the vacancy already exists online, import it instead of typing it again. In the **Add new
job** dialog, use **Import from URL** to paste a public job posting link, or use the
[browser extension](/docs/settings/chrome-extension) to import the posting from the page you
are looking at.
Spott fills the job fields from the posting, and you can review or edit the information
before continuing.
Filters, list and board view, and saved views.
Create a job manually, from a URL, or by import.
## 2. Define who you are looking for in the Overview
The **Overview** tab is where you turn a new job record into a clear brief that your team
and Spott's AI can both use.
### 2.1 Set up the job in order
From the Jobs page, click the job title to open its **Overview** tab. Work through the setup
in this order, so each step gives the next one enough context:
1. **Files and notes:** attach the client's job description, and link briefing or intake
notes to the job.
2. **Generate details:** click **Regenerate details** to create or improve the job
information from the linked material.
3. **Details and fees:** confirm the requirements, locations, compensation, and the agreed
fee structure.
4. **Client contacts:** link the people involved in the role.
5. **Scorecard:** create the evaluation template by hand, or generate it from the sourcing
criteria.
6. **Ask AI:** ask questions once the job record holds the context the AI needs.
Notes are not linked to a job automatically. Open the relevant note and link it to the job,
so it appears on the record and becomes available as AI context.
### 2.2 Use the side panel while defining the role
Use **Details** in the side panel to review the job fields, create follow-up tasks, and
generate a scorecard. Open **Ask AI** when you need an answer based on the job's details,
notes, attachments, and sourcing criteria.
The sourcing criteria on the Overview tab power AI matching, so make the hard requirements
and the preferred qualities as specific as you can.
The six-step setup flow: files and notes, details, fees, contacts, and the scorecard.
## 3. Find the right candidate matches with AI
Once the job brief is complete, use **Matching** to find new candidates whose profiles fit
the role.
### 3.1 Run a job search
Open the job and select **Matching**, then click **Start new job search**. Spott turns the
job's description, notes, and sourcing criteria into suggested pre-filters and criteria.
Review them with **Edit criteria**, make any changes you need, then click **Run search**.
Matching looks for new candidates and leaves out anyone already in the job's pipeline. Use
the **Candidates** tab to review the people already linked to the role.
### 3.2 Use pre-filters and criteria correctly
Spott uses pre-filters and criteria for different parts of the search:
* **Pre-filters** are hard requirements a candidate has to meet before Spott ranks them,
such as job title, field of study, keywords, or years of experience.
* **Criteria** are natural-language qualities used to rank the remaining candidates, for
example "Business-level fluency in French".
Use **Match all filters** to require every pre-filter, or switch it off when candidates can
meet any of them. Spott shows how many candidates pass the filters, so you can widen them if
the pool is too small.
Criteria are numbered by priority: the ones higher in the list weigh more heavily in the
match score. Drag a criterion to change its position, click **×** to remove it, or select
**Add criteria** to create another one.
Use pre-filters for the requirements that must be true, and criteria for the qualities you
want to compare. Keywords belong in the pre-filters, not as a criterion of their own.
### 3.3 Review and act on the results
Start with the candidates who have the highest match scores. Click a score to review Spott's
reasoning, and open the candidate profile before you decide.
Match scores assess the AI criteria only. Every candidate in the results has already passed
the pre-filters, including the ones with a weak score.
From the results you can:
* **Review candidates:** compare their overall score and their rating for each criterion.
* **Add strong matches:** move suitable candidates into the job pipeline.
* **Refine the search:** edit the pre-filters or criteria and run it again.
* **Change the layout:** use Card view for deeper reading, or Table view for faster
comparison.
Use **Search history** to reopen an earlier search instead of rebuilding it.
Card and table views, search history, and sharing a search.
## 4. Understand the job pipeline
The **Candidates** tab shows everyone linked to the job, and where each person is in the
hiring process.
### 4.1 Review the pipeline
Open a job and select **Candidates**. Use **Board view** to move candidate cards through
stages visually, or **List view** when you need a sortable, filterable table.
Drag a card to move a candidate between stages, or drop it into the rejected group to reject
the candidate at their current stage. That keeps stage-conversion reporting accurate without
needing a separate rejected stage.
Select several candidates with the checkboxes when you want to take the same action on all
of them. You can:
* **Update the pipeline:** move candidates to a stage, change their label, or reject them.
* **Organise candidates:** add them to another job or to a list.
* **Contact candidates:** send an email, present them, or enroll them in a
[campaign](/docs/outreach/campaigns).
* **Share with the client:** publish them to the Company Portal.
Pipeline stages are configured for the whole workspace rather than per job. To change them,
open **Settings → Stages**, and remember the change affects every job using that pipeline.
### 4.2 Add candidates to a stage
Click **+** on the stage where the candidate should start. Search for an existing candidate,
or select **Upload CV** to create a new one, then click **Add to job**.
### 4.3 Work from the application record
Click a candidate card to open the application that connects that person to this job. The
application holds the activity feed, your team's internal thread, Ask AI, scorecards,
meetings, and quick actions for the next step.
From the application you can send an email, add a note or a scorecard, present the
candidate, publish them to the Company Portal, or mark them as rejected or placed.
A candidate is only marked as placed once you complete the required placement information,
including the fee details and the fee splits.
Cards, view settings, and bulk actions.
Upcoming meetings, interview buttons, and the internal thread.
## 5. Create campaigns or advertising to attract inbound candidates
Use campaigns to approach people already in your database, or advertise the job publicly
when you want candidates to apply themselves.
### 5.1 Create a campaign for the job
If campaigns are enabled for your workspace, use the job's **Campaigns** tab to enroll
selected profiles in a sequence of messages and reminders. You can also create and manage
campaigns from **Campaigns** in the left-hand navigation bar.
### 5.2 Write or generate the vacancy
Open the job and select **Advertising**. Write or paste the vacancy description, or click
**Generate job description** to create it with AI from the job details.
Use **Ask AI** in the side panel to refine the tone, requirements, length, or language before
publishing.
### 5.3 Choose where to publish
The Spott job board showcases your open positions online and receives applications
directly into Spott. In the right-hand panel:
* Switch the **Spott job board** toggle to **Open** to publish the vacancy. You can set
it back to **Closed** at any time.
* Pick the **inbound applications stage** where new applicants should land.
* Use **Preview** to see the posting as candidates will, and **Copy link** to share the
application link.
Connect an existing LinkedIn Recruiter job posting so its applicants flow into Spott. See
[connecting a LinkedIn job board post](/docs/jobs/linkedin-job-posting).
With a multiposter integration enabled, distribute the vacancy to many job boards at
once:
* [Broadbean](/docs/integrations/broadbean)
* [Idibu](/docs/integrations/idibu)
* [VDAB](/docs/integrations/vdab), for the Flemish public job board
Multiposting uses **your own commercial account** with the multiposter. Posting credits,
per-board fees, and pricing are handled with the multiposter, not Spott.
Closing a job in Spott does not close its published adverts. Close each advert separately,
or configure an automation, so a filled role stops receiving applications.
### 5.4 Review inbound applications
Open the job's **Applicants** tab (formerly **Inbound**) to review the people who applied
through the Spott job board, LinkedIn, or a multiposter. Spott links each application to the job, enriches the candidate
data, and queues the person for review.
For each applicant you can:
* **Review the AI score:** open the score to see the assessment for each criterion.
* **Accept the candidate:** move one or several applicants into the pipeline stage you
choose.
* **Reject the candidate:** reject the application, and choose whether to keep or delete the
candidate's database record.
To reject someone and email them at the same time, click **Send email** first and use the
rejection toggle in the message composer. That closes the application and sends the
explanation in one step.
To work through applicants from every job at once, open the **Inbound Applications** tab on
the Jobs page instead. It lists all applications waiting for review across the workspace,
with the same accept, reject, and email actions, and filters to narrow it to a job, a
company, or an owner.
An inbound applicant only receives a match score after you have run a search on the job.
The job board, branding, and where the posting appears.
Review, accept, and reject, including rejection emails.
## 6. Make tracking easy for clients with the Company Portal
The **Company Portal** gives selected client contacts a secure, real-time view of the
candidates you choose to share.
### 6.1 Publish candidates to the portal
Open the job and select **Company Portal**. Publish one candidate with **Publish on
portal**, or select several candidates in the pipeline and choose **Add to company portal**.
If you want candidates to appear automatically, enable **Show all candidates in real time**
and choose which pipeline stages should publish to the portal.
### 6.2 Configure client access
Use the panel on the right to open or close the portal, invite client contacts, preview
their experience, and choose which candidate fields they can see.
Only contacts registered under the company associated with the job can be invited to its
Company Portal.
Clients can review candidates, comment, and request an interview. They cannot move
candidates between stages, reject them, or bulk-export files.
### 6.3 Track client feedback
Open **Activity** inside the Company Portal for a running log of what your client did:
who was invited to the portal, which candidate they commented on and what they said, and
the impression score they left on a candidate.
The feed records what a client **does**, not what they look at. There is no indicator for
whether a particular profile has been opened, so a candidate with no comment and no
impression has not necessarily been skipped.
The job record also keeps its **Files**, **Notes**, **Tasks**, and **Communication** beside
the portal, so the internal context stays attached to the same role.
Inviting contacts, what clients can do, and activity tracking.
## Now your turn
* [ ] Create a **job list view** using two filters
* [ ] Create a **new job**
* [ ] Have the **Note Taker** join a briefing call, or add briefing notes to the job
* [ ] **Generate details** and a job description with AI
* [ ] **Post the job** on the portal
* [ ] Apply **AI matching** to your candidates, and add one hard filter
* [ ] **Add candidates** to the job pipeline
Companies, contacts, and business development.
# Record and track placements
Source: https://docs.spott.io/docs/onboarding/placements
Mark a candidate as placed, record the fee correctly, and track placement revenue and forecasts.
In this section you learn how to create a placement from a candidate's application, fill in
the right fee details, review placement performance, and update a placement when
circumstances change.
1. [Create a new placement](#1-create-a-new-placement)
2. [Review placements and forecasts](#2-review-placements-and-forecasts)
3. [Amend a placement](#3-amend-a-placement)
**Placements** represent the successful outcome of your recruitment process, when a
candidate is matched and confirmed for a role. Each placement connects the **job**, the
**candidate**, and the **client** in one complete record of the hire.
Placements also power reporting and revenue insights, helping you track performance and
forecast business growth.
To open the Placements page, click **Placements** in the left-hand navigation bar, or press
`G`, then `P`.
## 1. Create a new placement
Create the placement from the candidate's application, so the job, candidate, client, and
fee information stay connected.
### 1.1 Mark the candidate as placed
From **Jobs**, open the job and select **Candidates** to see its
[pipeline](/docs/jobs/job-pipeline). On the
candidate's application card, click **Mark placed** in the right side panel, under **Quick
actions**.
Do not click the candidate's name. Use the icon in the top right of the card instead.
### 1.2 Record the placement
The placement type sets the fee model and the details Spott asks you to fill in:
* **Contingent:** a one-time fee for a successful placement, typically a permanent hire.
* **Retained:** phased payments across a search engagement, using either a percentage of
compensation or a flat fee divided across milestones.
* **Staffing:** the margin on contractor billing, for temporary or interim work.
To mark a placement as **Retained**, the option has to be selected on the job itself.
After choosing the type, complete the remaining steps:
* **Fee details:** the dates and fee information for the placement type you picked.
* **Dates:** add the **Placed at**, **Start**, and **End** dates. Adding an end date to a
contingent placement returns the candidate to the available pool when the contract ends.
* **Contingent or Retained:** enter the fee as a percentage of compensation, or as a flat
amount.
* **Staffing:** add the working schedule, choose a daily or hourly **Unit**, and enter the
charge rate and pay rate so Spott can project the contract value and the margin.
* **Splits:** divide the fee among the users who contributed to the placement. If the split
was agreed earlier, record it on the job so it carries into the placement.
* **Extra:** the fields from the selected placement form, such as base salary, bonus,
equity, rate revisions, or contract extensions.
For interim staffing placements you can enter a fixed number of billed days, instead of
calculating them from a working schedule.
When the flow is complete, the application shows a **Placement** block with the company,
job, placement type, start date, fee splits, and total fee.
### 1.3 Create placement forms for the data you need
To control which fields appear in the **Extra** step, open
**Settings → [Templates](/docs/settings/templates)** and create a placement form for the
relevant placement type.
You can create several forms for the same type. Use separate forms when different
arrangements need different information, such as bonus and equity for a permanent hire, or
rate revisions for an interim contract.
## 2. Review placements and forecasts
The Placements tab gives you an overview of every placement in a table, with columns you can
toggle per placement type.
### 2.1 Review and filter the placements table
Open **Placements** to see every placement in a table. The columns show:
* **Company:** where the candidate was placed.
* **Vacancy:** the role the candidate filled.
* **Candidate:** the person who was placed.
* **Placed at:** when the placement was recorded.
* **Placed by:** the user responsible for the placement.
* **Start and end dates:** the placement or contract period.
* **Fee income:** the revenue generated by the placement.
* **Fee details and splits:** the gross or net fee, and how it is divided among users.
* **Placement form:** the template used to capture the placement.
Filter the table by details such as company, placed-by user, or date, then export the
filtered results to Excel. Exports include the custom values captured by placement forms.
Spott tracks placement fees, splits, and custom fields, but invoicing happens outside
Spott. Export the data to Excel, or send it to your finance system through the
[API](/docs/developers/api-overview).
### 2.2 Review staffing forecasts
For temporary and contract work, open the **Contract** dashboard to review gross profit
forecasts based on each placement's rates, units, and schedule.
Switch between weekly and monthly KPIs, or filter by staffing status, extensions, and
placements due to start or finish.
The staffing dashboard and the placements table are separate. Filtering one does not
filter the other, although both can be exported.
### 2.3 Track retained milestones
Open the **Retained** tab to track progress and revenue for retained searches. Each row
shows:
* **Company, role, and team:** the search, and the people working on it.
* **Estimated total fee:** what the full search is worth if it completes.
* **Realized fees:** what has already been billed.
* **Milestones:** how many agreed payment stages are complete.
* **Next milestone:** the next amount likely to become invoiceable.
* **Placed candidate:** the person who filled the role, once the search is complete.
Before logging a retained placement, configure the milestones, the negotiated fee, and the
estimated salary on the job's **[Overview](/docs/jobs/job-details)** tab. These details are required, because the
placement milestones come from the job.
## 3. Amend a placement
Open an existing placement when you need to correct its details, attach documents, extend a
contract, or record a permanent conversion.
### 3.1 Edit or delete a placement
In the placements table, click **Placed by** in the placement's row, or the empty space next
to any field in that row, to open its details. From there you can:
* **Edit the placement:** correct dates, fees, fields, or the placement type.
* **Delete the placement:** remove a placement that is no longer relevant.
* **Attach files:** keep documents such as a signed agreement on the placement record.
### 3.2 Extend or convert a contract placement
Open the contract placement's **Quick actions** panel and choose the action that matches the
outcome:
* **Extend placement:** use this when the existing contract continues.
* **Convert to contingent placement:** use this when the contractor becomes a permanent
hire. Spott keeps the history on one record and replaces the contract rates with a
one-time contingent fee.
Do not create a second placement when a contractor becomes permanent. Convert the existing
placement, so its history and fees stay together.
Fee details, retained milestones, custom forms, staffing forecasts, and exports.
Build the forms that decide what the Extra step asks for.
Where a placement starts, on the candidate's application card.
Negotiated fee, estimated salary, and the milestones a retained placement inherits.
## Now your turn
* [ ] **Mark a candidate as placed** on one of your jobs
* [ ] Pick the **placement type** and fill in the fee details
* [ ] Review the placement in the **Placements overview**
Your day at a glance, with targets.
# Reporting in Spott
Source: https://docs.spott.io/docs/onboarding/reporting
Build reports, choose the right insight for your question, and open the records behind every number.
In this section you learn how to find and read reports, build insights from live workspace
data, filter and group the results, and investigate the records behind each metric.
1. [Find and read reports](#1-find-and-read-reports)
2. [Build and customise a report](#2-build-and-customise-a-report)
3. [Use report examples as a starting point](#3-use-report-examples-as-a-starting-point)
To open the reporting area, click **Reports** under **Tools** in the left-hand navigation
bar.
## 1. Find and read reports
The Reports area gives you reusable views of recruitment performance, from pipeline
conversion and activity to placements and revenue.
### 1.1 Start from the Reports overview
Open **Reports** to add a **New report**, or to see the reports you already have. The
overview separates them into:
* **Your reports:** reports visible only to you.
* **Workspace:** reports visible to everyone in the workspace.
Every workspace starts with three ready-made reports:
* **Client breakdown:** review company data and the shape of your client base.
* **Candidates overview:** understand candidate composition and availability.
* **Team performance:** compare activity, fee income, and performance across users.
Open these before building from scratch. They may already answer your question, or give you
a useful starting point.
There is no team-only sharing level between private and workspace-wide reports. Who can
view, manage, and export reports is controlled by role under **Settings → Security**.
### 1.2 Read a report and investigate its numbers
Click a report to open it. Each report contains one or more **insights**, and each insight
answers a specific question using live workspace data.
Use the **Time period** selector to choose `7D`, `1M`, `3M`, `6M`, `12M`, `All`, or a custom
date range. That period applies across every insight in the report.
Click a number or a chart value to open the records behind it. This drilldown lets you check
exactly which candidates, jobs, applications, or other records make up the metric.
The report above mixes insight types on purpose: a funnel across the pipeline stages, a
breakdown of where those applications came from, and two **Single metric** cards for the
conversion rates that matter. Each answers one question, and together they answer "how is
this pipeline performing".
## 2. Build and customise a report
A report is built from insights. For each insight, choose the records to analyse, what to
measure, and how Spott should display the result.
### 2.1 Create a report and add an insight
From the Reports overview, click **New report**, then **Add new insight** to build its first
visualisation.
Give the insight a clear title. As you configure it in the panel on the right, the left side
previews the result using your live data. Click **Save chart** when the insight is ready.
### 2.2 Choose the right data source
The **Data source** decides which records the insight can count, filter, and group.
* **Recruitment records:** choose Candidates, Jobs, Applications, Companies, Opportunities,
Contacts, Users, Notes, Placements, or Rejections when the question concerns one type of
record.
* **Interactions:** use this for recorded touchpoints such as emails, WhatsApp messages,
phone calls, and calendar meetings. For outbound email it counts sent messages. Marketing
campaign opens and clicks are reviewed in **Marketing**.
* **Multi-source:** combine several record types when one source cannot answer the question
on its own.
Pick the source that directly contains what you need. Use **Applications** for pipeline
movement, **Placements** for completed placement data, and **Notes** for activity your team
records with consistent note labels.
If your team reports on calls, client meetings, or references through notes, agree on a
small set of note labels first. Consistent labels make those activities much easier to
count accurately.
### 2.3 Choose an insight type and visualisation
The insight type controls how Spott measures the selected data:
* **Pivot:** break a metric down by another field, such as jobs per stage, company, or team
member.
* **Historical values:** track how a metric changes over time.
* **Funnel:** see how records convert from one pipeline stage to the next.
* **Time in stage:** measure how long records stay in each stage.
Which insight types are available depends on the data source. **Funnel** and **Time in
stage** need stage data, so they appear for stage-based sources such as **Applications** and
**Jobs**. Sources without stages, such as Candidates, use **Pivot** and **Historical
values**.
Display the result as a **Bar**, **Line**, or **Pie** chart, a **Table**, or a **Single
metric** headline number.
### 2.4 Add metrics, filters, grouping, and targets
Finish the insight by deciding exactly what it counts and which records are included:
* **Metrics:** what the insight counts. Select **Add metric** to compare several measures in
the same insight.
* **Filters:** select **Add filter** to narrow this insight by attributes, custom
attributes, team, team member, or its own time period. Unlike the report-wide period
selector, this filter applies to the insight only.
* **Group by:** for a Pivot insight, split the result by an attribute such as stage,
company, or team member.
* **Target:** switch on a target and enter a number to show progress towards a goal, and
when it has been reached.
Keep each insight focused on one question. If a chart needs unrelated filters or
measurements to make sense, build another insight instead.
### 2.5 Edit, duplicate, export, or delete an insight
Open the **⋮** menu on an insight to:
* **Edit:** change its source, metrics, filters, grouping, target, or visualisation.
* **Duplicate:** use the insight as a starting point for a similar question.
* **Export as Excel:** download the chart data, and optionally select **Include drilldown
data** to include the underlying records.
* **Delete:** remove the insight from the report.
Reports use live data, but they cannot currently be scheduled or emailed automatically.
Data sources, insight types, metrics, filters, grouping, targets, and exports.
The Reports overview, ready-made reports, drilldowns, and visibility.
Control which roles can view, manage, and export reports.
## 3. Use report examples as a starting point
These examples show the kind of question a focused report can answer. Adapt their insights
to the data and targets that matter to your team.
### 3.1 Candidate report
Use a candidate report to understand the composition and current status of your database:
* **Availability:** how many candidates are available now or later.
* **Education:** candidates compared by education level.
* **Employment type:** the kinds of work candidates are looking for.
### 3.2 Team performance report
Use a user report to compare individual and team productivity:
* **Recorded activity:** notes and applications created per user.
* **Meetings:** how many meetings the team holds each week.
* **Commercial output:** placement revenue and job creation.
A **Pivot** insight grouped by user gives you the table above: one row per person, and a
**Current** and **Target** column per metric. Where a target is set, the cell shows progress
against it and colours accordingly, so you can read who is ahead and who is behind at a
glance. Metrics without a target simply show a dash.
Below the table, the same record type carries charts for commercial output: fee income and
jobs created per user, speculative CVs sent, and a **Single metric** card for total CVs
sent across the team.
### 3.3 Client report
Use a company report to understand the size of your client base, and where companies sit in
your commercial pipeline.
### 3.4 Application funnel report
Use an application report to see how many candidates are in each stage for a specific job,
and how long they stay there. This is how you find the stages where applications slow down
or drop out.
## Now your turn
* [ ] Create a report on **candidates**, with two insights
* [ ] Create a report on **applications**, with two insights
* [ ] Create a report on **placements**, with two insights
Build the habits that make your Spott data more useful over time.
# Set up Spott
Source: https://docs.spott.io/docs/onboarding/set-up-spott
Sign in, configure your own account, then set up the workspace settings that apply to everyone.
In this section you learn how to sign in, configure your personal preferences and profile,
connect your email, calendar, messaging and calling, install the extension and mobile app,
and, if you are an admin, set up the workspace settings that apply to your whole
organisation.
1. [Set up your own account](#1-set-up-your-own-account)
2. [Admins: set up the workspace](#2-admins-set-up-the-workspace)
To open **Settings**, click the Spott logo in the top-left corner.
**Section 1 is for everyone. Section 2 is for admins.** Every user works through their
own account setup in section 1. If you are the workspace admin, continue into section 2,
which covers the settings that apply to all users.
What lives under Personal, Workspace and Admin, and where each area is documented.
## 1. Set up your own account
This is the setup every user does for their own account, in the order that makes each step
useful.
### 1.1 Sign in for the first time
Visit [app.gospott.com](https://app.gospott.com/) and sign in using your credentials.
If your workspace uses SSO, log in the first time via your invite link and create a
password. From then on you can sign in with Microsoft or Google.
### 1.2 Set your preferences
Open **Settings**, select **Preferences**, and set your personal defaults.
* **Default currency**, prefilled when adding new currency fields
* **Default country code**, the default dialling code when adding new phone numbers
* **Default AI language**, the language used for generated AI content
* **Default distance unit**, used for location radius filters
* **Spell check**, toggle on to enable the browser spell check for outgoing messages
* **Time zone**, used for calendar events and timestamps
* **Date format**, controls how dates are displayed
* **Time format**, 12-hour or 24-hour display
* **Time display**, whether timestamps show as relative or absolute
* **First day of the week**, for calendars
* **Display language**, the language of your workspace
* **Interface theme**, light or dark mode
* **Default candidate, contact, and company tab**, the tab you land on when opening a
record
The full reference for personal preferences.
### 1.3 Complete your profile and turn on MFA
Open the **Profile** tab to update how you appear in Spott, and to set your security
options.
* **Profile picture**: upload your own picture
* **Username**: your display name in Spott
* **Initials**: shown as your avatar badge when no profile picture is set
* **Change your password**
* **Multi-factor authentication**: protect your account with an authenticator app. After
setup you are asked for a 6-digit code in addition to your password when signing in.
Password, MFA, and how SSO changes the login flow.
### 1.4 Choose your notifications
Open the **Notifications** tab to control which events reach you, so you stay informed
without unnecessary noise. For each event type you can be notified in the app, by email,
or both.
* **Task notifications**: task assignments, completions, and mentions
* **Note notifications**: when someone pings you on a note
* **Job notifications**: applications, comments, status changes, and new jobs
* **Candidate notifications**: when candidate information is updated
Every event type and channel.
### 1.5 Connect your email and calendar
Open the **Accounts** tab and connect your Google or Outlook account so your mail and
meetings flow into Spott.
**Up to two addresses per user.** You can connect two email addresses to your account,
using **Connect a second Microsoft account** or **Connect a second Google account** on
the Accounts page. The same address cannot be connected twice, and it cannot be
connected through both Google and Microsoft at the same time.
The first mailbox and calendar sync can take up to 12 hours. New messages keep arriving
while Spott imports the older history, so an incomplete history during this period does
not mean the connection failed.
Then set the three things that make your mailbox usable:
* **Your sharing level.** Choose how much colleagues see of your email:
* **Metadata only**: colleagues see who sent the email and when. Everything else stays
private.
* **Subject line and metadata**: subject, participants, and timestamp are shared. The
body stays private.
* **Full access**: everything is shared with your workspace, including body and
attachments.
This is a personal setting, so each user makes the change for their own mailbox.
* **Your signature**, in one click. Add one or more signatures by sending a blank email to
[signatures@spott.io](mailto:signatures@spott.io). It appears here within two minutes.
Tick the checkbox to pick the default.
* **Your default font family and size** for outgoing email.
Every account type you can connect, and what each one syncs.
What the Outlook email and calendar sync covers.
What the Gmail and Google Calendar sync covers.
### 1.6 Connect WhatsApp and your calling number
**WhatsApp.** Connect WhatsApp for a two-way sync of your messages between Spott and your
mobile. The card shows the connection status, for example Connected or Not connected.
**Data sharing for messages**
* **WhatsApp**: only you see your messages with contacts and candidates, and you do not
see those sent by your colleagues.
* **Email**: you choose full or restricted access for colleagues. Restricted means they
see only the subject line and metadata.
**Your calling number.** If your workspace has a telephony integration, open the **Calls**
tab and select the number you call from. Once it is set you get click-to-call from any
record, plus call recording, automatic transcription, and AI insights on every connected
call.
A number that is SMS-capable also lets you text candidates and contacts from Spott.
Which numbers qualify depends on your VoIP provider.
Click-to-call, recording, transcription, and AI insights.
Send and receive texts from the numbers on your VoIP account.
How the two-way sync works and what stays private.
Every telephony provider Spott connects to, and how to set each one up.
### 1.7 Install the browser extension and the mobile app
**The browser extension** imports candidates, contacts, and companies from LinkedIn, Sales
Navigator, or Recruiter, and imports job postings from a live vacancy page.
The extension only works on Google Chrome and Microsoft Edge.
**The mobile app**, for iOS and Android, lets you:
* Access candidate and contact information
* Record in-person meetings and manage notes
When recording in-person meetings, do not leave the Spott app and do not let your screen
go black.
Install, connect, and troubleshoot the extension.
### 1.8 Set up the Note Taker and your scheduling links
**The Note Taker.** By default it automatically joins the lobby of all online meetings
from your connected calendar, to record and transcribe the conversation. If you switch
this to **Do not join by default**, the bot has to be scheduled meeting by meeting from
the calendar.
Set your **fallback language for transcription**, used when Spott has low confidence in
the detected language.
Other participants can trigger the Note Taker. Even if you have it switched off, the bot
may still join a meeting when another invited participant has automatic joining enabled.
**Your scheduling links.** Create scheduling links so candidates and contacts can book
meetings directly in your calendar. Each link has its own availability, meeting types, and
booking rules.
This is what contacts see when you share a scheduling link. The page is branded with your
logo and colours.
How it joins, what it produces, and how to remove it from a meeting.
Availability, meeting types, and sharing links from an email.
### 1.9 Learn the keyboard shortcuts
Spott has shortcuts for jumping between pages and creating records without touching the
mouse. The two worth learning on day one are **global search** (`⌘K` or `Ctrl+K`), which
finds any record in the workspace by name, email address, phone number, or record ID, and
the shortcuts for creating a candidate, contact, company, or job.
Every shortcut for navigating and creating records.
Find any record by name, email address, phone number, or record ID.
## 2. Admins: set up the workspace
Workspace settings define how Spott behaves for your entire organisation. Updates here
apply to all users and shape both internal workflows and public-facing experiences.
If you do not see these tabs in the settings sidebar, your role does not have access to
workspace settings. See **2.10 Control access**.
### 2.1 Set your branding and public pages
Open **General** to control your organisation's core setup, including its name, branding,
public URLs, social links, and privacy policy. These settings drive everything a candidate
or client sees: your careers page, your booking pages, and your public forms.
**Customise the consent disclaimer**
By default Spott provides a [consent](/docs/settings/gdpr-consent) disclaimer shown at
the bottom of all public forms. If you would rather use your own privacy agreement text,
paste it into this section of the settings.
Logo, favicon, accent colour, and the public-facing text.
### 2.2 Customise your pipeline stages
Open **Stages** to customise the pipeline stages candidates move through in your jobs and
speculative presentations.
The **Job stages** list is the pipeline candidates follow in a job, for example
Application, Long list, Short list, Outreach, Interview, Presentation, and Offer.
* Drag stages by the handle to reorder them.
* Click **Add stage** to create a new one, and use the row menu (the three dots) to rename
or recolour it.
* Add **stage labels** where a stage needs sub-categories your team can report on.
Two markers tell Spott how to measure your pipeline:
* **CV sent**: the stage at which a CV counts as sent to the client. This drives the "CV
sent" reporting metric.
* **First interview**: the stage at which a first interview counts as completed.
The **Speculative presentation stages** define a separate pipeline for speculative
candidate presentations, managed the same way as job stages.
Beyond the recruiting workflow, you also set up:
* **Company stages**, for managing company relationships
* **Job statuses**, for tracking job progress
* **Opportunity statuses**, for your opportunity pipeline
Get the two markers right before your team starts working. Every "CV sent" and "First
interview" number in reporting is derived from them.
Every stage list, plus sub-stages and closing-rate percentages.
### 2.3 Create your labels
Open **Labels** to create the labels that categorise and report on notes, tasks,
rejections, and emails across your workspace.
Spott groups labels by where they are used:
* **Note labels**: categorise notes, for example Follow up or Candidate interview.
* **Task labels**: categorise tasks so they surface in the right context.
* **Rejection labels**: standardise the reasons applications are rejected.
* **Email labels**: organise emails in the inbox, for example Submission or Offer.
Click **Add label** in a section to create one, give it a name and colour, and it becomes
available on the matching records.
How labels feed filtering and reporting.
### 2.4 Build out your data model
Open **Data model** to see every record type with the number of attributes it has:
Candidates, Jobs, Applications, Companies, Contacts, Opportunities, and Files. Click a
record type to manage its attributes.
**Create the custom attributes your business runs on.** Anything you want to track,
filter, search, or report on that Spott does not have a standard field for becomes a
custom attribute here: notice periods, certifications, sector specialisms, contract
preferences.
An attribute's type is fixed once it is created. Decide whether something is text, a
number, a date, or a select list before you create it.
**Starred attributes**
Starred attributes appear by default on records, while unstarred ones stay available
under **Show all values**. Drag attributes to set the order they appear in.
**Let AI fill the columns you don't want to type.** AI-filled columns populate a custom
attribute automatically from the candidate's profile and CV, so a field like "years of
management experience" fills itself as records come in.
An AI-filled column generates on new and updated records. Existing records need a
refresh before the column fills in.
**Set your consent purposes.** Each record type also carries the consent purposes you
track, which is where GDPR and any other framework you work under gets configured.
Recruiters then record consent on the candidate record itself.
Attribute types, and why a type is fixed once created.
Create attributes for Jobs, Candidates, Companies, and Contacts.
When they generate, and how to refresh them.
Consent purposes and marketing opt-outs, for GDPR and beyond.
### 2.5 Turn on the features your team needs
Open **Features** to enable or disable workspace-wide functionality such as enrichment,
auto-updating profiles, the unified inbox, and outreach campaigns.
Two of these deserve a decision rather than a default:
* **Contact enrichment** finds missing email addresses and phone numbers. It is the main
consumer of credits, so turn it on knowing what it spends.
* **Auto-updating profiles** re-checks LinkedIn on a schedule and refreshes candidate
profiles that have changed. You control how often it runs, which controls what it costs.
Two Note Taker settings are workspace-wide even though they sit on the **Calls** tab:
**video recording**, which stops meeting videos being stored when disabled, and **Note
Taker appearance**, the bot's name and background image. Both apply to everyone in your
organisation.
What each feature switch turns on.
Update frequency, and controlling credit usage.
What enrichment finds, and what each lookup costs.
Save and share the filtered views your team works from.
### 2.6 Upload your templates and forms
Open **Templates** to manage everything Spott reuses across the product, so your team
stays consistent.
There are six template types:
* **Presentation email templates**: the prompt used to present candidates and jobs.
* **Email templates**: your personal and workspace [email templates](/docs/inbox/message-templates).
* **Note templates**: reusable note structures for your workspace.
* **Insight templates**: the instructions the AI uses to generate call insights. See
[Spott Note Taker](/docs/notes/note-taker).
* **Job description templates**: the instructions the AI uses to generate job
descriptions.
* **Placement forms**: the custom fields and layout used when logging a
[placement](/docs/placements/placements).
Open any category to view, edit, or create templates within it.
**Your branded CV and report templates live here too.** Upload your agency's Word
templates so that **Generate CV**, candidate reports, and shortlists come out in your
own house style. Until a Word template is uploaded, there is nothing for Spott to format
into.
Every template type, and how Spott picks one.
Formatted CVs, candidate reports, and shortlists in your own template.
### 2.7 Verify your sending domain
Open **Verified domains** and verify the domain you send from, by adding the DNS records
Spott gives you. Then register the sender addresses your team will send from.
Marketing campaigns and emails sent from automations do not go out until your sending
domain is verified. Do this early, because DNS changes can take time to propagate.
Add DNS records, troubleshoot verification, and register senders.
Warm up your domain, keep your list clean, and reach the inbox.
### 2.8 Connect your integrations
Open **Integrations** to connect Spott to the external tools your team uses: calling
providers, email and calendar, sourcing tools, and job board distributors. All native
integrations live under this tab.
Email, calendar, telephony, messaging, job boards, and data providers.
### 2.9 Set up automations
Open **Automations** to trigger actions automatically on events in Spott: open dialogs at
the right moment, send emails, update fields, and more. The run log shows you what fired
and when.
Triggers, actions, enabling them, and the run log.
### 2.10 Control access
Spott offers Role-Based Access Control (RBAC), which improves security by assigning
permissions to roles so users only access what their job needs. The main restrictions
cover workspace settings, and delete, merge, and export operations.
**Create your roles.** Under the **Security** tab you can create new roles.
For each role, use the toggles to turn on the features that role should have. For example,
you might give team leads access to workspace settings so they can create new fields,
while regular members cannot.
**Invite your users.** Once you have granted permissions to your roles, invite users with
the orange button under the **Users** tab, then assign them a role.
Each row shows the member's name and address, their **status** (`accepted` once they have
signed in, `pending` while an invitation is outstanding), the **roles** they hold, and the
date they joined. Roles are edited straight from the row, and a member can hold more than
one, for example **Team lead** alongside **Admin**.
Removing a user deactivates them rather than deleting the account, so their historical
activity stays attributed to them.
**Create your teams and offices.** Group users into teams and offices so that dashboards,
filters, and reports can be read per team rather than only per person. Anywhere you can
filter by user, you can filter by team.
Roles, permissions, and workspace-wide MFA.
Offices and teams, and where you can filter by them.
### 2.11 Go further: API and webhooks
**API.** Create and manage API keys to securely access Spott data and build custom
integrations, workflows, or applications.
**Webhooks.** Configure webhook endpoints to receive real-time notifications when events
occur in Spott.
Available endpoints, usage examples, and the events you can subscribe to.
## Now your turn
**Every user**
* [ ] Sign in and set your **preferences**
* [ ] Complete your **profile** and turn on MFA
* [ ] Tune your **notifications**
* [ ] Connect your **email and calendar**, and pick a sharing level
* [ ] Sync your **signature**
* [ ] Install the **browser extension**
* [ ] Set your **Note Taker** preference and create one **scheduling link**
**Admins**
* [ ] Set your **branding** and consent disclaimer
* [ ] Customise your **stages**, and set the CV sent and First interview markers
* [ ] Create your **labels**
* [ ] Add the **custom attributes** your business needs
* [ ] Turn on the **features** your team will use
* [ ] Upload your **Word CV template** and create one **placement form**
* [ ] Verify your **sending domain**
* [ ] Create your **roles**, invite your **users**, and set up your **teams**
Get your candidates, clients, and jobs into Spott.
# Tasks and notes
Source: https://docs.spott.io/docs/onboarding/tasks-notes
Use tasks as reminders across Spott, and give your team and the AI the context they need through linked notes.
In this section you learn how to create and organise tasks, link follow-ups to the right
records, add manual and automated notes, and use templates to keep meeting summaries useful
and consistent.
1. [Use tasks as reminders across the platform](#1-use-tasks-as-reminders-across-the-platform)
2. [Use notes to give your team and the AI context](#2-use-notes-to-give-your-team-and-the-ai-context)
To open your follow-ups, click **Tasks** in the left-hand navigation bar. To review or
create notes, click **Notes**.
## 1. Use tasks as reminders across the platform
Tasks keep calls, interview preparation, offer chasing, and other follow-ups visible. Link
each task to the records it concerns, so the next step appears wherever your team is
working.
### 1.1 Create and link a task
Open **Tasks** and click **Add task** in the top right corner. Add a title and a due date,
then type `@` followed by a person, company, or job name to link the task to that record.
A linked task appears in the **Tasks** tab of every connected candidate, contact, company,
or job. That keeps the reminder next to the context you need to act on it.
### 1.2 Find and manage your tasks
When you open Tasks, Spott applies two filters automatically:
* **Status: Open**, so completed tasks stay out of your active list.
* **Assigned to: you**, so the list starts with the tasks you are responsible for.
These defaults keep you focused on your own active work. Remove a filter by clicking its
chip, or add filters such as assignee, due date range, or status.
Use the task list to:
* **Work by urgency:** tasks are grouped by due date, with overdue tasks highlighted in red.
* **Find a task:** use the search bar to locate a specific follow-up.
* **Edit a task:** click its title to change its details.
* **Complete a task:** mark it complete when the action is done, and it leaves the default
view.
Tasks are not only created by hand. Campaigns and automations create them for you, for
manual steps such as a phone call or a LinkedIn message. Campaign tasks can be filtered
specifically in your to-do list.
### 1.3 Choose how task notifications reach you
To control task alerts, open **Settings → Notifications** and choose whether assignments,
completions, and mentions reach you in the app, by email, or both.
These preferences are personal, so every user configures their own notifications.
Manual and automated tasks, filters, labels, and linked records.
Choose which task events reach you in the app or by email.
## 2. Use notes to give your team and the AI context
Notes preserve what your team learns from calls and meetings. Once linked to the right
records, they also improve matching, summaries, reports, job descriptions, and Ask AI.
### 2.1 Create, organise, and link a manual note
Open **Notes** and click **Add note**. Write the note in the editor. It saves automatically,
so there is no save button.
Use the side panel to add:
* **Properties:** review who the note belongs to, use **Link meeting** to attach a calendar
event, and choose an activity type such as an online meeting, an inbound call, or a
voicemail.
* **Labels:** categorise the note so your team can filter and report on consistent activity
types.
* **Linked records:** connect the note to one or more candidates, contacts, companies, or
jobs.
At the bottom of a new note, select **Start from template** for a reusable structure, or
**Record note** to capture a voice note of up to five minutes.
Use the **search bar** on the Notes page to find existing notes. It supports Boolean queries
when you need a more precise search.
A linked note stays available from the main Notes list and also appears in each connected
record's **Notes** tab, and on the linked meeting entry.
Spott's AI can only use a note as context after it is linked to a record. An unlinked note
stays in the Notes list but is invisible to matching, summaries, and Ask AI.
### 2.2 Capture meetings and calls automatically
Automated notes are created when the Spott Note Taker joins an online meeting, or when a
connected VoIP integration records a call. Each note carries an AI summary, the full
transcript, and a link to the recording.
To enable the Note Taker:
1. Open **Settings → Accounts** and connect your Google or Microsoft Outlook calendar.
2. Open **Settings → Calls** and switch on **Enable Spott Note Taker**.
3. Accept the terms and conditions.
The Note Taker joins meetings that contain a valid Zoom, Microsoft Teams, or Google Meet
link. It waits in the lobby until it is admitted, then transcribes the conversation, and
usually creates the note two to five minutes after the meeting ends.
Spott links meeting notes to a person using an attendee's email address, and call notes
using their phone number. If it cannot find a match, open the note and use **Link record**
to connect it by hand.
Switching the Note Taker off stops it from being scheduled for new meetings and
unschedules upcoming joins, but existing recordings, transcripts, and summaries stay
available.
### 2.3 Use note and insight templates correctly
Open **Settings → Templates** to manage the structures Spott reuses.
* **Note templates** are reusable layouts for manual notes, such as interview debriefs or
client call summaries. You choose one when starting a note.
* **Insight templates** are the instructions the AI follows when summarising meetings and
calls. Spott picks the template itself by reading each template's description, so you do
not choose one per meeting.
For an insight template, write a description that explains when it should be used. Then
shape the output with sections, instructions, length, and format.
Keep those descriptions distinct from one another, and ask for information your team will
actually reread. Clear boundaries help Spott pick the right template, and focused sections
keep the summaries worth opening.
Changing an insight template affects future notes only. To update an existing automated
note, open its **⋮** menu and select **Resummarize transcript**, then choose the template
and the output language.
Manual notes, automated notes, labels, linking, and resummarising.
Enable it, add it to meetings, and troubleshoot missing notes.
Create note templates and AI insight templates.
What the AI reads, and how linked context improves it.
## Now your turn
* [ ] Create one **task** that tags a candidate and a job, then find it in the candidate's
**Tasks** tab
* [ ] Let the **Note Taker** join one meeting and read the note it creates
* [ ] Create one **note template**, use it for a meeting or a call, link the note to a
candidate or contact, and find it in their **Notes** tab
Build the reports and insights the dashboard does not answer.
# Troubleshooting
Source: https://docs.spott.io/docs/onboarding/troubleshooting
Fix the most common problems yourself: what to check, what to change, and what to tell us if it is still broken.
In this section you learn how to diagnose and fix the problems that come up most often in
Spott, grouped by what you are seeing rather than by which feature is at fault. Each entry
gives you the steps to try, and what to include if you do need to reach us.
1. [I can't find something](#1-i-cant-find-something)
2. [My email, meetings, or messages aren't showing up](#2-my-email-meetings-or-messages-arent-showing-up)
3. [The AI didn't do what I expected](#3-the-ai-didnt-do-what-i-expected)
4. [The Note Taker or my booking link didn't do what I expected](#4-the-note-taker-or-my-booking-link-didnt-do-what-i-expected)
5. [An import didn't land the way I expected](#5-an-import-didnt-land-the-way-i-expected)
6. [The extension isn't working](#6-the-extension-isnt-working)
7. [Something client-facing looks wrong](#7-something-client-facing-looks-wrong)
8. [Still stuck](#8-still-stuck)
Work down the four checks below first, because they resolve a large share of what gets
reported to us.
## Before anything else, check these four
Open **Settings → Accounts**. A password change, an MFA reset, or an IT policy change
on the provider's side can drop the connection without telling you. If it shows
anything other than connected, reconnect it.
Check the view name in the top-right corner of any list page. If it is not **Default
View**, its filters, sorting, and columns are still applied, and a record that does
not match them is invisible, not missing.
Spott uses role-based access control, and it hides what your role cannot reach rather
than greying it out. If a colleague can see a tab or an action you cannot, that is the
likely cause. Ask an admin to check your role.
Notes, tasks, emails, and files only appear on a record once they are linked to it,
and Spott's AI can only read a note that is linked. An unlinked note sits in the Notes
list, invisible to everything else.
## 1. I can't find something
**Try this**
1. Check the view name in the top-right corner. If it is not **Default View**, its
filters are still applied, so switch to Default and search again.
2. Searching by email address or phone number? The quick search bar matches names and
keywords only. Use global search (`⌘K` / `Ctrl+K`) for identifiers.
3. Searching on skills or experience rather than a name? Use the **Search** tab, which
reads the whole profile including notes and attachments.
4. Searching a phrase? Put it in double quotation marks. Without them, Spott treats
each word separately.
5. If the record was merged, everything now lives on the surviving profile. Try the
other spelling of the name.
**If it's still broken**, start a chat from the bubble and include the candidate's
full name, the email address you have for them, and the page you were searching from.
The panel is still there, dragged shut. It can be resized all the way to the edge
until it has no width left, and Spott remembers that width when you collapse and
reopen it, so it never comes back on its own.
**Try this**
1. Uncollapse the panel with the arrow next to the action button on the **Overview**
tab.
2. Drag inwards from the very edge of the window to give it a width again.
It behaves the same way on candidates, contacts, and companies, which is why the panel
can seem to appear on some records and not others.
**Try this**
1. Ask an admin to check which role you hold under **Settings → Security → Users**.
Roles are edited straight from the row, and a person can hold more than one.
2. Workspace settings, and the delete, merge, and export actions, are the permissions
most often withheld from standard roles.
3. If a feature is missing for everyone, not just you, check **Settings → Features**,
where it may be switched off for the workspace.
**If it's still broken**, tell us the exact tab or button, and the name of the role
you hold.
**Try this**
1. Click each filter chip to see what it is doing, and remove the ones you did not
intend.
2. To exclude placed or inactive candidates deliberately, add a filter on status or
jobs and save that setup as its own view, rather than editing the one everyone
shares.
3. Remember that a view stores columns and sorting as well as filters, so a column you
cannot see may simply not be in this view.
**If it's still broken**, tell us the view name and one record that should be in it.
Find any record by name, email, phone number, or record ID.
Boolean queries, structured filters, and AI text to filters.
What a view stores, and how to save your own.
Roles, permissions, and who can see what.
## 2. My email, meetings, or messages aren't showing up
**Try this**
1. Give it a full working day. Spott syncs years of history and matches it to the
people in your database, which typically takes 8 to 12 hours for a normal inbox.
New mail keeps arriving while the backfill runs.
2. Open the profile of someone whose email is missing. Inbox only syncs messages with
people who already exist in Spott, so if they are not a candidate or contact yet,
add them, and the conversation appears.
3. Check **Settings → Accounts** still shows the account connected.
**If it's still broken**, start a chat and include the address you connected, whether
it is Google or Microsoft, and one example sender whose mail is missing.
**Try this**
1. Look at where the error appears. If it is on the Microsoft or Google consent
screen, your organisation's IT policy is blocking the permission grant, which is
not a Spott error.
2. Ask a workspace admin to allow Spott for the whole organisation, in Microsoft Entra
ID under Enterprise Applications, or the Google equivalent.
3. If you are that admin, tick **allow for everyone in my organization** on the
consent screen.
**If it's still broken**, send us a screenshot of the consent screen error and tell us
whether you are the IT admin.
**Try this**
1. Confirm the recipient received them and that they appear in Spott. If both are
true, the send worked and only the Sent-folder copy is missing.
2. Check which Microsoft plan the mailbox is on. A consumer-tier plan routes outgoing
mail through an alias, which is almost always the cause.
3. The fix is a Microsoft 365 Business plan, arranged by your IT admin.
**If it's still broken**, tell us the plan the mailbox is on and one example message
and date.
**Try this**
1. This is working as designed. The owner of that mailbox has restricted their sharing
level, so you see metadata but not the content.
2. Everyone sets their own level under **Settings → Accounts**: metadata only, subject
line and metadata, or full access.
3. If your team needs more visibility, ask that colleague to change their own setting:
no one else can change it for them, including admins.
**If it's still broken**, nothing to fix here, but tell us if you think the level
shown does not match what the owner set.
**Try this**
1. This is blocked by design, for everyone including admins. Adding it would expose
your colleague's entire email history with that address and bypass the email
visibility model.
2. If you need their conversation on the record, ask them to raise their own sharing
level instead.
**Try this**
1. Check the WhatsApp card under **Settings → Accounts** shows Connected.
2. Remember the sync is per user and private: you only see your own WhatsApp
conversations, never a colleague's, and they never see yours.
3. As with email, the other person needs to exist in Spott as a candidate or contact
for the conversation to attach to a record.
**If it's still broken**, tell us the number you connected and roughly when the
messages were sent.
Channels, filters, replies, syncing, and record linking.
What each connection syncs, and the sharing levels.
Outlook email and calendar sync.
Gmail and Google Calendar sync.
## 3. The AI didn't do what I expected
**Try this**
1. Check your pre-filters are not too strict. Aim for a filtered pool of roughly 2,000
candidates or fewer, but not close to zero. Spott shows how many candidates pass,
so widen them if the pool is tiny.
2. Move every hard requirement into **pre-filters** and keep **criteria** for
qualities you want to compare. Criteria that read like keywords rank badly, so
write them as an ideal profile instead.
3. Look at the job's **Overview**. If there is no description, no linked notes, and no
sourcing criteria, matching has little to read. The AI can only rank what it can
read, so CVs, notes, and transcripts matter.
4. Don't read a weak score as a failed filter, because every candidate in the results
already passed the pre-filters. Scores rate the criteria only.
5. Missing someone you expected? Matching excludes anyone already in the job's
pipeline. Check the **Candidates** tab.
**If it's still broken**, send us the job name and one candidate you expected to see
ranked highly.
**Try this**
1. Open the note and check it is linked to the record. Spott's AI can only use a note
as context once it is linked, and an unlinked note is invisible to matching,
summaries, and Ask AI.
2. Notes are not linked to a job automatically. Open the note and link it to the job
so it appears on the record.
3. If the note came from a meeting or call, Spott links it by attendee email address
or phone number. When it cannot find a match, use **Link record** to connect it
manually.
**If it's still broken**, tell us the note title and the record it should be attached
to.
**Try this**
1. Check how the attribute was created. AI fill only applies retroactively if the
attribute was created as AI-filled from the start.
2. If you converted an existing attribute later, AI fill applies to new records only,
and there is no bulk backfill.
3. Values can be regenerated one record at a time from the record itself.
**If it's still broken**, tell us the attribute name and whether it was created as
AI-filled or converted.
**Try this**
1. This is expected and unrecoverable. Structural scorecard edits delete every
per-candidate scorecard on that job so scoring stays comparable, and the UI warns
you before it happens.
2. Going forward, finalise the scorecard structure before your team starts scoring.
3. Renaming is not a structural change; adding, removing, or reordering criteria is.
Pre-filters, criteria, scores, and search history.
Everything the AI does, and what it reads to do it.
How linking works, and what gets tagged automatically.
Score candidates against a job's criteria.
## 4. The Note Taker or my booking link didn't do what I expected
**Try this**
1. Check your own setting first, under **Settings → Calls**.
2. Then ask the colleagues on the invite to check theirs. The bot joins if any
workspace colleague in the meeting has it enabled, and your setting only controls
your own automatic joining.
3. To keep a specific meeting private, remove the bot from that meeting from the
calendar card.
**If it's still broken**, tell us the meeting date and who else from your workspace
was invited.
**Try this**
1. It does not rejoin automatically.
2. Around the scheduled time, ask it to rejoin manually from the meeting card on the
**Calendar**. It resumes recording from that point, so anything said in between is
not captured.
**If it's still broken**, tell us the meeting and the platform it was on.
**Try this**
1. Look for all-day or multi-day calendar events marked **Busy**. A single one wipes
out those days, so set its status to **Free** or **Tentative**.
2. Remember the rule: events marked **Busy** or **Out of office** block availability;
**Free** and **Tentative** do not.
3. Check the booking link's own rules: booking notice, buffers, and weekly
availability.
**If it's still broken**, send us the booking link and the dates you expected to be
bookable.
**Try this**
1. Spott links meeting notes by an attendee's email address, and call notes by phone
number. If the address or number on the record does not match the one on the
invite, it cannot match them.
2. Open the note and use **Link record** to connect it manually.
3. Add the missing address or number to the person's record so future notes link
themselves.
How it joins, what it produces, and how to remove it.
Availability, meeting types, and booking rules.
Scheduling, rescheduling, and cancelling meetings.
Why there is no Zoom integration to connect.
## 5. An import didn't land the way I expected
**Try this**
1. This is a limitation, not a mapping mistake: custom fields cannot be mapped in the
import wizard. The dropdown offers standard fields only.
2. Set those values on the records afterwards, or use an AI-filled column where the
value can be derived from the CV or profile.
**If it's still broken**, tell us which fields you expected and we will confirm
whether a standard field covers them.
**Try this**
1. Also expected. An import **creates** records; it does not update existing ones.
Where a row matches an existing profile, Spott adds that person to the job or list
without overwriting their data.
2. To refresh an existing profile, use a new CV, a self-service update link, or a
LinkedIn refresh instead.
**Try this**
1. An import adds people to a job as applications, but cannot set their application
status or add comments.
2. Open the job's pipeline and move them to the right stage there.
**Try this**
1. Spott deduplicates on email address, phone number, and LinkedIn URL. A row with
none of those three cannot be matched to an existing person.
2. Merge the duplicates: open one of them and use the **Actions** menu: Merge 2
people, Merge 2 Companies, or Merge 2 Jobs.
3. Merging is pairwise, so three duplicates take two merges.
**If it's still broken**, send us the file you imported and one example of a
duplicated person.
**Try this**
1. A LinkedIn URL column imports the link only, not the profile content.
2. To bring the profile itself across, use the browser extension on the profile page.
Every mappable column, and how matching works.
How Spott spots duplicates and how to merge them.
Refresh a record from a CV, a self-service link, or LinkedIn.
What a managed migration moves that an import cannot.
## 6. The extension isn't working
**Try this**
1. Close and reopen the side panel by clicking the Spott icon in the browser toolbar
twice.
2. Do not bother refreshing the LinkedIn page, because the panel runs in a separate
context, so a page refresh does not reset it.
3. Confirm you are on Google Chrome or Microsoft Edge. The extension does not work on
other browsers.
**If it's still broken**, tell us your browser and version, and the page you were on.
**Try this**
1. Spott imports publicly available information only: name, role, company, experience,
education, and location.
2. Contact details visible only inside Recruiter or Sales Navigator cannot be
imported.
3. Use enrichment to find email addresses and phone numbers instead.
Install, connect, and use the extension.
Find the email addresses and phone numbers LinkedIn hides.
## 7. Something client-facing looks wrong
**Try this**
1. Check your sending domain is verified, under **Settings → Domains**. Marketing
campaigns can only send from mailboxes on a verified domain.
2. Add the DNS records shown there if you have not, and allow time for them to
propagate.
3. If the domain is verified, check the campaign's **Delivery Window**: sends only
happen inside the hour window you set, optionally on business days only, and they
are staggered with randomised gaps and daily limits per mailbox to protect
deliverability. A new sending account is warmed up gradually.
**If it's still broken**, tell us the campaign name, the sending address, and the
window you set.
**Try this**
1. Someone stopped receiving it? That is by design: **reply received** and **meeting
booked** are exit criteria, and the recipient leaves the sequence automatically.
2. Cannot change the steps? Message content and step timing can be edited for steps
recipients have not reached, but adding, removing, or reordering steps is locked
once a campaign has started. Duplicate the campaign instead.
3. Want a colleague to send it? Campaigns send from the creator's connected mailbox.
Have them duplicate the campaign and enrol the recipients so it sends from theirs.
**Try this**
1. Check the contact is registered under the company associated with the job. Only
those contacts can be invited to its Company Portal.
2. Check the candidates you meant to share are actually published, using **Publish on
portal**, or select several in the pipeline and choose **Add to company portal**.
3. Open **Activity** inside the portal to see whether they opened it at all.
**If it's still broken**, tell us the job, the company, and the contact's email
address.
**Try this**
1. Branding, public URLs, social links, and privacy text are all set under **Settings
→ General**.
2. The consent disclaimer at the bottom of public forms can be replaced with your own
privacy agreement text in the same place.
3. The "posted X ago" label cannot currently be hidden, because it is system-generated
on public job listings.
**If it's still broken**, send us the public URL and a screenshot of what you want
changed.
**Try this**
1. Missing from the table? The placements table shows core fields only, because
different placements can use different forms. Open a placement's detail page to see
and edit its form values, or export to Excel, whose exports do include the nested
form values.
2. Missing from past placements? Deleting a field from a placement form removes its
data from **every** past placement that used it, not just future ones, and that
cannot be undone. Renaming and adding fields are safe.
**If it's still broken**, tell us the placement and the field name, and export the
affected placements before changing anything else.
Verify your domain and register sender addresses.
Warm-up, list hygiene, and reaching the inbox.
Delivery windows, exit criteria, and editing a live campaign.
Invite client contacts and track what they do.
## 8. Still stuck
If you have worked through the relevant entry above and it is still broken, reach us from
inside Spott by clicking the bubble icon in the bottom-right corner.
Include these four things and we can usually answer in one reply rather than three:
1. **What you were doing**, and the page or record you were on.
2. **What you expected**, and what happened instead.
3. **One example**: a record name, an email address, a job, a date and time.
4. **What you already tried** from this page.
Starting a chat creates a ticket in our system rather than opening a live chat. A member
of the team will be in touch as soon as possible.
The questions we get asked most during onboarding.
Every way to reach the team.
## Now your turn
* [ ] Check your **email account** is still connected
* [ ] Confirm you know how to switch back to **Default View** on a list page
* [ ] Find out which **role** you hold, and what it can and cannot do
* [ ] Open one note and confirm it is **linked** to a record
The questions we get asked most during onboarding.
# Get onboarded on Spott
Source: https://docs.spott.io/docs/onboarding/welcome
Your guided path from first login to running your desk in Spott.
[Spott](https://spott.io/) is the **AI-native ATS and CRM** for recruitment firms. It was
born from frustration with legacy systems like Bullhorn, bolt-on tools, and AI's unused
potential for recruiting. Spott is built with AI at the core, as an intelligent and
easy-to-use platform where everything works together.
Instead of passively storing data, Spott captures every interaction and turns it into
action. It powers smarter search, outreach, and BD, resulting in more placements, faster.
## How to use this guide
Work through the four parts in order. Each page is a standalone walkthrough you can follow
with Spott open in another tab, and ends with a short checklist so you can confirm you
have actually done it.
This guide is deliberately self-contained. Wherever a topic goes deeper than onboarding
needs, you will find a link into the full [documentation](/index), which you can come
back to at any time.
Sign in, configure your personal settings, set up the workspace, and migrate your
candidates.
Candidates, jobs, companies, and placements: the records your desk runs on.
Notes, tasks, inbox, calendar, dashboard, and reporting.
The handful of habits that make everything else work, plus how to reach us.
## 1. Set up your account and get your data in
Your own account first, then the workspace settings if you are an admin.
Candidates, clients, and jobs, yourself or through a managed migration.
Seats, credits, and topping up.
## 2. Get to know the core features
Navigate through each of these pages to learn the essentials of the Spott platform, on
both the ATS and the CRM side.
Every route into your database, then work a candidate record end to end.
Create a job and run its pipeline.
Companies, contacts, and business development.
Close the loop when someone gets hired.
## 3. Get to know the core tools
Navigate through each of these pages to get to know the essential tools in Spott, and how
to make best use of them.
Your day at a glance, with targets.
Email and meetings, in one place.
Capture what happened, and never drop a follow-up.
Build the reports your team runs on.
## 4. Best practices and support
Four habits that make Spott work for you.
Fix the problems that come up most, grouped by what you are seeing.
The questions we get asked most during onboarding.
Where to find answers, and how to reach the team.
# Opportunities
Source: https://docs.spott.io/docs/opportunities/opportunities
Track deals and business development in Spott with opportunities: stages, weighted pipeline forecasts, and conversion to jobs.
**Opportunities** track deals: anything you are working to close that is not a
specific recruitment job yet. Think consulting and advisory engagements, framework
agreements, or multi-placement deals at one client. Other CRMs call the same concept
"deals".
Opportunities sit on the CRM side of Spott, next to companies and contacts. They are
most useful when your agency has a distinct sales motion: sales reps work
opportunities, recruiters work jobs. Many agencies manage fine with company or
contact stages alone; opportunities are the step up when that is not enough.
You can quickly navigate to Opportunities with `G` then `Y`.
## Enable opportunities
Opportunities are off by default. An admin turns them on in **Settings → Features**
with **Enable Opportunities**. After enabling:
* **Opportunities** appears in the sidebar under CRM.
* **Settings → Data Model** gains an Opportunities section for custom fields.
* Opportunity **stages** become configurable under **Settings → Stages**.
## Stages and the weighted pipeline
Configure your own stages (for example Pitching, Negotiation, Proposal sent, Closed
won, Closed lost). Each stage has a **Closing Rate Percentage**: the likelihood that
a deal at that stage will close.
With estimated values on opportunities and closing rates on stages, the **Board
view** shows per stage:
* **Total Est. Value**: the raw sum of the deals in that stage
* **Weighted Value**: the sum multiplied by the stage's closing rate
That gives you a realistic forecast instead of an over-counted raw total.
Drag opportunities between stages as deals progress. A **List view** with filters,
sorting, saved views, and a **Group by company** toggle is also available. See
[using views](/docs/settings/using-views).
## Create an opportunity
Click **Add Opportunity** (or press `A` then `Y` anywhere). Fill in the **Name**
(for example "Backend hiring plan 2026"), the **Company**, and the **Stage**, then
click **Create Opportunity**.
As on jobs, you do not have to type it all in. **Import from URL** takes the link to a
public posting and reads it into the opportunity's fields, and the
[browser extension](/docs/settings/chrome-extension) creates an opportunity from the
page you are looking at.
On the opportunity record you can then set:
* **Estimated Value** and **Target Close** date
* The **Opportunity Owner**
* Linked **client contacts**: emails, calls, and meetings with them surface on the
opportunity
* **Notes**, **Files**, **Tasks**, and **Communication**, in their own tabs
* Any custom fields your workspace has configured
## Convert an opportunity to a job
When a deal turns into recruitment work, click **Convert to job** in the
opportunity's quick actions. The new job is pre-filled with the opportunity's
company, name, and contacts, ready for the recruiter to pick up.
The opportunity itself is not deleted: move it to Closed won and keep its history.
The opportunity and the job stay linked, so you can trace a placement back to the
deal that won it. For deals with multiple roles, convert into one job per role.
**Candidates are not linked to opportunities.** An opportunity tracks the deal; you
pipeline candidates only once it converts to a job. This is the usual source of
confusion between jobs and opportunities: jobs have a candidate pipeline,
opportunities do not.
# Campaigns
Source: https://docs.spott.io/docs/outreach/campaigns
Create, manage, and track multi-channel outreach campaigns to contact multiple recipients in a structured way.
You can quickly navigate to Campaigns with `G` then `H`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
**Campaigns** in Spott allow you to contact multiple recipients through automated multi-channel sequences. Campaigns help you send personalized messages, follow up automatically, and track replies and engagement from a single place.
Each campaign consists of one or a sequence of steps, enrolled recipients, and timing rules that define when messages are sent.
Use the filters, sorting, and search bar on the Campaigns page to keep a large set of campaigns organized.
Make sure **Outreach Campaigns** are enabled in the settings before proceeding. You can find this under **Settings > Features > Communication.**
**Warm up a new sending mailbox before you run volume through it.** Spott ramps a new
account up gradually to protect its reputation, but the practices around it are yours:
clean lists, sensible daily volumes, and content that does not read as bulk. Get this
wrong and your mail lands in spam no matter how good the sequence is. See
[email deliverability best practices](/docs/outreach/email-deliverability).
## Campaign types
When you create a campaign, you pick a **type**, which decides what context the
sequence is built around:
* **Generic Outreach Campaign**: a message sequence that only uses the recipient as
context. No job or candidate is required, so this is the most flexible option for
general outreach.
* **Present Job to Candidates**: a message sequence to contact candidates about a
specific job. A job must be set as context.
* **Present Candidate to Contacts**: a message sequence to present a candidate to
hiring managers without an active role. A candidate must be set as context.
## Create a new outreach campaign
### 1. Navigate to Campaigns
In Spott, go to **Campaigns**
* Click **New campaign** in the top right
* Give your campaign a **name**, a **type**, a **job**, and a **default stage**
* You can also create Campaigns **from a template**, so you can reuse best practices from other sequences. See [campaign templates](#campaign-templates)
* New campaigns are created in **Draft** status
### 2. Draft your campaign
In the campaign editor, you can add one or more steps by clicking **Add step to sequence**. Steps are grouped into **Automated** and **Manual**.
### **Automated Steps**
The only fully automated step is:
* **Email** - Automated email, based on a template
For each email step, you can configure:
* Subject
* Email content
* **Attachments**, for example a brochure or a job description that goes out with the mail
* A **booking link**, so the recipient can put time in your calendar straight from
the email. See [the scheduler](/docs/calendar/scheduler)
You can use variables such as:
* `\{ Recipient > First Name \}`, inserts the recipient’s first name
* `\{ Job > Name \}`, inserts the job title associated with the outreach
Variables are automatically replaced when the email is sent. Type `{` in the **body** to open the variable picker, which also includes AI generated content and a **Request updated CV link**. Subject lines take plain text only, so the personalisation has to live in the message itself.
When editing an email step, you can also use **AI generated content** to generate text based on a selected context and instruction.
For example, you can ask AI to:
* Write in 3 bullet points, max 15 words each, why this opportunity is interesting for the recipient
### **Manual Steps**
At the moment, the following sequence steps are manual:
* **Manual LinkedIn connection request**
* **Manual LinkedIn message**
* **Generic Task**, a reminder or to-do you complete yourself
* **Phone Call**
* **Manual WhatsApp message**
What this means is that when a contact reaches this step in the sequence, the message will not be sent automatically, neither will the LinkedIn request. Instead, a task is created in your task list, including the relevant contact details and message template prepopulated. See Examples here below:
A manual step is written like an email step, with variables and AI content, and is
**assigned to a teammate**, who gets the task when a recipient reaches that step.
These tasks can be **filtered out of your task list on their own**, so you can work
through a sequence's calls or messages in one sitting. See [tasks](/docs/tasks/tasks).
Once you have completed the task, click on one of the two available action buttons:
* **Complete & continue campaign** - sends recipients to the next step in the sequence
* **Complete & exit campaign** - makes them exit the campaign after this step
### 3. Set timing and add steps
You can control when your campaign starts and how emails are spaced.
* Set a wait time between each email step, in **business days or in hours**. Hours
are what you want for a same-day nudge; days for a normal follow-up rhythm
* Choose how many business days after enrollment the campaign starts for new recipients
* Add new steps to extend the sequence, each with its own timing
This allows you to control both the start and pacing of your campaign.
### 4. Enroll recipients
Recipients are not contacted until they are enrolled.
To enroll recipients:
1. Open the campaign
2. Go to the **Recipients** tab
3. Add recipients
4. Click **Enroll recipients**
You can enroll recipients while the campaign is still in draft. You can also enroll
them **while it is live**, in which case they start straight away rather than waiting
for anything.
You can also enroll people in campaigns from the candidate or contact view, from
[lists](/docs/lists/lists), or directly from the pipeline, by clicking the checkbox
next to their name. That works **one by one or in bulk**: tick a whole filtered set
and enroll them in one action. Selecting rows on a **Companies**, **Jobs**, or
**Opportunities** table enrolls
[every contact linked to them](/docs/contacts/search-contacts#5-reach-contacts-in-bulk-from-another-table)
in the same way.
When you pick the campaign to enroll into, the picker shows more than its name, so you
can tell two similarly named sequences apart before you commit a batch of people to the
wrong one.
**Check the messages before they go out.** The **Recipients** tab lists everyone with
their run laid out step by step, so you can see exactly where each person is. Per
recipient you can **Preview** the message as it will be sent, with their variables and
AI content filled in, **Pause run**, or **Unenroll** them, without touching the rest.
The buttons at the top do the same for everyone at once: **Start all remaining runs**
and **Pause all runs**.
### 5. Configure campaign settings and start
From the campaign's side panel you can control how messages go out:
* **Delivery Window**: the hours during which messages can be sent (for example
9:00 AM to 5:00 PM in your time zone), with a **Business days only** toggle
* **Configuration**: optionally enrich contact details automatically when they are
missing, and skip steps automatically when no valid contact details are found.
Automatic enrichment has three limits that decide whether it does anything for you:
it applies **only to recipients added after you switch it on**, so turn it on before
enrolling anyone; it enriches **only what the next step needs**, so an email step
looks for an email address and nothing else; and a WhatsApp or manual step is a task
rather than a send, so it triggers **no phone enrichment at all**. To have numbers and
personal addresses ready in advance, run a bulk **Enrich** from the Candidates or
Contacts view before you enrol the audience.
* **Sender Settings**: how the mail goes out.
* The **mailbox** used. A campaign always sends from the mailbox of the person
who created it.
* The **signature**. It is not filled in for you: set it here, or your mails go
out without one. See [connected accounts](/docs/settings/accounts).
* **Deliver to**, which decides which email address each recipient is reached on.
See [Which address a recipient is reached on](#which-address-a-recipient-is-reached-on).
* **Threaded emails**, which keep follow-ups in the same thread automatically
when the toggle is on.
* **Delegated sending**, on by default, which lets colleagues add recipients to,
and start, a campaign you created.
* **Exit Criteria**: when recipients leave the campaign automatically, for example
when a **reply is received** or a **meeting is booked**. You can also move
recipients to a pipeline stage based on the outcome, with separate **If replied**
and **If no reply** stage actions. **Moving stage is only available on job
campaigns**, since a generic campaign has no pipeline to move anyone through.
Once your steps and recipients are ready, click **Start Campaign**. You can also start
the campaign **for one recipient at a time** instead of the whole list, which is useful
when you want to test the sequence on a few people first. Once a campaign is live,
anyone you add to it starts automatically.
### Which address a recipient is reached on
A person can hold more than one email address, and **Deliver to** in Sender Settings decides
which of them a campaign uses. It offers three choices:
| Deliver to | What Spott looks at |
| - | - |
| **Work or Personal** | Work addresses first, then personal. The default. |
| **Work only** | Work addresses only. |
| **Personal only** | Personal addresses only. |
On the default, **Work or Personal**, Spott resolves each recipient in this order and stops
at the first address it finds:
1. A **work** address, taking the one marked primary, or the most recently created if none
is marked.
2. The **primary personal** address.
3. The **most recently created personal** address.
If none of those exists, the recipient has no address and the step is skipped for them.
**Contacts whose only address is a personal one are still reached** on the default
setting, because personal is a genuine fallback rather than a separate opt-in. This
matters if a large part of your database is made up of people who are candidates as well
as contacts, since their address often sits in the personal field only.
Narrowing **Deliver to** is what removes them. On **Work only**, every recipient without a
work address is skipped silently, and no error tells you how many that was.
The same resolution runs everywhere Spott picks an address for you, including a bulk email
sent from **Communication Actions** on a table. Only campaigns expose the **Deliver to**
choice; everything else behaves as **Work or Personal**.
Emails are sent and tasks are created automatically based on the defined timing rules.
Across your workspace, campaign emails leave in the order they were scheduled, **first in
and first out**, whichever campaign they belong to. A campaign started this morning
queues behind whatever was already waiting, and there is no way to push one to the front.
Pausing a campaign does free its place in the rhythm for the others, which is the only
lever you have when something urgent needs to go out first.
A few sending details worth knowing:
* New sending accounts are **warmed up automatically**, ramping up volume gradually
to protect your email reputation instead of sending at full capacity from day one.
* Within a step's send window, individual emails are spaced out by a random gap of
**30 seconds to 20 minutes**, which is why a step can go out over a few hours.
* Each connected account has a **daily sending limit** for campaign emails, **125 per
day** by default and adjustable between **10 and 200** under
[Settings → Accounts](/docs/settings/accounts). Keep a new or shared mailbox low:
the limit is there to stop your provider restricting the account.
### 6. Track Progress
From the campaign home, you can track progress, including the campaign's completion and its **reply rate**.
The reply rate counts **people, not messages**. It is the number of enrolled recipients
who replied, divided by the number enrolled, so a campaign with one reply out of four
recipients reads 25% however many messages each of them received.
A reply also ends the sequence for that person: **Reply received** is one of the campaign's
**exit criteria**, alongside **Meeting booked**, so nobody keeps getting follow-ups after
they answer.
Automated replies never count. An out-of-office bounce back into the thread does not
register as a reply, does not pause the sequence, and does not take the recipient out of
it, so somebody on holiday still receives the follow-ups waiting for them.
Campaigns track **reply rate only**. There is no open or click tracking. For open
and click tracking, use [Marketing](/docs/outreach/marketing).
### No unsubscribe link
A campaign goes out from your own mailbox as an ordinary one-to-one email, so it carries
**no unsubscribe link and no opt-out tracking**. Nobody can remove themselves, and
Spott has no suppression list for these sends. Someone who asks to be left alone has to
be unenrolled by hand.
That is the deliberate split with [Marketing](/docs/outreach/marketing), which sends at
scale, adds an unsubscribe link to every message, and suppresses future sends
automatically. If your sequence needs an opt-out, either run it through Marketing or link
to a form of your own in the body.
## Managing a running campaign
You do not have to stop a campaign to adjust it:
* **Pause and resume** a running campaign at any time.
* **Edit the message content** of steps, even after the campaign has started.
* **Duplicate** a campaign back to draft to reuse it as a starting point.
* **Unenroll individual recipients** without affecting the rest of the run.
An edit applies to the steps a recipient **has not reached yet**. A step that is
already running keeps the version it started with, even if its message has not gone
out to everyone yet. To change what a specific person receives, edit their message
from the Recipients tab instead.
It is still easiest to finalize your sequence before you start, so plan the steps up
front where you can.
## Campaign templates
To reuse a sequence you run often, save it as a **campaign template**. Templates live
under **Campaigns → Campaign Templates**, each with a **Purpose** (for example Generic
Outreach Campaign, Present Job to Candidates, or Present Candidate to Contacts) and the
teammate who created it.
Click **New campaign template** to build one: give it a name and a **Purpose**, then
build the sequence exactly as you would in a campaign. The editor is the same, side
panel included, so the delivery window, configuration, sender settings, and exit
criteria are saved with the template.
Every other place Spott uses AI is mapped out in [AI in Spott](/docs/get-started/ai-in-spott).
# Email Deliverability Best Practices
Source: https://docs.spott.io/docs/outreach/email-deliverability
Warm up your sending domain, keep your mailing list clean, and optimize content so marketing emails reach the inbox.
Before sending campaigns with the [Marketing module](/docs/outreach/marketing),
make sure your [sending domain is verified](/docs/settings/domains). Then follow
the practices below to reach more recipients, drive better engagement, and protect
your sender reputation.
## Warm up your sending domain
A brand-new sending domain or subdomain has no sending history, so inbox providers
have no reason to trust it yet. Sending a high volume of email straight away can
look suspicious to them, and they may respond by throttling your messages, delaying
them, or routing them to spam. A poor reputation picked up early is slow and
difficult to undo. Warming up prevents this: you build trust gradually, starting
with low volumes and increasing over time, before sending at full scale.
The basics to warm up **from scratch**:
* **Send to your most engaged recipients first**: people who reliably open and
click. Strong early engagement is what builds reputation fastest.
* **Start with a low daily volume**, around 5 to 10 emails a day, and increase it
step by step over **at least two weeks**, working up toward roughly 50 a day
before continuing on to your full sending volume. Keep each increase modest
rather than jumping.
* **Watch your numbers as you go**: keep bounces low, complaints below 0.3%
(ideally under 0.1%), and engagement healthy. If metrics dip, slow down before
ramping further.
If you are already sending from a domain or subdomain with an established, healthy
sending history, that reputation carries over, so there is no need to warm up from
scratch. If you would rather not manage the ramp manually, dedicated email warm-up
tools can automate it for you.
**Warming up your domain and managing its sending reputation over time are your
responsibility, not Spott's.** We send the campaigns you build, but we do not
manage your domain, your DNS, or your sender reputation on your behalf. Warming
up a new domain, keeping your lists clean, and monitoring reputation over time
are down to you.
## Build and maintain a clean mailing list
* **Build a proper opt-in process.** Only email recipients who have explicitly
consented and understand what they are signing up for. Consent is not permanent:
record its validity and periodically reconfirm that subscribers are still
interested.
* **Always include an unsubscribe link.** Making it easy to opt out reduces spam
complaints, builds trust, and ultimately improves deliverability. The marketing
builder requires this, so you cannot forget it.
* **Do not purchase or scrape lists.** Unsolicited emails lead to high bounce
rates, spam complaints, compliance risks (GDPR, CAN-SPAM), and damage to your
sender reputation.
* **Keep your lists clean.** A small, engaged list outperforms a large,
unresponsive one. Regularly:
* Remove hard bounces and invalid addresses
* Avoid role-based addresses such as `info@` or `office@`
* Remove unengaged recipients
By default, all candidates are **opted in** for marketing communication. It is
**your responsibility to collect the initial opt-in** for your mailing list.
From then on, clicking the unsubscribe link automatically creates a marketing
opt-out, visible on the [Consent subtab](/docs/settings/gdpr-consent) of the
contact or candidate.
## Optimize your content
### For engaged readers
* **Branding**: use a consistent logo, color scheme, "From" name, and email
address so recipients immediately recognize you as a trusted sender.
* **Keep it short.** Lead with the most important information, use bullet points
to avoid long text blocks, and write compelling subject lines. The longer the
scroll, the lower the engagement.
* **Mobile responsiveness.** A significant portion of emails are read on mobile,
and unoptimized emails are often deleted or marked as spam. Use Spott's email
builder and preview your emails across devices before sending.
### For spam filters and inbox providers
* **Optimize images.** Add descriptive alt text and scale images correctly; the
email builder handles responsive design.
* **Host images in Spott's File Manager** for reliable loading and better inbox
placement.
* **Maintain a good text-to-image ratio.** Aim for 2 to 4 sentences of text per
image. Too many images with little text can trigger spam filters.
* **Keep email size in check.** Large emails may be clipped or blocked. Use the
**Preview** and **Send test** features to review the email before sending.
Together, these practices improve deliverability, reduce spam complaints, and keep
your audience engaged.
# Marketing
Source: https://docs.spott.io/docs/outreach/marketing
Design, send, and track email marketing campaigns directly in Spott, with a drag-and-drop builder and full delivery analytics.
The **Marketing** suite (beta) lets you create and manage email marketing campaigns
inside Spott: design them in an interactive builder, send them to a recipient list,
and track opens, clicks, and unsubscribes.
Marketing campaigns are one-off, designed email sends to a list, such as a
newsletter. For automated multi-step outreach sequences, use
[Campaigns](/docs/outreach/campaigns) instead.
## Enable Marketing
1. An admin enables **Enable Marketing** under **Settings → Features**
(Communication section). Read the setup guide Spott shows before confirming.
2. Configure a **sending domain** under **Settings → Domains** and add the DNS
records shown there. You can only send from sender addresses registered on a
verified domain. See the step-by-step
[sending domain guide](/docs/settings/domains), including DNS troubleshooting.
Once enabled, **Marketing** appears in the sidebar under Tools.
A newly verified domain still needs to build a sending reputation before you send
at volume. Before your first campaign, read the
[email deliverability best practices](/docs/outreach/email-deliverability):
domain warm-up, list hygiene, and content optimization.
## Create a marketing campaign
On the Marketing page, click **New campaign** and give it a name. You can also use
**Import HTML Template** to start from an existing HTML email.
Importing an HTML template costs **50 credits**, charged once for the import. Sending
with the imported template afterwards costs nothing extra.
The campaign editor is a split view:
* On the left, the **drag-and-drop email builder**: design the email with rows,
images, buttons, and text blocks. You can save rows to reuse across campaigns.
Switch the builder between **desktop and mobile** to check how the mail lands on a
phone, and edit it in either. The color picker offers your brand colors as swatches,
set once by an admin under **Settings → Branding →
[Email editor colors](/docs/settings/general#email-editor-colors)**.
* On the right, the **campaign details**:
* **Audience**: pick a [List](/docs/lists/lists) of candidates or contacts as
recipients.
* **Send time**: send immediately or **Schedule delivery** for a specific date and
time.
* **Sender settings**: the **mailbox** the campaign is sent from, on your verified
domain.
* **Subject**: the subject line and the preview text.
Use **Preview** to check the result and **Send test** to send it to yourself before
the real send.
## Sending requirements
Spott blocks the send until the campaign is compliant:
* A **subject line** and an **audience** are set.
* The email contains an **unsubscribe link** (required for GDPR compliance; the
editor shows you how to add one).
* The sending mailbox is on a **verified domain**.
## Track results
The Marketing page shows the tracking numbers per campaign: **total sends**,
**delivery rate**, **open rate**, **click rate**, and the **bounce and unsubscribe
rate**.
When deliverability, bounces or unsubscribes reach a level that puts your domain
reputation at risk, the page flags it rather than leaving you to notice a number
drifting. Treat a flag as a reason to stop sending and fix the list, not as a statistic:
inbox providers judge the sending domain, so a bad campaign costs you the deliverability
of the recruiter emails that go out from the same domain afterwards. See
[email deliverability](/docs/outreach/email-deliverability).
The click rate counts **total clicks**. Spott does not differentiate between the
links in your email, so two clicks on two different buttons count the same as two
clicks on one.
After sending, the **Recipient Activity** tab lists every recipient with what
happened: delivered, opened, clicked, bounced, unsubscribed, reported as spam,
skipped, or failed.
**Filter and sort that list** to turn it into a working list rather than a report. Filter
to everyone who clicked and you have the people worth a call this afternoon; filter to the
bounces and you have the addresses to fix before the next send.
## Suppressions
If a person has unsubscribed, had an email permanently bounce, or reported an email
as spam, they are excluded from all future marketing campaigns automatically and
show as **skipped**. Marketing opt-outs are also visible on the candidate's
[Consent subtab](/docs/settings/gdpr-consent).
Spott also **checks addresses before it sends**. An address already known to be
non-existent or undeliverable is not sent to, because every hard bounce counts against your
sending domain's reputation, and a list with a handful of dead addresses can hurt delivery
for everyone else on it. Those recipients show as **skipped** too, with nothing to tell them
apart from an unsubscribe or an earlier bounce. When someone who never opted out is skipped,
check the email address on their record before the next send.
# Reports
Source: https://docs.spott.io/docs/outreach/reports
Find your way around the Reports section: where reports live, how to read one, and who can see them.
You can quickly navigate to Reports with `G` then `R`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
The **Reports** section is where your recruitment performance lives: revenue, pipeline
conversion, activity per person, and anything else you choose to count. This page is the
tour of the section. For building an insight from scratch, see
[building reports](/docs/get-started/reports).
## Report overview
At the top of the page you find a **New Report** button, plus the reports you already
have. They are split into **your reports**, visible only to you, and a workspace
section visible to everyone.
Every workspace starts with three ready-made ones: **Client breakdown**, **Candidates
overview**, and **Team performance**. Open them before building your own; they cover
most of what teams ask for in the first month.
## Reading a report
Click a report to open it. A report is a set of **insights**, each answering one
question, drawn from live data.
* **Change the reporting period** with `7D, 1M, 3M, 6M, 12M, All`, or set a custom date
range. It applies across every insight in the report.
* **Drill down to the numbers** by clicking through any figure to see the records
behind it. This is the fastest way to check whether a metric means what you think.
Reports are for deep, historical analysis; the
[Dashboard](/docs/get-started/dashboard) is your personal live snapshot. Data updates
in real time, and you can export a drilldown to Excel, but reports cannot be scheduled
or emailed automatically yet.
## Building and changing reports
Adding an insight, picking a record type, choosing between Pivot, Historical Values,
Funnel and Time in Stage, grouping, filtering, setting targets, and picking a
visualization are all covered step by step in
[building reports](/docs/get-started/reports).
## Who can see what
Who can view, manage, and export reports is controlled per role from
**Settings → Security**. See [managing access](/docs/settings/managing-access).
# Placements
Source: https://docs.spott.io/docs/placements/placements
How Spott tracks and manages successful hires, connecting candidates, jobs, and clients into a single placement record.
You can quickly navigate to the Placements page with `G` then `P`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
**Placements** in Spott represent the successful outcome of your recruitment process, when a candidate is matched and confirmed for a role.
A placement links together the **job**, the **candidate**, and the **client**, giving you a complete record of the hire. Placements also power reporting and revenue insights, helping you track performance and forecast business growth.
## Create a new placement from an existing candidate
### Step 1. Navigate to an open job
In Spott, go to **Jobs**.
* Find the job you want to place a candidate for
* Click on the job title
### Step 2. Place a candidate
* Click on the candidate’s **professional title**, directly underneath their name.
Clicking their *name* opens the candidate profile instead, so aim for the title on
the line below it.
* Select **Mark placed**
### Step 3. Choose the placement type
Marking a candidate placed opens a short, guided flow. First pick the **placement type**,
which sets the fee model and the fields you fill in next:
* **Contingent**, a one-time fee on a successful placement (a typical permanent hire).
* **Retained**, phased payments across the search engagement. The fee basis can be a
**percentage of the compensation or a flat fee**, allocated across the payment
milestones of your agreement.
* **Staffing**, a margin on contractor billing, for temp and interim work.
### Step 4. Fill in the details
The remaining steps depend on the type you chose:
**Fee Details** always carries the **placed at** date and the **start** and **end**
dates. The fee itself is captured differently per type:
* **Permanent** (Contingent or Retained): a fee on the placement, as a percentage of
the compensation or a flat amount. If the job already carries a **deal value**, the
placement starts from it, so the fee you agreed with the client when you took the
job on does not have to be typed in again. Setting an end date on a contingent
placement puts the candidate back into the pool of available candidates once the
contract ends.
* **Staffing**: the **working schedule**, the **unit** (daily or hourly), the
**charge rate** billed to the client, and the **pay rate** paid to the contractor.
Spott projects the contract value and the net fee (margin) from those. For interim
placements you can set a **fixed number of days billed** instead of deriving it
from the working schedule.
The other two steps are the same for every type:
* **Splits**: how the fee is divided across users. The total must equal 100%. If the
split was already agreed on the [job](/docs/jobs/job-details), set it there: the
agreement is on record before the placement is made, and a permanent placement
takes the split over from the job automatically. You can still change it here.
* **Extra**: the fields from your placement form, such as base salary, additional
salary, equity, and fees in other currencies. You decide which fields appear here:
placement forms are set up under **Settings → [Templates](/docs/settings/templates)**.
## Custom placement forms
Create **as many placement forms as you need**. Real placements vary more than the
three types do: a permanent hire with a bonus structure captures different data from
one with equity, and an interim contract with a rate revision captures different data
again. Rather than forcing everything through one form per type, you build a form for
each variation you actually run, under **Settings → Templates**.
The form controls which fields appear in the
**Extra** step and on the placement record, so you can track exactly what each type
needs, for example rate revisions and contract extensions on staffing placements, or
base salary, bonus, and equity on permanent ones. Capturing the right fields keeps your
reporting and billing accurate.
Once the flow is finished, the application carries a **Placement** block with the
company, job, type, start date, fee splits, and total fee, so the outcome is visible
from the candidate's side too.
## Turn a contract placement into a permanent one
Contractors get hired. When a contract placement becomes a permanent hire, use
**Convert to contingent placement** in the **Quick Actions** panel of the placement,
rather than recording a second placement: the history stays on one record, and the fee
is captured as a one-time contingent fee instead of a contract extension.
It opens the same four-step flow you know from making a placement. Step 2 switches from
contract rates to a **Contingent fee**: pick the fee basis, flat or a percentage, and
the total. **Extend placement**, right next to it, is the other option: use that one
when the contract runs on rather than converting.
## Placements overview
The **Placements** tab in Spott gives you an overview of all placements in a table format. Each column represents a placement attribute:
* **Company**, the company where the candidate was placed
* **Vacancy**, the role in which the candidate was placed
* **Candidate**, the name of the candidate
* **Placed at**, the date the candidate was placed
* **Placed by**, the person responsible for the placement
* **Start date**, the start date of the contract
* **End date**, the end date of the contract
* **Fee income**, the income generated from the placement
* **Fee details and splits,** You can record both net and gross fees and define how the fee is split across users. The total split must equal 100 percent.
* **Placement form**, which form this placement was captured with
Filter the table to the placements you care about, for example by company, by the user
who placed, by **Placed by Team** to see one team's placements together, or by date, and
**export the result to Excel**.
### Fees are shown in both currencies
Placement tables total everything in your **workspace currency** so the numbers add up,
which used to mean a fee agreed in another currency was only ever displayed converted.
Fee columns now show the **amount in the currency the fee was actually agreed in**
alongside the converted figure.
That matters when you are checking a placement against a contract or an invoice. The
converted number is the one your reporting runs on, and it moves with the exchange rate;
the local amount is the one the client agreed to, and it does not. Seeing both means you
can reconcile a placement without working the conversion backwards.
The dashboard above the table works on a **fixed three-month window**, so it is not the
place to look at a longer run. The table itself filters on any date range you like, and a
placement report in [Reports](/docs/get-started/reports) has no window at all.
Where a fee is split across colleagues, the placement still belongs to the user in
**Placed by** for counting purposes. The split percentages divide the booked revenue and
nothing else, so a shared deal shows as one placement for the person who made it.
The user filter includes **deactivated users**, not only active ones. Someone who has
since left still placed the people they placed, and leaving them out quietly understates
last year's numbers. The same applies to the user filters on
[notes](/docs/notes/adding-notes) and [lists](/docs/lists/lists).
The **Staffing dashboard is disconnected from this table**: filtering one does not
filter the other. Set your filters in the place you are reading the numbers.
### Edit or delete a placement
Click the placement in the table to open it, then use the **three dots** next to **Placed
by** and choose:
* **Edit the placement** if details need to be updated. This includes changing the
placement type, for example from Staffing to Permanent, and correcting a fee or a
start date.
* **Delete the placement** if it is no longer relevant
Editing a placement is **admin-only**. Consultants can see a placement and open it, so a
wrong fee looks like something they should be able to correct, but the Edit action needs
admin rights. Where an office has no admin of its own, someone with the role has to make
the change.
A placement's detail page also supports **file attachments**, so you can keep
documents such as the signed agreement on the placement itself.
## Staffing placements
For temp and staffing work, the Placements section also includes a **Staffing**
dashboard with gross profit forecasts, based on the rates, units, and
schedules captured on staffing placements, switchable between **weekly and monthly
KPIs**. You can filter staffing placements by status, for example extensions or
placements due to start or finish.
## Retained placements
Retained work is billed in stages, so it gets its own tab next to **Contingent** and
**Contract**, built around progress rather than a single fee.
Each row is one retained search:
* **Company** and **Role**, and the **Team** working it
* **Est. Total fee**, what the whole search is worth if it completes
* **Realized fees**, what has been billed so far
* **Milestones**, a progress bar showing how many of the agreed milestones are done
* **Next milestone**, which one is due next and what it is worth, so you can see what
is invoiceable soon
* **Placed Candidate**, once the search is filled
Because the milestones come from the job, set the fee structure on the
[job's Overview tab](/docs/jobs/job-details) before you log the placement.
### Set milestones and book a fee
On the job's **Overview** tab, scroll down the right-hand side and choose the fee
structure. Pick **Retained** and you can add the milestones of your agreement, each
carrying either a percentage or a monetary value.
To book a milestone as revenue, **tick that milestone's checkbox**. This works before
anyone is placed, which is the point of a retainer: the first instalment of a 30,000 fee
can be billed at the start of the search, with no candidate on the job yet.
In the placement dialog, **Retained** stays greyed out until the job carries a retained
fee structure, so set it on the job first.
Placement exports to Excel include the nested form values from your placement forms,
so you can analyze everything in your BI tools. **Custom placement attributes are in the
export too, on a separate sheet** of the workbook, which is where people look for them
and conclude they are missing.
Spott tracks placements, fees, splits, and custom forms. Invoicing itself happens
outside Spott today: export your placements to Excel, or push them to your finance
system **via the [API](/docs/developers/api-overview)** for billing.
**Record and track placements** in the Get Onboarded guide. A guided walkthrough: mark a candidate placed, pick the fee model, and read the staffing and retained tabs.
# Connected Accounts
Source: https://docs.spott.io/docs/settings/accounts
Connect your email, calendar, and messaging accounts so data flows into Spott.
**Settings → Accounts** is where you connect the external tools you work in, so email,
calendar, and messages sync into Spott.
## Email & Calendar
Connect a Google or Microsoft account to sync your email and calendar. You can connect
more than one account with **Connect a second Microsoft account** or **Connect a second
Google account**. The account marked **Default** is the one Spott sends from unless you
pick another.
**Connection problems?** Spott requests read and write access to your calendar and
email. In enterprise Microsoft or Google tenants, that usually needs **IT admin
approval**, which is the most common cause of connection failures. If you hit an error
on the consent screen, ask your admin to approve Spott for the organization.
A generic mailbox such as `jobs@` or `info@` can be linked to **one Spott account
only**. Campaigns from that address therefore run from that single account.
From the same page you can also set your **Default Font Family** and **Default Font
Size** for the emails you write.
### Signatures
**Configure Signatures** holds as many signatures as you need for your mailbox, for
example a formal one for clients and a short one for candidates. There are two ways to
get one in:
* **Add manual signature** opens an editor where you write it yourself. Give it a name
(Professional, Casual, Client-facing), type `/` for headings, lists, a table, or a
divider, and tick **Use as default signature** if it should be the one applied
automatically.
* **Send signature** takes the signature you already use in Outlook or Gmail: send a
blank email from your connected address to `signatures@spott.io` and it appears here
within about two minutes. Quicker than rebuilding a designed signature by hand.
Campaigns do not inherit your default automatically: a
[campaign](/docs/outreach/campaigns) has its own signature setting.
### Email visibility
**Default Email & Calendar Sharing** controls what colleagues see of your synced mail:
**Metadata only**, **Subject line and metadata**, or full access.
This is a **personal setting**. It applies to your own mailbox only, so every user has
to change it for themselves. Setting it once for the workspace is not possible.
### Manage account
Two settings live one level down, on the account's own **Manage account** page: the
blocklist and the daily sending limit. Both are **per mailbox**. Open the **⋮ menu on
your connected account** and choose **Configure blocklist** to get there.
#### Blocklist
Add an address or a whole domain, for example `spam.com` or `bad@spam.com`. Messages
from blocked senders are hidden across Spott and are no longer synced. Changes can take
some time to apply.
Use it for two things: keeping noise out of the database, and **confidentiality**. If
you want to share your mailbox with colleagues but keep a conversation out of Spott,
blocking that sender is how you do it.
If a single synced email should not be in Spott, you can also **delete that individual
email** from the mail sync.
#### Daily sending limits
**Emails per day** caps how many [campaign](/docs/outreach/campaigns) emails Spott sends
from this account in a day. Drag the slider anywhere between **10 and 200**. A new
account starts at **125**.
The limit exists to protect the mailbox: the lower you set it, the smaller the risk that
your provider restricts the account for sending too much. A brand-new mailbox, or a
shared one such as `jobs@`, is worth keeping well below the default; an established
sender can carry more.
## Messaging
Connect **WhatsApp** to sync and send WhatsApp messages directly from Spott. See
[the WhatsApp integration](/docs/integrations/whatsapp).
**SMS** runs on your VoIP numbers rather than a mailbox, so it is set up with your
telephony provider. See [SMS in Spott](/docs/inbox/sms).
## Browser Extension
Install the browser extension to source candidates from the internet. It works on
**Chrome and Edge only**. See the
[browser extension guide](/docs/settings/chrome-extension) for how to use it.
# AI-Filled Columns
Source: https://docs.spott.io/docs/settings/ai-filled-columns
Let AI automatically populate custom attributes based on candidate profiles and CVs.
## Usage
Once AI-filled columns are enabled and configured, the system automatically populates
the attributes based on candidate profiles and CVs. The AI analyzes the available
information and fills in the attributes according to your prompt.
For example, you can create attributes for:
* Age calculation based on graduation dates
* Skills extraction from CVs
* Category matching based on candidate profiles
AI autofill is **forward-only**: the column is filled when you create it and again
whenever a record is created. It does not retroactively backfill records that already
exist.
A value does **not** update on its own when the record changes. To bring one up to
date, hover the cell and use **Regenerate value with AI**. There is no bulk refresh, so
a whole column cannot be recalculated in one go.
AI columns work best on a **finite set of values**. Use a **select** or
**multi-select** attribute rather than free text: the AI picks from your options
instead of inventing wording, which keeps the column filterable and reportable.
Choose those options carefully, because on an AI-filled attribute they are **locked once
the attribute exists**. Editing it to add a value raises a warning instead, and the way
round is to create a second AI-filled attribute carrying the full list. An ordinary
attribute you fill yourself has no such limit, so this catches people who turn AI filling
on and then want to extend the list.
## Take a column back
To fill a field yourself that Spott is filling for you, go to **Settings → Data model**,
open the record type, and switch **AI autofill** off on that attribute. The values
already written stay where they are.
That toggle can only be changed while **Enable AI-Filled Columns** is still on under
**Settings → Features**. Switching the feature off workspace-wide leaves the attributes
locked as they are, so turn the individual attributes off first, or ask support to
re-enable the feature long enough to change them.
## Setup AI-filled columns
1. Go to **Settings** in your workspace.
2. Navigate to the **Features** section.
3. Toggle on **Enable AI-Filled Columns**. This feature needs to be active before you
can create AI-powered attributes.
4. Go to **Settings → Data Model** and pick the record type you want to create an AI
column for.
5. Click **Create your own attribute**.
6. Configure the attribute type and name.
7. Enable the **AI autofill** option.
8. Write a clear prompt describing what the AI should extract or calculate for this
attribute.
Every other place Spott uses AI is mapped out in [AI in Spott](/docs/get-started/ai-in-spott).
# Auto-updating Profiles
Source: https://docs.spott.io/docs/settings/auto-updating-profiles
Automatically refresh candidate profiles by regularly checking LinkedIn for changes, while controlling update frequency and credit usage.
**Auto-Update Profiles** is managed from **Settings → Features**. It keeps candidate
profiles up to date by periodically checking LinkedIn for changes.
You stay in full control of how often profiles are checked, how many profiles can be
updated, and how credits are spent.
Auto-updating uses [enrichment](/docs/candidates/contact-enrichment) credits. Credits are only deducted when an update is
successful. You can find credit pricing on the **Billing** page in Settings.
## Enable Auto-Update Profiles
1. Navigate to **Settings → Features**.
2. Toggle **Auto-Update Profiles** on to allow Spott to regularly check LinkedIn for
profile changes.
## Configure auto-updating
### Auto-Update Frequency
Set how often Spott should refresh LinkedIn profiles:
* Every month
* Every 2 months
* Every 3 months
* Every 6 months
* Every 9 months
* Every year
### Auto-Update Spend Limit
Set the maximum number of profiles that can be successfully auto-updated **per month**:
100, 200, 500, 1,000, 2,000, 5,000, 10,000, or 50,000 profiles. Spott shows the
**estimated monthly cost** in credits for the limit you pick.
The spend limit helps you control credit usage by capping how many profiles are
updated each month.
### Auto-Update Enrichment History
Click **Auto-Update Enrichment History** to review how auto-updating is performing
and how credits are being used. You can see:
* Total auto-updates for the current month
* Success rate
* Remaining credits available
Below the counters, one row per profile shows what it found: the name, current job
title and company, when it was last updated, and whether the run came back **Updated**
or **Profile not found**. A profile that is not found costs nothing.
## Managing credits
If you need more enrichment credits, purchase them from **Settings → Billing**.
Credits are shared across features, such as enrichment and auto-update, and tracked
centrally in your workspace.
The Billing page also lists the credit cost of each action, so you can estimate spend
before enabling auto-updating.
# Automations
Source: https://docs.spott.io/docs/settings/automations
Trigger actions automatically on events in Spott: open dialogs at the right moment, send emails, update fields, and more.
**Automations** are workflows that fire on events inside Spott and run a chain of
actions. They are configured by admins and apply to the whole workspace, so every
teammate follows the same process automatically.
## Enable and configure
1. An admin toggles **Automations** on under **Settings → Features**.
2. Automations are then created under **Settings → Automations**.
3. Each automation is **switched on or off on its own** from that list, so you can
pause one while you adjust it without deleting it and losing its configuration.
Automations are workspace-wide. They cannot be scoped to an individual user: once
configured, an automation runs for everyone. Treat them as shared infrastructure,
not personal shortcuts.
## How an automation is structured
Every automation has the same shape:
* **One trigger**: the event that fires it. Time-based triggers let an automation run at a
set moment rather than immediately.
* **One or more actions**, chained in sequence, with **Wait** steps between them when the
next step should not happen straight away.
* **Optional filters** to narrow exactly when it runs, for example only for a
specific placement form type.
### The triggers
**Add trigger** groups the list into two kinds, and the grouping is the important part:
**Interactive is only offered on two triggers.** Only **Job application moved** and
**Speculative application moved** can open a dialog. Every other trigger is background
only, so if you want a prompt in front of a recruiter, it has to hang off an application
moving stage.
**Interactive**, opens a dialog for the user:
| Trigger | Fires when |
| - | - |
| Job application moved | An application changes stage on a job |
| Speculative application moved | A speculative presentation changes stage |
**Background**, runs silently:
| Trigger | Fires when |
| - | - |
| Job application moved | An application changes stage on a job |
| Speculative application moved | A speculative presentation changes stage |
| Job created | A job record is created |
| Job moved | A job changes status |
| Candidate created | A candidate record is created |
| Contact created | A contact record is created |
| Candidate rejected | An application is rejected |
| Placement created | A placement is recorded, with its fee details filled in |
| Milestone completed | A retained placement milestone is reached |
| Task assigned | A task is assigned to someone |
| Company interview created | An interview is booked against a company |
| Candidate note updated | A note on a candidate is added or edited |
| Contact note updated | A note on a contact is added or edited |
| Candidate reference created | A reference is added to a candidate |
| Candidate goes inactive | A candidate is marked inactive |
| Contact goes inactive | A contact is marked inactive |
| Candidate file expires | A file on a candidate passes its expiry date |
| Company file expires | A file on a company passes its expiry date |
| Job advert closed | A job advert comes down, whether closed by hand, by reaching its unpublish date, or by the job board itself |
| Opportunity created | An [opportunity](/docs/opportunities/opportunities) record is created |
| Opportunity moved | An opportunity changes stage |
| Opportunity updated | A field on an opportunity changes |
| Client created | A client company record is created |
| Signature request completed | Every recipient has signed a signature request sent from Spott |
The last several are the reason automations are worth setting up at all. An expiring
right-to-work document, a job advert coming off the boards, a candidate quietly going
inactive, a reference landing while you are in a meeting: none of these announce
themselves, and nobody checks for them by hand. Mail the owner or open a task the moment
they happen.
**Signature request completed** waits for the last signature, not the first. A contract with
two signers fires once, when both have signed, which is the moment the paperwork is actually
done and the next step, such as a start-date task or a note to the back office, can go ahead.
See [DocuSign](/docs/integrations/docusign) and [Nitro](/docs/integrations/nitro) for sending
documents out for signature.
**Candidate created** can be filtered on the candidate's files with **has file with type**,
for example only candidates created with a CV, or with a right-to-work document attached.
Custom file types from your workspace are in the list as well.
### The actions
**The action picker is filtered by the trigger you chose.** An action needs a record to
act on, so a contact-based trigger offers **Update contact** and no job actions, while a
placement-based one offers **Job update** and **Close job board postings**. Pick the
trigger first; the actions follow from it.
Offered on every trigger:
| Action | What it does |
| - | - |
| Send email notification from Spott | Mails a notification from Spott's own address. Good for internal alerts. |
| Send email from your configured domains | Sends as your own [verified domain](/docs/settings/domains), so it reaches candidates and clients properly. Can use a [message template](/docs/inbox/message-templates) and placement variables. |
| Create task | Opens a follow-up, assigned to whoever should act on it. |
Offered depending on the trigger's record:
| Action | Appears for |
| - | - |
| Update candidate | Candidate triggers |
| Update contact | Contact triggers |
| Update opportunity | Opportunity triggers |
| Update client | Client triggers |
| Job update | Triggers that carry a job, including Placement created and Candidate rejected |
| Close job board postings | The same job-carrying triggers |
| Create note | Most record triggers, but **not** the note triggers themselves |
Two things fall out of that, and both are easy to trip over:
* **A rejection carries a job.** *Candidate rejected* offers **Job update** and **Close job
board postings**, because a rejection happens on an application and an application belongs
to a job. *Candidate created* does not, because at that point there is no job in play.
* **Note triggers cannot create notes.** *Candidate note updated* offers four actions and
**Create note** is not among them, which stops an automation from triggering itself.
**Close job board postings is the one people miss.** Setting a job to a closed status does
not take its adverts down: the two are separate actions, so a filled role keeps collecting
applicants unless you close the postings too. Chain both in the same automation and it
stops being something anyone has to remember.
Placement triggers also carry the **contact's name, email and phone** as variables, so
a placement automation can address the client contact by name and hand your back office
the number to call, without anyone opening the company record to look it up.
The opportunity and client triggers put the commercial side of the desk on the same
footing as the recruiting side: a new opportunity can open a qualification task, a deal
moving to a late stage can mail the owner, and a new client company can be updated with
the defaults your back office expects, without anyone remembering to do it.
## Interactive automations
Interactive automations change what you see: they open a dialog or form at the right
moment, keeping the user in the loop for actions that need judgment. Common patterns:
* **Open the placement dialog** when an application moves to a Placed stage, so the
fee and dates are recorded on the spot.
* **Open the email dialog** when an application moves to a specific stage, for
example "Mailed".
* **Open the Task window** at a point in the process where a follow-up should always be
agreed, so the task is written while the context is fresh rather than later.
For rejection emails, use the native **Mark rejected** quick action instead of an
automation. It has built-in template selection and records the rejection reasons.
## Background automations
Background automations run silently, with no dialog. Use them when the action is
deterministic and should always happen. Common patterns:
* **Auto-send a consent email** when a candidate reaches your GDPR check stage, from
one of your configured domains.
* **Auto-close a job** when a candidate is placed on it.
* **Auto-update a custom attribute** when an application reaches a stage, keeping
reporting fields accurate without manual upkeep.
Background automations can send emails to addresses outside Spott too, for example
your invoicing department, and can use variables in their emails, including
placement details such as fee splits, start and end dates, and contract value.
In a send email action you can select one of your existing
[message templates](/docs/inbox/message-templates) instead of writing the message in
the automation. The automation then follows the template, so a wording change lands
everywhere the template is used and you do not maintain the same message twice.
Two things decide whether a template is offered at all:
* **Templates only work on Send email from your configured domains.** On the other email
action the picker stays empty, which reads as a missing feature rather than the wrong
action.
* **A template greys out when the trigger cannot fill its variables**, with the message
"contains variables that can't be used here". A template using a Job variable on a
trigger that also covers speculative moves is the usual case, because a speculative
presentation has no job. Switching the trigger to **Job Application Moved** gives the
variables something to resolve against.
The sending address has its own requirement: it has to be registered in the **Domains**
section of settings, not merely verified for sending. If no address is offered on a
domain you know is verified, that registration is what is missing. To send as several
different consultants, add several send actions inside one automation rather than
building an automation per person.
## Logs
Every time an automation runs, the run is **logged**. Each automation has its own
**Logs** view listing the action that fired, when it executed, whether it completed,
and a reason if it did not. It is the first place to look when someone asks why an
email went out, or why one did not.
Emails sent by an automation are **not logged on the candidate's activity feed**
unless the recipient replies. The automation log is where you check what was sent.
One silent failure is worth knowing before you go hunting through the log: a
**placement-triggered automation does not fire when the placement has no start date**.
Where four placements set an email going and a fifth did not, the missing start date is
the first thing to check.
## Conditions, branching, and variables
An action is not just "do this". Each one sits in an **If / Then** pair, and an automation
can hold several of those, so one trigger can fan out into different outcomes.
### Filter the trigger
The trigger takes its own filter, which decides whether the automation runs at all. On an
application-moved trigger, filtering **To is Presentation** means it fires only when
something lands in that stage rather than on every move.
### If, Then, and Else
Inside an action block, **If** narrows which records the action applies to, on any field of
the records the trigger carries. **Then** is what happens. Adding an **Else** gives you the
other branch, so one automation can do one thing when the condition holds and another when it
does not.
Because an automation can carry **several action blocks**, a common shape is one block per
case. A placement admin automation might have one block for `If Placement Form is
Contracting` and another for `If Placement Form is Freelance`, each sending a different
email to a different back-office address.
### Let AI decide
A condition does not have to be a field comparison. **And let AI decide based on** takes a
plain sentence, such as *"Candidate has at least 5 years of experience in React"*, and judges
each record against it, with a selectable strictness such as **Balanced criteria**.
An AI condition is a judgement, not a lookup, so it will not always agree with itself on
borderline records. Use it where being roughly right is useful, such as routing for a human
to review, and keep field comparisons for anything that must be exact.
### Variables
Text fields in an action accept variables from the records in scope, written as
`{ Candidate > First Name }`. They work in an **email body**, and in a note's title and
body. A subject line takes plain text only, so an email announcing an interview cannot
carry the company name in its subject:
```
Presenting { Candidate > First Name } { Candidate > Last Name }
for { Job > Name } at { Company > Name }
```
Custom fields are available too, including the fields on a **placement form**, which is what
makes it possible to mail a back office everything they need about a placement without anyone
retyping it.
**Recipients can be dynamic as well.** Rather than a fixed address, To, Cc and Bcc accept a
person from the record, such as **Placement placed by**, so the recruiter who made the
placement is copied automatically.
### Wait before the next step
A **Wait** step pauses the automation for a **Duration** in months, days, and hours, then
carries on with whatever comes after it. You add it like any other step.
What makes a wait useful is that **the conditions after it read the record as it is when the
wait ends**, not as it was when the trigger fired. That is how an automation checks whether
something happened in the meantime:
* **Trigger:** Candidate created. **Wait** 3 days. **If** the candidate's **Next Task Due At**
is empty, **Then** create a task for the candidate's main contact: *Follow up!*
* **Trigger:** Job application moved to Presentation. **Wait** 2 days. **If** the application
is still in the same stage, **Then** create a task to chase the client.
Without the wait, both conditions would be checked at the moment the trigger fired, when the
answer is always "nothing has happened yet".
### Relative dates on tasks
A **Create task** action sets its due date relative to a date on the record, not as a fixed
day. *Start date of the placement, 1 month before* gives you a check-in that moves whenever
the start date moves.
## Examples
Four shapes that cover most of what automations get used for.
**Trigger:** Placement created. **Then:** Job update to a closed status, followed by
Close job board postings. Walked through step by step below.
**Trigger:** Placement created. **Then:** Create task, assigned to **Placement placed
by**, due **1 month before the start date of the placement**, titled something like
"Check in with candidate, due to start in 1 month".
The point is the relative date. Set a fixed date and it is wrong the moment a start date
moves; set it relative and the reminder follows the placement.
**Trigger:** Placement created. Then **one action block per placement form**: `If
Placement Form is Contracting` sends one email, `If Placement Form is Freelance` sends
another, each to the right address with **finance** on Cc and **Placement placed by** on
Bcc.
The body is built from variables, including the custom fields on the placement form, so
the back office receives name, contact details and address without anyone rekeying them.
**Trigger:** Candidate created. **If** the candidate's source is one of a few known
sources, **Then** Update candidate to set the fields that are always the same for that
source: employment type, contract type, work mode, and any custom attributes.
Useful when candidates arrive from a channel where you already know most of the answers.
## Example: close a job when someone is placed
A worked example of the shape above. When a recruiter records a placement, the job it was
filled from should stop being open: it keeps appearing in pipelines, dashboards and job
board feeds until someone remembers to close it by hand, and nobody ever does it the same
day.
Go to **Settings → Automations** and add a new automation. Give it a name your team
will recognise in the list later, for example *Close job on placement*.
Choose the **placement created** trigger. It fires once the placement record exists,
which means the fee details have already been filled in, so the job is genuinely
finished rather than merely promised.
Add **Job update** and set the job's status to your closed or filled status. The status
names come from the ones configured under [Settings → Stages](/docs/settings/stages).
Chain **Close job board postings** after it. Without this the job reads as closed inside
Spott while its adverts stay live and keep collecting applicants.
If only some placement types should close the job, add a filter on the placement form
type. A contingent hire usually closes the role; a staffing placement often does not,
because the job may still be taking more contractors.
Enable the automation, then record a placement and open its **Logs**. The run should
show the action firing and completing. If it did not, the log gives the reason.
Pair this with the interactive **open the placement dialog** automation described above.
One prompts the recruiter to record the placement at the moment they move the candidate,
the other closes the job once they have. Together the job closes itself the day it is
filled, with no one chasing anybody.
# Billing & Credits
Source: https://docs.spott.io/docs/settings/billing
Review your subscription and seats, track your credit balance, and purchase more credits.
**Settings → Billing** shows your subscription, seat usage, and credit balance, and is
where you top up credits.
## Subscription and seats
The **Subscription Plan** section shows your current plan, active seats (for example
29 of 100), and billing status. Spott's plans are **CORE** and **PRO**; see
[spott.io](https://spott.io) for what each includes. Some workspaces have their
subscription managed externally, in which case you contact your administrator for plan
changes.
## Credits
Credits pay for enrichment, auto-updating profiles, automations, and other actions.
The page shows your **Available Credits** and any **Monthly Credits Subscription**
allowance.
To top up, use **Purchase Credits**:
* **Monthly Subscription**: a recurring monthly credit allowance at a lower per-credit
price.
* **One-Time Purchase**: a one-off block of credits.
Credits are shared across features and tracked centrally in your workspace. The page
lists the cost of each action, so you can estimate spend before enabling credit-using
features.
Credits expire **one year after they are issued**. They do not reset each month, so
an unused balance carries over until that point.
# Browser Extension
Source: https://docs.spott.io/docs/settings/chrome-extension
Install, connect, and use the Spott browser extension to import candidates, contacts, and jobs into Spott.
The Spott browser extension lets you import candidates, contacts, companies, and jobs
from the internet directly into Spott. It works in any Chromium-based browser, which in
practice means Chrome and Edge.
## Install the Extension
Go to the [Spott extension page](https://chromewebstore.google.com/detail/spott/ajfedckpkkjfaemfgcnaeakkieongand)
on the Chrome Web Store.
Click **Add to Chrome** and confirm with **Add extension**.
Click the puzzle-piece icon in the toolbar and click the pin icon next to
Spott so it stays visible.
Click the Spott logo in your toolbar to open the side panel.
Click the three dots in the top-right corner, then **Extensions** >
**Manage Extensions**.
If you are on an older version of Edge, enable **Allow extensions from other
stores** and confirm with **Allow**. Recent versions of Edge install Chrome
extensions without this step.
Go to the [Spott extension page](https://chromewebstore.google.com/detail/spott/ajfedckpkkjfaemfgcnaeakkieongand)
and click **Get extension** (or **Get**), then confirm with **Add extension**.
Click the puzzle-piece icon in the toolbar, click the pin icon next to Spott,
then click the Spott logo to open the side panel.
## Connect Your LinkedIn Account
1. Open LinkedIn in your browser and log in to your account.
2. Navigate to any LinkedIn profile page.
3. Click the Spott extension icon in your toolbar on the top right. The side panel
opens on the right-hand side of the page.
4. In the extension, click the **Connect** button to link your LinkedIn account.
5. Complete any consent prompts that appear. Click **Sync**. It may take a minute for
the sync to complete.
6. Go back to your browser and refresh your LinkedIn tab after connecting.
For a step-by-step video, click [here](https://www.tella.tv/video/vid_cmli8eg12010e04jx5smq39mr/view).
**Troubleshooting.** If you're experiencing connection issues, reconnect **from the
extension itself**: refresh your LinkedIn tab, click the Spott extension icon, and
click **Connect** again. If that does not help, uninstall and reinstall the
extension. The connection process may take 2-3 minutes initially.
## Use the Extension
Once connected, the extension covers four things: importing people, importing
companies, importing jobs, and working in Spott without leaving the page you are on.
### Import a candidate or contact
Open a profile with the side panel open and import it into Spott. This works on
ordinary LinkedIn profiles and, with the matching license, on **Sales Navigator and
Recruiter** profiles, in a single click.
You import **one profile at a time**. Saving a profile to a LinkedIn Recruiter project
does not sync it into Spott: import is always a manual, per-profile click from the
extension. The exception is an inbound application already linked to a job in Spott.
#### When someone in Spott shows as not in your database
The extension matches people by their **LinkedIn URL**, which produces two cases where a
candidate you certainly have looks like a stranger.
**On LinkedIn Recruiter**, profiles are identified by an internal Recruiter ID rather than
a public URL, so unless that person was first linked from a Recruiter page, Spott cannot
recognise them. To fix it for good, paste their **public profile URL** into the **Public
Profile URL** box in the extension panel and click **Import as Candidate**. Spott matches
the record you already have, and recognises them on Recruiter pages from then on.
**On an ordinary profile**, a person whose Spott record carries **no LinkedIn URL at all**
cannot be matched by URL either. The import falls back to the email address and phone
number LinkedIn exposes, which links the existing record when they are there. Where
LinkedIn shows neither, the import creates a duplicate, so add the LinkedIn URL to the
record afterwards to stop it happening twice.
LinkedIn does not let the extension read the **Contact Information** panel, so email
addresses and phone numbers behind it are never imported. Those have to be copied across
by hand.
### Import a job
Import any publicly visible job posting from the internet straight into Spott as a job
record. See [adding and managing jobs](/docs/jobs/adding-a-job).
The same import creates an [opportunity](/docs/opportunities/opportunities) instead,
for teams who qualify a posting as a deal before it becomes recruitment work.
### Work while you browse
The panel gives you Spott itself next to the page: add notes and tasks, update a
person's status, and add them to a list, without switching tabs.
It also carries **[comments](/docs/notes/comments)**, the same thread you would see on
the record in Spott. Read what a colleague already said about someone while you are
still on their profile, and reply or `@mention` from the panel.
### Import a company from LinkedIn
Open a company's LinkedIn page with the side panel open:
* If the company is **not in Spott yet**, the panel says so and offers **Import as
Company**. Spott pulls the details from the company page into a new company record.
You can also create a **contact** at a company Spott has never seen, without going into
the app first to add the company: the same flow that works in Spott now works from the
panel.
* If the company **already exists**, the panel shows that record instead: an
**Overview** with its fields (industry, size, stage, sector, SIC code) and a
**Contacts** tab with the people you already have there. You can edit the fields and
add the company to a list without leaving LinkedIn.
Keep the extension updated to the latest version to see the newest functionality.
# Custom Attributes
Source: https://docs.spott.io/docs/settings/customizing-candidate-profiles
Create custom attributes for Jobs, Candidates, Companies, and Contacts to track, filter, and search the information relevant to your business.
For Jobs, Candidates, Companies, and Contacts, you can create custom attributes to
track, filter, and search information relevant to your business.
## 1. Open the Data Model settings
1. Go to **Settings**.
2. Under **Workspace**, open **Data Model** and pick the record type you want to
create a custom attribute for.
## 2. Create custom attributes
Click **Create your own attribute** and choose the data type:
* **Text**: free text input
* **Number**: numeric values
* **Checkbox**: a yes or no answer
* **Select**: pick one option from a list
* **Multi-select**: pick one or more options from a list
* **Date**: date fields, for example an availability date
* **Rating**: a score, which you can also filter on
* **Currency**: monetary fields
* **URL**: a web link
* **User** and **Multi-user**: reference one or more people in your workspace
An attribute's **type is fixed when you create it** and cannot be changed afterward.
Pick it deliberately: changing your mind later means creating a new attribute and
moving the data.
### Options on a Select or Multi-select
Choosing **Select** or **Multi-select** adds a **Select options** field where you define the
values people can pick. Options can be added later by editing the attribute, so the list can
grow as you find cases it does not cover.
That holds for attributes you fill yourself. Once **Use AI to fill this column** is on,
the options are **locked**: a warning appears if you try to add one, and there is no way
to reopen the list. To change the values an AI-filled attribute can choose from, create a
new AI-filled attribute with the options you want.
Editing an existing attribute shows the type greyed out, which is the rule above made
visible: the name is yours to change, the type is not, and the options are yours only
while AI filling is off.
The same dialog carries **Use AI to fill this column**, and a reminder that
[AI-filled attributes are forward-only](/docs/settings/ai-filled-columns): switching it on
fills new records from then on and does not go back over the ones you already have.
Once a custom attribute is created, it is available on all records of that type in
your database.
Built-in **System attributes** (such as Location, Personal Email, or Language) are
managed by Spott. You can star and reorder them, but you cannot rename them, change
their type, or delete them. Only attributes you create can be edited or removed.
Files and attachments carry attributes of their own, configured in the same place. See
[the data model](/docs/settings/data-model#files-and-attachments).
### AI-filled columns
When creating an attribute, you can enable **AI autofill**. The system then populates
the attribute automatically based on the record's profile and CVs, following the
prompt you write. See [setting up AI-filled columns](/docs/settings/ai-filled-columns).
Examples:
* Age calculation based on graduation dates
* Skills extraction from CVs
* Category matching based on candidate profiles
AI columns work best on a **finite set of values**, so prefer a **select** or
**multi-select** over free text. They are filled when you create the column and again
when a record is created, and they are **not kept up to date** after that. You can
refresh a value manually on the record, but there is no bulk refresh.
To refresh one, hover the cell and use **Regenerate value with AI**.
## Use and manage custom attributes
Once created, custom attributes are directly usable across Spott. You can:
* Fill in values directly in the table or on the record's profile
* Show custom attributes as columns and reorder them via View Settings
* Filter and search on custom attributes
* **Star** an attribute so it shows by default on records; unstarred attributes stay
available under **Show all values**
Customizing your records helps you capture the data points unique to your process,
making searches and filters more effective.
# Data Model
Source: https://docs.spott.io/docs/settings/data-model
Manage the attributes and consent purposes on every record type in your workspace.
**Settings → Data Model** is where you shape the fields on your records. You can create
custom attributes and file types for each record type in your workspace.
## Record types
The Data Model lists every record type with the number of attributes it has:
Candidates, Jobs, Applications, Companies, Contacts, Opportunities, and Files. Click a
record type to manage its attributes.
## Attributes
Inside a record type, the **Attributes** tab lists every field. For each attribute you
can see its **Type** and **Properties**:
* **System** attributes are built in and cannot be deleted.
* Attributes marked **AI Filled** are completed automatically by AI. See
[AI-filled columns](/docs/settings/ai-filled-columns).
* **Starred** attributes show by default on records. Unstarred attributes are hidden
behind **Show all values**. Drag attributes to set the order they appear in.
Use **Create your own attribute** to add a custom field. See
[custom attributes](/docs/settings/customizing-candidate-profiles) for the data types
and how to work with them.
A custom attribute can carry a **description**. Write one whenever the field's name
does not fully settle how it should be filled in: what counts as "Seniority", which
currency a rate is in, whether a date is the start or the signature. The description is
where that convention lives, so a new colleague does not have to ask or guess.
## Required fields
The **Required** column on the attributes list shows whether an attribute has to be filled
in, and there are two kinds.
### System required
Some attributes are marked **System required** and cannot be changed. They are the ones a
record cannot meaningfully exist without: a job needs a **Company**, a **Job** title, and a
**Status**.
### Warn when missing
Any other attribute can be set to warn. Open the attribute's **⋮** menu, choose **Configure
required field**, tick **Warn user when the field is missing**, and save. The list then shows
a **Warn when missing** badge against it.
### What the warning actually does
When someone creates a record without one of these, Spott raises a **Required fields are
missing** dialog naming exactly which ones, and offers **Fill in fields** or **Add candidate
anyway**.
The name of the setting is the honest one: it **warns**, it does not block. Anyone can
choose *Add candidate anyway*, and the record saves with the field empty. Use it to keep
data complete by default, not to guarantee it is.
That distinction matters downstream. A warning on Email or Nationality keeps most records
complete, but a report, a filter, or an [automation](/docs/settings/automations) that assumes
every record has one will still meet the exceptions. If something truly cannot cope with an
empty value, handle the empty case there rather than relying on this.
## Files and attachments
Files are part of the data model too. You can define **file types shared across
records**, for example contracts or certificates, and give those types their own
attributes, such as an expiry date on a certificate. Configure them here in the same
way as record attributes. Everything is also accessible via the
[API](/docs/developers/api-overview).
## Consents
On the Candidates record type, the **Consents** tab manages the consent purposes you
can track. See [consent management](/docs/settings/gdpr-consent).
# Sending Domains
Source: https://docs.spott.io/docs/settings/domains
Verify your sending domain step by step: add DNS records, troubleshoot common issues, and register sender addresses for marketing campaigns.
**Settings → Domains** is where you manage and verify the domains you send email from.
Setting this up is required before you can use the [Marketing module](/docs/outreach/marketing).
## Why domain verification matters
Email providers use authentication protocols to confirm that a sender is legitimate.
In short: verified domains reach inboxes, unverified ones risk being flagged as spam.
## Verify your domain
1. Go to **Settings → Domains**.
2. Click **Add Domain**.
3. Enter your domain name.
Use a **subdomain** (for example `mail.yourcompany.com` or
`marketing.yourcompany.com`) instead of your root domain. This protects your main
domain's reputation and isolates marketing email deliverability. Create the
subdomain upfront via your domain registrar or DNS provider.
4. Spott **generates three DNS records** with your own values: a **TXT** record
(SPF), a **DKIM** record, and a **CNAME** record. Copy those values and paste
them into your domain registrar's DNS settings, or send them to the partner who
manages your domain.
5. **Wait for the records to go live.** DNS changes are not instant; they can take
anywhere from a few minutes up to 24 hours to propagate. If you click **Verify
DNS Records** too soon, it may fail simply because the records have not spread
yet, not because anything is wrong. You can confirm they are live with a free
lookup tool such as [DNS Checker](https://dnschecker.org): enter the host you
added, choose the matching record type, and check that the value returned
matches what Spott gave you. If you know a domain change is coming, lowering the
**TTL** on the records beforehand shortens how long the old values linger.
6. Back in Spott, click **Verify DNS Records**.
7. **Register email addresses** under the domain. Only email addresses configured
here can be used as senders for marketing campaigns. Note that they are shared
across your workspace.
If you plan to send high volumes through the Marketing module, do not register
your personal mailbox as the sender; this could damage its reputation. Use a
dedicated address instead, such as `news@marketing.yourcompany.com`.
We also recommend publishing a **DMARC** record for the domain. Major inbox
providers like Gmail and Yahoo now require it from high-volume senders, and it
protects your domain from spoofing while improving deliverability.
## Troubleshooting: common DNS questions
### What do I put in the Host/Name field?
Most DNS providers automatically append your domain to whatever you type in the
Name/Host field, because every record in that zone already belongs to your domain.
So you only enter the part *in front of* your domain, not the full address:
* For a record on `email.yourcompany.com`, enter just `email`
* For a record on `abc._domainkey.yourcompany.com`, enter just `abc._domainkey`
* For a record on your root domain (`yourcompany.com`), enter `@`; some providers
want the field left blank instead
If you type the full `email.yourcompany.com` instead, many providers turn it into
`email.yourcompany.com.yourcompany.com`, and the record will not verify.
### Will this affect our normal, day-to-day email?
Almost never. The records you are adding only govern the domain or subdomain you
are verifying for marketing sending. Your everyday mailbox uses its own separate
records and is not touched. The one exception is the SPF record; see below.
### We already have an SPF record. Can we add a second one?
No. A domain can only have **one** SPF record (one `v=spf1…` entry). If your domain
already has SPF for your existing provider (Microsoft 365, Google Workspace, and so
on), do not add a second one. Instead, merge the new value into the existing
record, for example:
```
v=spf1 include:_spf.yourprovider.com include:mailgun.org ~all
```
A duplicate SPF record is invalid and *is* the one change that can disrupt your
live email.
Using a dedicated subdomain, as recommended above, avoids most of this: the
marketing records sit on their own subdomain, cleanly separated from the records
your main email depends on.
## Next step: protect your deliverability
A verified domain gets your email out the door; reaching inboxes consistently also
depends on how you send. Before your first campaign, read the
[email deliverability best practices](/docs/outreach/email-deliverability),
especially if your sending domain is brand new and needs warming up.
# Features
Source: https://docs.spott.io/docs/settings/features
Turn workspace-wide capabilities on or off, from enrichment to the unified inbox and campaigns.
**Settings → Features** is where an admin turns Spott's workspace-wide capabilities on
or off. Features are grouped by area, and each toggle applies to your whole workspace.
## Enrichment
Enrichment is not tied to one record type: it fills in **profiles**, whether that
profile is a candidate or a contact.
* **Enable Contact Enrichment**: let users enrich a profile's contact details, such as
email and phone. See [profile enrichment](/docs/candidates/contact-enrichment).
* **Enable Profile Enrichment**: let users enrich the profile itself with fresh
professional data.
* **Enable AI-Filled Columns**: let AI fill in columns from candidate data. See
[AI-filled columns](/docs/settings/ai-filled-columns).
* **Enable Auto-Updating Profiles**: keep candidate profiles up to date automatically.
See [auto-updating profiles](/docs/settings/auto-updating-profiles).
Each enrichment feature keeps its own **History**, so you can review every request that
was made, what it returned, and what it cost.
**Contact Enrichment History** opens on three counters, **total enrichments requested**
this month, **remaining credits** with the date the next monthly allowance lands, and your
**find rate**, then one row per request: who was enriched, who asked for it, whether it was
a phone or an email, what came back, and how many credits it cost. **Export** takes the lot
out to a file, which is how you reconcile credit spend against what your team actually
enriched. The other histories, **Profile Enrichment** and **Auto-Updating Profiles**, are
laid out for what they do rather than repeating these counters.
Every seat brings **300 enrichment credits a month**, and the whole workspace draws on
one shared pool rather than a balance per user. Unused credits carry over and expire a
year after they were issued, so the counter here is the pool, not your personal
allowance. See [Billing & Credits](/docs/settings/billing).
## Communication
* **Enable Unified Inbox**: view all your emails and messages in one place.
* **Enable Outreach Campaigns**: create and manage [campaigns](/docs/outreach/campaigns).
* **Enable Email Record Linking**: allow users to link emails to records.
* **Enable Marketing**: create and manage [marketing](/docs/outreach/marketing)
campaigns at scale.
## Workspace
* **Enable Lists**: create and manage [lists](/docs/lists/lists).
* **Enable Candidate Consent Tracking**: track and manage consent on your records, for
example under GDPR. See [consent management](/docs/settings/gdpr-consent).
* **Enable Automations**: create and manage [automations](/docs/settings/automations).
* **Enable Opportunities**: track business development opportunities.
* **Show Record IDs**: show record IDs in the interface and let users copy them.
* **Enable Comments**: let users add comments on candidates, clients and
[notes](/docs/notes/comments). This is the last toggle in the list, and until it is on
there is no comment section anywhere in the product.
# Consent Management
Source: https://docs.spott.io/docs/settings/gdpr-consent
Track consent and marketing opt-outs on candidates and contacts, for GDPR and any other framework you work under.
Consents let you manage compliance requirements, GDPR being the common one but not the
only one. They are stored directly on the record, on **candidates and contacts alike**,
and include the purpose, type, source, lawful basis, and validity period.
Consent tracking is available when it is enabled for your workspace under
**Settings → Features**.
## Where consents live
Open a candidate or contact and go to the **Consent** subtab on the Overview tab. It
has two sections:
* **Consent**: that person's consent records.
* **Marketing Opt-out**: opt-outs that exclude the candidate from marketing emails.
## Configure consent purposes
The consent purposes candidates can be tracked against are managed from
**Settings → Data Model → Candidates → Consents**. Spott ships with system purposes
such as **Recruiting**, **Marketing Email**, **Marketing SMS**, and **WhatsApp
Business Marketing**, each with a default expiry time. Use **Create your own consent
purpose** to add custom purposes for your workspace.
## Add a consent
Most consent records are **created by hand**, on the record, as below. The exception is
the [Request updated CV link](/docs/candidates/update-profile-from-cv): a candidate who
accepts your terms there has their consent written to the **Consent** subtab for you.
Your terms and privacy policy are configured under **Settings → General**.
1. Open the candidate and go to **Overview → Consent**.
2. Click **Add Consent**.
3. Fill in the fields:
* **Purpose**, for example Recruiting, Marketing Email, or a custom purpose
* **Type** and **Source**
* **Lawful basis**, for example Consent, Legitimate Interest, or Contract
* **Valid until**
4. Save.
The consent appears in a table with its purpose, type, lawful basis, source,
collection date, and expiry date. From there you can add more consents or delete
existing ones.
Each consent has a **Framework** field, set to **GDPR** by default and extendable to
other frameworks if you work under different rules.
## Stay compliant
Spott gives you the tracking and the triggers; you stay in charge of what happens to a
record. In practice that is a routine:
* **Track expiry dates** so you renew consent before it lapses rather than after.
* Use the **compliance filters** on the Candidates and Contacts views to pull up
everyone whose consent is about to expire, or has already.
* **Reach out and record the renewal.** A campaign or an automated email handles the
outreach; the new consent goes on the record when they answer.
* **Act on what has lapsed**, by deleting or anonymizing those records once you have
decided they should go.
Expiry **flags** a record, it does not act on it. Spott never deletes or anonymizes a
candidate, a contact, or their CV on its own. Retention is a judgement call with legal
consequences, and it stays yours: nothing disappears from your database because a date
passed.
### Automate part of it
Some of this routine can be taken off your hands. The clearest example:
an [automation](/docs/settings/automations) can **send the consent email itself** when a
candidate reaches the stage where you ask for it, so collecting consent stops depending
on someone remembering.
Renewal and clean-up are still hands-on today: you use the compliance filters to find
what is lapsing, and you decide what happens to each record.
Which parts are worth automating depends on the frameworks you work under and how your
team is set up. **Talk to your Customer Success contact** before you build it: they can
tell you what fits your workflow and what is better kept manual.
# Workspace & Branding
Source: https://docs.spott.io/docs/settings/general
Configure your organization name, public URLs, and the branding of your public-facing pages.
**Settings → General** holds the workspace-wide settings that shape how Spott looks to
your team and to candidates. These settings apply to everyone in your organization.
## General settings
* **Logo** for your workspace. Use a white or transparent background.
* **Favicon**, the small icon in the browser tab. It has to be an **.ico or .png** file,
and stay under 100KB.
* **Name (Brand name)**, your organization's name.
* **Workspace currency**, the currency every amount is converted to for aggregate
analytics. Placement fees recorded in another currency are reported in this one, using
exchange rates from openexchangerates.org.
* **URL (Public slug)**, the slug used for public-facing pages such as the job portal
and published job adverts, for example `app.spott.io/careers/yourslug`.
* **Open applications**, allow candidates to submit open applications through the
candidate portal without applying to a specific vacancy.
* **Maximum company hierarchy depth**, how many levels a
[company hierarchy](/docs/companies/company-hierarchy) may go down, chosen from a list
starting at two. Groups that are already deeper than the value you pick are kept, and
can only be shrunk until they are back within it.
* **Hide closed jobs in autocomplete**, keep closed jobs out of search suggestions and
job pickers across the workspace.
* **Default job description language**, the language used for a new job description when
no language is chosen on the job itself.
## Branding of public pages
Set the **Primary** color (navbar background), **Secondary** color (footer
background), and **Accent** color (the buttons) to match your brand on public pages.
You can also add:
* A **Call to Action Button** and **Navigation Links** shown in the public navbar.
* A **Consent Disclaimer** shown at the bottom of all public forms.
* **Social links** (LinkedIn, Twitter, Facebook, GitHub, Instagram) shown in the footer.
* A **Privacy Policy** link, also shown in the footer.
The consent disclaimer becomes a required checkbox at the bottom of every public form,
directly above the submit button:
### Email editor colors
**Email editor colors** is a separate palette for the emails you design in Spott. Click
**Add color**, enter a hex code, and it appears as a swatch in the email editor's color
picker, so nobody has to remember or paste your brand's exact shade of red.
The palette applies to two editors only: the [Marketing](/docs/outreach/marketing) email
builder and the [Company Portal](/docs/jobs/company-portal) invite email. It does not change
the Primary, Secondary, or Accent colors of your public pages, and those do not feed into it.
## Company Portal defaults
Every [Company Portal](/docs/jobs/company-portal) is configured per job, which means
someone has to decide the same set of toggles again for every new role. **Company
Portal Defaults** is where an admin decides those answers once, and every portal
created afterwards starts from them.
The defaults cover the same ground as the per-job controls:
* **Candidate visibility**: whether new portals **show all candidates in real time**,
and whether they **show candidate stages**.
* **Portal display**: whether **scorecards** and the **salary range** are shown.
* **Candidate attributes**: one default per attribute, in the same list you see on a
job, so a workspace that never shares date of birth can turn it off once instead of
remembering every time.
* The **hiring team** and the **allowed actions** given to a client.
You can also set **files to be attached by default**, which is what makes this worth
doing for most agencies: your Terms of Business goes onto every new portal without
anyone attaching it.
Only admins can set these, and a default is a starting point rather than a lock: each
job's portal can still be adjusted individually afterwards.
If you change a default that controls what a client can see, open a portal you have
already shared and check its toggles on the job itself, rather than assuming the change
did or did not reach it. Candidate data already shared with a client is not worth
guessing about.
# Keyboard Shortcuts
Source: https://docs.spott.io/docs/settings/keyboard-shortcuts
Navigate Spott faster with keyboard shortcuts for jumping to pages and creating records.
Spott supports quick keyboard shortcuts so you can navigate and work faster. The
logic is simple:
* **G = Go to**: jump to a section in the sidebar
* **A = Add**: create a new record or action
Shortcuts are typed as a sequence: press the first key, then the second.
## Go To shortcuts
Press `G`, then the letter of the section.
| Shortcut | Action |
| - | - |
| `G` then `D` | Go to Dashboard |
| `G` then `T` | Go to Tasks |
| `G` then `N` | Go to Notes |
| `G` then `C` | Go to Calendar |
| `G` then `R` | Go to Reports |
| `G` then `J` | Go to Jobs |
| `G` then `A` | Go to Candidates |
| `G` then `M` | Go to Companies |
| `G` then `O` | Go to Contacts |
| `G` then `P` | Go to Placements |
| `G` then `Y` | Go to Opportunities |
| `G` then `I` | Go to Inbox |
| `G` then `H` | Go to Campaigns |
| `G` then `S` | Go to Settings |
## Global Add menu
Press `A`, then the letter of the action. The same menu opens from the **+** button beside
the search icon, and it lists each shortcut next to its action, so you can stop reaching for
this page once the ones you use have stuck.
| Shortcut | Action |
| - | - |
| `A` then `A` | Add Candidate |
| `A` then `M` | Add Company |
| `A` then `O` | Add Contact |
| `A` then `J` | Add Job |
| `A` then `Y` | Add Opportunity |
| `A` then `N` | Add Note |
| `A` then `T` | Add Task |
| `A` then `E` | Add Email |
| `A` then `C` | Add Meeting |
## Notes
* Shortcuts for features your workspace has not enabled, for example Opportunities or
Campaigns, are left out of the menus. A few still respond to the key combination, so a
shortcut you cannot see may occasionally open a dialog you were not expecting.
* On a candidate profile, the **Actions** menu has its own shortcuts, shown next to
each action (for example `Shift` + `E` to send an email).
* More shortcuts are added as new actions become available.
# Labels
Source: https://docs.spott.io/docs/settings/labels
Create labels to categorize notes, tasks, rejections, and emails across your workspace.
**Settings → Labels** is where you create the labels used to categorize records across
Spott. Labels are shared with your whole workspace.
Spott groups labels by where they are used:
* **Note Labels**: categorize notes, for example Follow Up or Candidate Interview.
* **Task Labels**: categorize tasks so they surface in the right context.
* **Rejection Labels**: standardize the reasons applications are rejected.
* **Email Labels**: organize emails in the inbox.
Click **Add Label** in a section to create one, give it a name and color, and it
becomes available on the matching records.
**Rejection labels** can also be created where you use them. When you reject an
application and the reason you want is not in the list, add it from the popover instead
of leaving the rejection to come here first. That keeps the list honest: a recruiter who
has to break off mid-rejection to visit Settings picks the nearest existing label
instead, and your reporting slowly stops reflecting why applications actually close.
Creating one in-line needs the **Manage Workspace** permission, so on most teams the
Settings route stays the one that matters.
Note labels also power activity reporting: in [Reports](/docs/get-started/reports)
you can count notes filtered by a label, for example the number of First Call or
Reference Gained notes logged per consultant. If you are used to comment types or
activity types in another ATS, note labels are the Spott equivalent.
# Managing Access
Source: https://docs.spott.io/docs/settings/managing-access
Manage access with role-based permissions and assign roles to users.
Roles ensure users only access the features necessary for their job.
## Create roles
1. In Spott, go to **Settings**.
2. In the **Admin** section, click **Security**.
Under **Workspace Roles** you can:
* Open existing roles
* Create new ones with the **New role** button
Click a role to open it. For each role, use the toggles to **enable the permissions**
that role should have, grouped per area (records, settings, analytics, exports, and
more).
For example, you may want to grant team leads access to workspace settings (to create
new fields) while restricting this for regular members, or control who can view,
manage, and export **Analytics Reports**.
### Permissions people go looking for
Most permissions do what their name says. These come up often, because the action they
gate simply disappears or fails rather than explaining itself:
* **AI assistant connection.** Connecting Spott to Claude or ChatGPT is its own
permission, separate from the record access the connector inherits. Without it a user
completes the sign-in normally and then every request comes back as
`MCP_ACCESS_DENIED`. See [Spott MCP](/docs/developers/mcp).
* **Delete Job.** Without it, the delete option on a job is greyed out rather than
hidden, so it looks like a fault.
* **Enrichment.** Switching it off for a role is the only way to control who spends
credits, since the balance is a single pool with no per-user limit. See
[profile enrichment](/docs/candidates/contact-enrichment).
* **Merging records.** Merging two candidates, contacts, or companies needs its own
permission, and without it the merge fails at the last step.
* **Company hierarchies.** Creating and editing a
[company hierarchy](/docs/companies/company-hierarchy) is its own permission, so you
can let a team read a client group's structure without letting them reorganize it. On
a large account the tree is shared reference data, and one person reparenting an entity
changes what everyone else sees.
* **Templates.** Managing the workspace's
[templates](/docs/settings/templates) is its own permission, split out of Manage
Workspace so that the person who owns how your emails and notes read does not also need
the run of every workspace setting.
* **Delete Interaction.** Removing an individual synced email, or another single
interaction, from Spott is its own permission. The interaction disappears from Spott **for
everyone**, so it is the tool for a private email that was synced by mistake. The
connected source is not touched: the email stays in the mailbox it came from.
Because the Templates permission used to be part of **Manage Workspace**, check the
roles that relied on it after the split. A role that can no longer reach Settings →
Templates is missing the new permission, not broken.
Two things only an admin can do, whatever you grant. Seeing every user in the workspace
is admin-only: for a manager who needs other teams' figures without full admin, grant
**Manage Analytic Reports**, which opens the team and user filters on the
[Dashboard](/docs/get-started/dashboard) and in reports. And you cannot remove your own
role, so a second admin has to make that change for you.
## Add a user
1. In Spott, go to **Settings**.
2. In the **Admin** section, click **Users**.
3. Invite the person by email address and give them a role.
They receive an invite link, create their password, and are in. From then on they can
also sign in with Microsoft or Google. See
[personal preferences](/docs/settings/profile).
**Removing a user deactivates them** rather than deleting the account, so their
historical activity stays attributed to them.
## Assign roles to users
1. In Spott, go to **Settings**.
2. In the **Admin** section, click **Users**.
Use the role dropdown next to a user to assign them a role, which automatically
grants the matching permissions. When a user holds more than one role, their
permissions **combine**: the roles add up rather than restrict each other.
**Admin** is a built-in role with full permissions. It cannot be deleted or reduced,
and there must always be at least one admin in the workspace.
## Multi-factor authentication
On the Security page you can **require multi-factor authentication** for your whole
workspace. Users then add an authenticator app to their own profile the next time they
sign in.
# Managing Teams
Source: https://docs.spott.io/docs/settings/managing-teams
Create and organize teams in Spott to group users and manage collaboration more effectively.
Teams help you organize members by department, office, or project, making it easier
to manage ownership, visibility, and collaboration.
## **Go to Teams settings**
1. In Spott, go to **Settings**.
2. Scroll to the **Admin** section and click **Teams**.
If no teams exist yet, you’ll see an empty state inviting you to create your first one.
## **Create a new team**
1. Click **Create Team** in the top-right corner.
2. Enter a **Team Name** (for example: *Accountancy & Finance*, *Brussels Office*).
3. Optionally, add a **Description** to clarify the team’s purpose.
4. Click **Create Team**.
Each team can have its own set of members and permissions, ideal for larger organizations or multi-office setups.
## **View and manage existing teams**
After creation, your new team will appear in the Teams list, along with the number of members and creation date.
Click on a team name to view and manage its members.
## **Add members to a team**
Inside the team view, click **Add user to team** to assign existing users to this group.
Use the search box to find and add users from your workspace.
A user can belong to multiple teams. Their role and access level remain consistent across all teams they’re part of.
## **Remove a team or edit details**
From the main Teams list:
* Click the **trash icon** to delete a team.
* Or click the **arrow icon** to open and edit it.
Deleting a team does not delete its members, only the team grouping.
## Offices and teams
Both live under **Settings → Teams**, on a page titled **Teams and Offices**. The two
buttons in the top right, **Create office** and **Create Team**, are the only way to add
either.
They sit at different levels. A **team** is a group of people. An **office** is a location
that holds teams, and carries its own details:
| | A team | An office |
| - | - | - |
| Contains | Users | Teams |
| Own fields | Name, members | Name, email addresses, phone numbers, location, opening hours |
On the Teams and Offices page, teams are listed beneath the office they belong to. Teams
that have not been assigned to one are grouped under a **No office** heading, so nothing is
hidden by leaving offices unused.
To move a team, open the office and use **Add team**, or remove it from the list there.
## Assign a team to a brand
A team can be assigned to a **brand** from the Teams page itself, rather than from
wherever the brand is configured, so setting up a new team is one pass down one page.
## Filtering by team
Teams are not just an org chart. Once users are grouped, you can filter by team in the
places where you read performance and workload:
* The [dashboard](/docs/get-started/dashboard), to see a team's numbers rather than the
whole workspace
* Record lists, through owner filters such as candidate owner
* [Reports](/docs/outreach/reports), to break results down per team
# Notifications
Source: https://docs.spott.io/docs/settings/notifications
Choose which events notify you in Spott, and whether they reach you in the app, by email, or both.
Under **Settings → Notifications** you choose which events notify you, and whether
each one reaches you in the **App**, by **Email**, or both:
* **Task Notifications**: assignment, completion, and mentions.
* **Note Notifications**: when someone mentions you in a note.
* **Job Notifications**: inbound applications and other job events.
* **Comment Notifications**: **Comment mention**, when someone `@mentions` you in a
[comment](/docs/notes/comments) on a candidate, contact, company, or note.
* **eSignature Notifications**: when an envelope you sent through
[DocuSign](/docs/integrations/docusign) or [Nitro](/docs/integrations/nitro) is
completed, so the last signature reaches you without anyone forwarding a confirmation.
These are personal: each user picks their own.
## The notifications feed
The notifications themselves appear in the **Notifications** feed, opened from the
left sidebar, where you can see events such as placements, stage changes, and
mentions.
The feed has three tabs, **Unread**, **Read** and **All**, so you can work through what is
new without losing the ability to go back and find something you have already opened.
Entries are grouped by age, and each one names who did what to which record:
* **Interview requested**, when a client asks for an interview from the
[Company Portal](/docs/jobs/company-portal)
* **Candidate placed**, when a placement is recorded
* **Job stage updated**, naming the old and the new stage
* **Mentions**, when a colleague `@mentions` you in a [comment](/docs/notes/comments)
Each entry has a **⋮** menu with **Mark as unread**, so something you opened in passing can
go back on the pile instead of disappearing.
# Settings Overview
Source: https://docs.spott.io/docs/settings/overview
A map of Spott's Settings: what lives under Personal, Workspace and Admin, and where each area is documented.
You can quickly navigate to Settings with `G` then `S`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
Use **Settings** to configure how Spott works for you and, in some areas, for your
whole organization. Which items you see depends on the features enabled for your
workspace and on your permissions.
## Personal
Yours alone. Changing anything here affects your account, not your colleagues'.
| | |
| - | - |
| [Preferences](/docs/settings/preferences) | Currency, country code, AI language, distance unit, time and date display, theme, default tabs |
| [Profile](/docs/settings/profile) | Your name, avatar, password, and how you sign in |
| [Notifications](/docs/settings/notifications) | Which events reach you, in the app or by email |
| [Accounts](/docs/settings/accounts) | Connect email and calendar, signatures, email visibility, blocklist, WhatsApp |
| Calls | Your VoIP number, the [Note Taker](/docs/notes/note-taker), and the [scheduler](/docs/calendar/scheduler) |
## Workspace
Shared configuration. An admin sets these once and everyone works from them.
| | |
| - | - |
| [General](/docs/settings/general) | Workspace name, logo, favicon, public slug, and the branding on your public pages |
| [Stages](/docs/settings/stages) | Job stages and labels, job and opportunity statuses, company stages, speculative presentation stages |
| [Labels](/docs/settings/labels) | The labels used on notes, tasks, rejections, and emails |
| [Data Model](/docs/settings/data-model) | Attributes per record type, file types, and [custom attributes](/docs/settings/customizing-candidate-profiles) |
| [Features](/docs/settings/features) | Turn workspace capabilities on or off, including enrichment, [AI-filled columns](/docs/settings/ai-filled-columns), and [auto-updating profiles](/docs/settings/auto-updating-profiles) |
| Integrations | Connect your telephony, job board, and data providers. See [integrations](/docs/integrations/overview) |
| Import | Bulk import candidates, contacts, and companies from a file. See [importing from CSV or Excel](/docs/get-started/import-csv) and [data migration](/docs/get-started/data-migration) |
| [Automations](/docs/settings/automations) | Trigger actions on events, and the log of every run |
| [Templates](/docs/settings/templates) | Presentation, email, note, insight and job description templates, and placement forms |
| [Prompts](/docs/settings/prompts) | The instructions the AI writes from when it drafts content, including presentation emails |
## Admin
| | |
| - | - |
| [Users](/docs/settings/managing-access) | Add users, assign roles, and configure role permissions |
| [Teams](/docs/settings/managing-teams) | Group users into teams and offices |
| Security | Workspace roles and multi-factor authentication. See [managing access](/docs/settings/managing-access) |
| API and Webhooks | Programmatic access. See [the API](/docs/developers/api-overview) and [webhooks](/docs/developers/webhooks) |
| [Domains](/docs/settings/domains) | Verify a sending domain for [marketing](/docs/outreach/marketing) |
| [Billing](/docs/settings/billing) | Your plan, credit balance, and what each action costs |
# Personal Preferences
Source: https://docs.spott.io/docs/settings/preferences
Set your personal defaults, formatting, and appearance in Spott.
Personal preferences only affect your own account, not the rest of your workspace.
Open them from **Settings → Preferences**.
## General preferences
Under **Settings → Preferences → General** you set the defaults used when you create
records and content:
* **Default Currency**, prefilled in new currency fields. All monetary values are
shown in the Workspace currency, which an admin configures.
* **Default Country Code**, the dialing code prefilled for new phone numbers.
* **Default AI Language**, the language Spott uses when it generates content.
* **Default Distance Unit**, used for distance and radius fields.
* **Spell Check**, browser spell checking in text fields.
## Time and appearance
Scroll down for **Time Display** and **Appearance**:
* **Time Zone**, **Date Format**, and **Time Format** (12 or 24 hour).
* **Time Display**, relative (for example "2 hours ago") or absolute.
* **First Day of Week**, which day starts the week in calendars.
* **Display Language**, the language of the Spott interface.
* **Interface Theme**, light or dark mode.
* **Default Candidate / Contact / Company Tab**, which tab opens first on each record.
Your account itself, including how you sign in, lives on
[your profile](/docs/settings/profile). What Spott tells you about is under
[notifications](/docs/settings/notifications).
# Your Profile
Source: https://docs.spott.io/docs/settings/profile
Manage how you appear in Spott, change your password, and set up multi-factor authentication and single sign-on.
**Settings → Profile** is your own account: how you appear to colleagues, and how you
get in.
## How you appear
Update your **profile picture**, **username**, and **initials**, which are shown as
your avatar badge when no picture is set. There is nothing to submit: each change saves
as you make it.
## Signing in
* **Change your password** at any time from this page.
* **Multi-factor authentication** is switched on by your **admin** for the whole
workspace, not by you. Once it is required, you add an **authenticator app** to your
account here. See [managing access](/docs/settings/managing-access).
**Single sign-on needs no setup.** Log in the first time through your invite link and
create a password. From then on you can sign in with **Microsoft or Google** instead,
using the account your Spott user is registered with.
Your formatting and appearance defaults are under
[personal preferences](/docs/settings/preferences), and the mailboxes you connect are
under [connected accounts](/docs/settings/accounts).
# Prompts
Source: https://docs.spott.io/docs/settings/prompts
Manage the prompts Spott uses to generate content with AI, including the emails that present candidates and jobs.
**Settings → Prompts** holds the instructions Spott gives the AI when it drafts something
for you. A prompt is the standing brief: it says how a piece of writing should come out,
so the result matches the way your team works rather than the model's default.
## Prompts and templates are not the same thing
Both live in Settings and both shape what goes out, but they work at different levels:
| | What it is | Where to change it |
| - | - | - |
| **Template** | The structure a piece of content follows, such as the sections a note is built from | [Settings → Templates](/docs/settings/templates) |
| **Prompt** | The instructions the AI writes from when it drafts the content | Settings → Prompts |
If the wording of a generated email is not right, the prompt is what to change. If the
shape of it is wrong, look at the template.
## Presentation Email Prompts
This category covers the emails that go out when you put a candidate or a job in front of
someone. It splits in two, matching the two directions that conversation runs:
* **Candidate Presentation Email**, the instructions for drafting a short presentation of
your candidates over email. This is what runs when you
[present a candidate](/docs/candidates/presenting-candidates) to a client.
* **Job Presentation Email**, the instructions for drafting a short presentation of a job
to a candidate.
Each holds as many prompts as you need, and the page shows how many are configured. Keep
more than one per category when you genuinely present in different registers: a standard
pitch and a tabular shortlist are different jobs of writing, and one prompt trying to do
both does neither well.
## Write or edit a prompt
**Create new prompt** adds one to a category, and the pencil opens an existing one. A
prompt has a **title**, which is what you pick from when you send, and a body holding the
instructions themselves.
Inside the body, type `/` to browse the **variables** you can drop in, so the prompt can
refer to the candidate, the job, or the contact it is being run for rather than describing
them in the abstract.
Name a prompt for the situation it suits, not for its content. **Shortlist (tabular)**
tells a colleague when to reach for it; **Template 2** makes them open all of them to
find out.
Managing prompts is part of workspace administration. Who can reach this page follows
from the [roles and permissions](/docs/settings/managing-access) on your workspace.
# Pipeline Stages
Source: https://docs.spott.io/docs/settings/stages
Customize the pipeline stages candidates move through in your jobs and speculative presentations.
**Settings → Stages** defines the pipelines your workspace runs on. Everything here is
workspace-wide, so a change applies to every job, company, and opportunity that uses it.
The page holds several sets:
* **Job Stages**, the pipeline candidates move through on a job
* **Job Statuses**, how a job itself progresses
* **Opportunity Statuses**, the same for opportunities
* **Company Stages**, for the client relationship
* **Speculative Presentation Stages**, for candidates you present without a vacancy
## Job Stages
The **Job Stages** list is the pipeline candidates follow in a job, for example
Application, Long List, Short List, Outreach, Interview, Presentation, and Offer.
* Drag stages by the handle to reorder them.
* Click **Add Stage** to create a new stage.
* Use the **row menu**, the three dots at the end of a row, for **Edit**, **Edit
Labels**, and **Delete**.
Two markers tell Spott how to measure your pipeline:
* **CV Sent**: the stage at which a CV is considered sent to the client. This drives
the "CV Sent" reporting metric.
* **First Interview**: the stage at which a first interview is considered completed.
### How the markers turn into numbers
Neither metric is ever recorded by hand. Spott logs one the moment a card **enters** the
marked stage, which has consequences worth knowing before you read a report:
* **The date is the stage change, not the event.** A CV counts as sent when the card
reaches the CV Sent stage, even if you emailed it a week earlier, and an interview
counts on the day you move the card rather than the day of the interview itself.
* **Skipping stages still logs them.** Dragging a card from Application straight to
Interview logs the stages in between, so the funnel stays continuous.
* **Moving a card back erases the KPI.** Pull a candidate back to an earlier stage and
the metric it earned goes with it.
* **Bulk moves count too.** Deleting a stage and moving its candidates elsewhere logs
every one of those moves as a pipeline movement, which inflates the counts for that
day. On a large pipeline this is the usual explanation for a sudden spike.
Deleting a stage cannot be undone, and the moves it forces are written into your
reporting. On a big pipeline, ask support to run the change from the backend rather
than deleting the stage yourself.
### The default stage for inbound applications
One of the job stages is the **default stage for inbound applications**: where someone
lands when they apply through your job board, LinkedIn, or a
[multiposter](/docs/integrations/multiposting). You set it once here, in **Settings →
Stages**, and every job created afterwards uses it.
Before, this was a per-job setting, which meant remembering it on every new job and
quietly getting a different pipeline entry point on the ones where you forgot. Set it
workspace-wide and inbound applicants arrive in the same place on every job.
The default decides where an accepted inbound applicant lands, not whether they are
accepted. Applications still arrive on the job's **Applicants** tab for review first. See
[inbound applications](/docs/jobs/inbound-applications).
### Labels: substages within a stage
A stage can carry **labels**, which work as substages inside it, added with **Edit
Labels** on the row menu. An Interview stage, for example, can hold First interview,
Second interview and Third interview without becoming three stages. Labels show on the
candidate's card and application, so you get the detail while your funnel reporting
still counts one Interview stage.
## Job Statuses
Where job stages track candidates, **Job Statuses** track the job: Lead, Open,
Interviewing, Offers sent, Won, Lost. Each status carries two settings:
* A **closing rate percentage**, your likelihood of filling a job in that status. It is
what makes a weighted pipeline forecast possible, for example 10% at Open and 75% at
Offers sent.
* **Show jobs in this status for search**, which marks the status as one where the job
is actively being worked.
That second setting reaches further than its name suggests. As well as deciding whether
jobs in the status turn up in search results, it governs:
* Which jobs appear on the [Dashboard](/docs/get-started/dashboard) at all.
* What the Dashboard's **Pipeline Summary** counts.
* What a candidate profile lists under **Active applications**.
In each case only applications on jobs in a status with this setting on are counted, and
rejected and placed candidates are left out. If a dashboard or a pipeline summary looks
empty while the jobs plainly exist, this is almost always why: check that your **Open**
status has the setting enabled.
**Opportunity Statuses** work the same way, for opportunities rather than jobs.
## Speculative Presentation Stages
Not every candidate you present is attached to a vacancy. When you approach a client
with a strong profile and no open role, that presentation runs through its own
pipeline, typically Shortlist → Pitched → Client Interested → Check with Candidate →
Interview. It is kept separate so speculative work does not distort the reporting on
your live jobs, and it has its own **CV Sent (Speculative)** and **First Interview**
markers. See [presenting candidates](/docs/candidates/presenting-candidates).
## Company Stages
Companies run their own pipeline for the client relationship: New, Prospect, Lead,
Customer, Lost. **Pipeline Strategy** at the bottom of the section controls how company
pipelines are organized.
**Pipeline Strategy** is a single on/off toggle at the foot of the Company Stages
section. Left off, a contact inherits the stage of the company it belongs to. Switch it
on to decouple the two, so a contact carries its own stage independently of its company.
# Templates
Source: https://docs.spott.io/docs/settings/templates
Manage the reusable email, note, insight, and job description templates in your workspace, and the Word templates behind formatted CVs and reports.
**Settings → Templates** is where you edit the default templates Spott reuses across
the product, so your team stays consistent.
The available template types are:
* **Presentation Email Templates**: the emails used to present candidates and jobs.
You pick one of these when you
[present a candidate](/docs/candidates/presenting-candidates) to a client.
* **Email Templates**: your personal and workspace [email templates](/docs/inbox/message-templates).
* **Note Templates**: reusable note structures for your workspace.
* **Insight Templates**: the instructions the AI uses to generate call insights. See
[Spott Note Taker](/docs/notes/note-taker).
* **Job Description Templates**: the instructions the AI uses to generate job
descriptions.
* **Placement Forms**: define the custom fields and layout used when logging a
[placement](/docs/placements/placements).
Open any category to view, edit, or create templates within it.
The Word templates behind [formatted CVs and candidate
reports](/docs/candidates/client-documents) are not on this page: they are set up for
your workspace by the Spott team. See [CV and report
templates](#cv-and-report-templates) below.
## Insight templates
Insight templates are the ones people underuse, because it is not obvious what they
control. They are **the instructions behind every automated note**: when the
[Note Taker](/docs/notes/note-taker) writes up a meeting, or a
[call](/docs/calls/phone-calls) is transcribed, the summary is written to the structure
you set here. Change a template and every note written afterwards follows the new one.
You are not limited to one. A workspace typically runs a handful, each for a different
kind of conversation, for example an intake call, a client meeting, a candidate
interview, and a candidate registration.
### Spott picks the template for you
This is the part worth understanding. Each template carries a **Description**, which
answers "when should this one be applied", and the list shows it as **Applied when**.
Spott reads those descriptions and picks the fitting template for the conversation, so
you do not choose one per meeting.
That makes the description the most important field in the template. Write it as the
situation, not as a label: *"Use for candidate interviews focused on personality traits,
behavioral characteristics, and soft skills assessment"* tells the AI far more than
*"Personality"*. Descriptions that overlap heavily make the choice arbitrary, so keep the
boundaries between templates clear.
### What a template is made of
Click the pencil on a template to edit it. It has a **Title**, the **Description** above,
and one or more **Sections**, which you can drag into the order you want the note to read
in.
Each section carries:
* **Title**, the heading that appears in the note.
* **Instructions**, the prompt for that section. This is where the real work happens: say
what to capture, what to include, and what to avoid. The built-in templates are worth
reading as examples, for instance an instruction that ends with "use objective,
verifiable language, avoid subjective labels unless the candidate uses those terms".
* **Length**, from short to long, so a section can be a line or a paragraph.
* **Format**, for example bullet points or prose.
Sections can hold **subsections**, and both come in a **repeating** variant, for when the
same block should be produced once per item the conversation covers, such as one block
per role discussed.
Use **Create Insight Template** to add one for a conversation type you run often.
Ask for the fields you will actually reread. A long template produces a long note
nobody scrolls through. And because notes feed matching, summaries, and Ask AI, a
consistent structure here makes everything downstream of your notes better. See
[adding notes](/docs/notes/adding-notes).
### Changing a template does not rewrite old notes
A note keeps the summary it was written with. If you improve a template, or Spott picked
the wrong one for a conversation, you can **resummarize that note from its transcript**
against any template you like. See
[rewriting an automated note](/docs/notes/adding-notes#rewrite-an-automated-note).
## CV and report templates
**Generate CV** on a candidate, the **Reformatted CV** you attach when
[presenting a candidate](/docs/candidates/presenting-candidates), the **candidate
report**, and the **shortlist** document all come out of a Word template that is
configured for your workspace. Send that template once to
[support@spott.io](mailto:support@spott.io), and every document your team generates
afterwards follows it.
### What to send
* **A blank `.docx`**, with your layout, headers, and brand assets in place and no
candidate data in it. It has to contain every section you want in the final document.
* **Your formatting rules inside the template**: how dates should be written (for
example `Jan 2024 - Mar 2025`), and whether a section should read as long paragraphs,
short paragraphs, or bullet points.
* **One filled-in example**, a real CV or report in the final layout, fully populated.
* **How much Spott may rewrite**: keep the candidate's exact wording, lightly rephrase
and clean up, or freely summarize and restructure.
* **The languages** the template must support. The default is English.
Every section in the template is always rendered, so design it without sections that
should disappear when they are empty.
The quicker route: email [support@spott.io](mailto:support@spott.io) your **logo**
alone (PNG or SVG, transparent background preferred) and your documents use Spott's
default layout with your logo at the top. No template or example needed. Brand colors
can be matched on request.
### Format requirements
* **Word `.docx` only**. Not `.doc`, not Pages, not a Google Docs export, not a PDF of
the template.
* **Single-column layouts** work best. Two-column designs are much harder to populate
cleanly, so avoid them where you can.
* **No text boxes, floating frames, or SmartArt.** Tables and inline images are fine.
### What gets filled in automatically
Only **candidate information** is filled in. Anything else, such as the recruiter working
on the file, the job being applied for, or an internal reference, stays as a placeholder
in the document for you to complete.
Bullet-point reformatting has limits too: complex or nested bullet styles may not come
out exactly as they look in your original template.
Testing a new template? Send your feedback to
[support@spott.io](mailto:support@spott.io) with the exact candidate you tested on, and
point out what is missing, wrong, or should change. The more specific you can be, the
quicker we get the template right for you.
# Using Views
Source: https://docs.spott.io/docs/settings/using-views
Create, save, and manage custom views in Spott to quickly access filtered data for Candidates, Jobs, Companies, Contacts, Opportunities, and applications.
Views save a table configuration: filters, sorting, visible columns, their order, and
widths. You access saved views from the dropdown in the top-right corner of a record
list, which shows **Default View** until you create your own.
## Open a record list
Views are supported on these record tables:
* **Candidates**
* **Jobs**
* **Companies**
* **Contacts**
* **Opportunities**
* **Applications** and **Speculative Presentations**, the two application tables on the
Jobs page
Views on the application tables mean a pipeline review no longer starts from a blank table.
Save one view with the stage, owner, and last activity of every open application, another
with the source and the date someone was added to the job, and switch between them from the
same dropdown.
### Moving through the list without going back
Opening a record from a table opens it as an overlay on top of the list, and the header
carries **˄ ˅** arrows with a counter such as *6 of 141 candidates*. The arrows step to the
next and previous record **in the order the table is currently sorted and filtered**, so a
view is also a worklist: filter to the twenty people you want to review, open the first, and
arrow through them without returning to the table between each one.
Because the order follows the view, sorting the table first decides the order you review
in. Sort by last interaction and you work oldest-contact-first without thinking about it.
## Apply filters and sorting
Use the **Filters** button to narrow down your list (for example by stage, location,
or activity date), adjust sorting, and **add or hide columns** via **View Settings**.
Columns are not limited to fields on the record. Two that are worth turning on:
* **Campaigns** on Candidates and Contacts, showing the
[campaigns](/docs/outreach/campaigns) that are in draft or ongoing for each record,
so you can see who is already being approached before you approach them again.
* **Job board postings** on Jobs, showing which
[postings](/docs/integrations/multiposting) are live.
Both work as a column in the table and as a row on the cards in board view.
The **Applications** and **Speculative Presentations** tables carry **Job Status** and
**Job Users** as columns and as filters, so you can cut a list of applications down to
the jobs that are still open, or to the ones a particular colleague is on, without
going to the Jobs table to work out which those are. Contacts have a **LinkedIn** column
as candidates already did.
The Candidates table can also show **the companies a candidate is a contact at**, for the
people who are both. On a desk where a former placement is now the person doing the
hiring, that is the column that tells you before you send the wrong email.
### Relative dates
Date filters take **relative** values as well as fixed ones. Instead of pinning a filter
to a calendar range that goes stale the day after you save it, pick a window that moves
with today: **Today**, **This week**, **This month**, **Last 24 hours**, **Past**, or
**Future**.
**Custom time** builds your own window: a direction (**Last** or **Next**), a unit
(**Hours** or **Days**), and a value. **Custom date** still gives you a fixed range when
that is what you want.
This is what makes a saved view stay useful. A view filtered on "last interaction in the
last 30 days" keeps meaning the same thing every morning, where a fixed range quietly
becomes a report about the past.
Applying filters does not save them. When you change something on the current view, a
**save / discard** prompt appears at the top of the table, and you have to press
**Save view** for it to stick. Navigate away without saving and your filters are gone.
## Create a new view
1. Click the current view name in the top-right corner (for example **Default View**).
2. From the dropdown, select **+ Create New view**. The new view starts as a copy of
the one you are on.
3. Give your view a name, for example *Law*, *Recent Activity*, or *Open Roles in UK*.
Your filters, sorting preferences, and visible columns are all saved in the view.
## Access your saved views
Your custom views appear in the same dropdown. Click a view name to switch instantly
between saved configurations. You can create as many views as you like, each tailored
to a specific workflow or segment.
## Edit or delete existing views
1. Open the dropdown again.
2. Click the three dots next to a saved view to **rename** or **delete** it.
Deleting a view only removes the saved configuration. Your underlying data stays safe.
Views are personal: other users in your workspace create and manage their own views
independently.
**Views are dynamic, lists are static.** A view is a set of filters, so records join
and leave it by themselves as they change. A [list](/docs/lists/lists) holds exactly
the records you put in it until you change it yourself. Use a view for "everyone in
Brussels at interview stage", and a list for "the twelve people I am pushing this
quarter".
# Tasks
Source: https://docs.spott.io/docs/tasks/tasks
Create tasks, link them to people, companies, and jobs, and stay on top of your follow-ups.
Tasks keep your follow-ups on track: call reminders, interview prep, offer chasing.
Every task can be linked to the records it is about, so it shows up in the right
context across Spott.
You can quickly navigate to Tasks with `G` then `T`, or create a task from anywhere
with `A` then `T`. See all [keyboard shortcuts](/docs/settings/keyboard-shortcuts).
## Add a task
From the left-hand navigation bar, select **Tasks**, then click **Add Task** in the
top-right corner.
Fill in the task **title** and **due date**. Type **@** followed by a person,
company, or job name to link the task to that record.
Linked tasks are accessible directly from the linked record's **Tasks** tab, so use
the @ links generously. You can turn on notifications for tasks assigned to you and
for completion of tasks you assigned. See
[notifications](/docs/settings/notifications).
## The default filters
When you open the Tasks view, two filters are applied by default:
* **Status**: only **Open** tasks
* **Assigned to**: only tasks assigned to **you**
These defaults keep you focused on your own active work. Remove a filter by clicking
its chip, or add filters like assignee, due date range, or status.
## Manage and track tasks
* Edit a task directly from the list by clicking its title.
* Mark tasks as **complete** once finished; completed tasks leave the default view.
Completing a task that is linked to a record posts an entry in that record's activity
feed and updates its
[Last Activity Date](/docs/candidates/last-interaction), so the follow-up you just did
is visible to whoever opens the record next.
* The list is grouped into **due date blocks** rather than one long run of tasks, so
you see what is overdue and what is due today before the rest. Overdue tasks are
highlighted in red.
* Use the search bar to find specific tasks.
Tasks also appear on **every record they are linked to**, each on its own Tasks tab:
the candidate, the contact, the company, and the [job](/docs/jobs/job-tasks).
## Tasks Spott creates for you
Not every task is one you typed. Two things generate tasks automatically:
* **[Campaigns](/docs/outreach/campaigns)**, for their manual steps. A sequence that
includes a phone call or a WhatsApp message drops that step in your task list when
the recipient reaches it.
* **[Automations](/docs/settings/automations)**, when you have set one up to create a
task on a trigger, for example a follow-up whenever an application moves stage.
Campaign tasks can be **filtered out on their own**. Add the **Campaign Step** filter
and pick the kind you want to work through: generic task, phone call, manual WhatsApp
message, manual LinkedIn connection request, or manual LinkedIn message. That way you
do a run of calls in one sitting instead of picking them out of your general list.
**Completing one of these tasks does not send anything.** A WhatsApp or LinkedIn step
is manual on purpose: Spott writes the message and hands it to you, you send it
yourself in WhatsApp or LinkedIn, and then you tick the task off. Marking it complete
only clears it from your list.
Spott does not send or sync LinkedIn messages itself. A **manual LinkedIn message**
step is a reminder with the text prepared for you, nothing more.
# Welcome to Spott
Source: https://docs.spott.io/index
Spott is the AI-native recruitment platform. Manage candidates, jobs, and pipelines, and run your entire workflow from chat.
Spott brings your candidates, jobs, companies, and pipelines into one place, and lets you
run the whole recruiting workflow (search, outreach, scheduling, and placements) with AI
assistance built in.
Get up and running in Spott in a few minutes.
The record types and the one-person-one-record model.
The complete workflow, from intake to placement.
Everything the AI does for you, in one map.
New features, shipped every week.
Check the FAQ, email [support@spott.io](mailto:support@spott.io), or chat with us from inside Spott.
## What you can do with Spott
Find candidates across your workspace with filters and boolean search.
Move applications through your stages and keep everyone aligned.
Book meetings from Spott and send the invites straight from a record.
Run email campaigns and follow-up sequences from your own inbox.
Parse CVs and find missing emails and phone numbers automatically.
Record the hire, the fee, and the start date when a deal lands.
## Get help
* Email us at [support@spott.io](mailto:support@spott.io), or use the chat bubble inside Spott
* Read the [FAQ](/docs/get-started/faq) for the questions we get most
* Visit the [Spott website](https://spott.io)
* Read our [Privacy Policy](https://spott.io/privacy)
# Quickstart
Source: https://docs.spott.io/quickstart
Set up your Spott workspace and run your first recruiting workflow.
Welcome to **Spott**, the AI-native ATS and CRM for recruitment agencies. This guide
gets you from signing in to running your first workflow.
Prefer a guided walkthrough? The [Get Onboarded guide](/docs/onboarding/welcome) covers
the same ground page by page, with an exercise at the end of each one.
In a hurry? Recruiters can jump straight to
[filling a role end to end](/docs/get-started/recruiting-workflow). Admins setting up the
workspace should start with [workspace settings](/docs/settings/overview).
Head to [app.spott.io](https://app.spott.io) and sign in with your workspace
credentials. If you don't have an account yet, contact your workspace admin or
[reach out to us](mailto:support@spott.io).
Five minutes well spent: read
[Spott in five minutes](/docs/get-started/how-spott-is-organized) to understand
the record types and the one-person-one-record model that everything builds on.
Connect your [email and calendar](/docs/settings/accounts) so Spott can send and
log communication, [invite your team](/docs/settings/managing-access), and
configure your [pipeline stages](/docs/settings/stages).
[Import candidates from CVs](/docs/candidates/adding-candidates), create
[jobs](/docs/jobs/adding-a-job), and start building your pipeline. Spott parses,
deduplicates, and enriches profiles as you go.
Follow [fill a role, end to end](/docs/get-started/recruiting-workflow) to go from
sourcing to placement, with [AI doing the heavy lifting](/docs/get-started/ai-in-spott)
along the way.
Bring Spott into your favorite chat assistant to run your workflow hands-free.
Search, schedule, and place, from a Claude conversation.
Connect Spott as an app in ChatGPT.
# Create an application pipeline template
Source: https://docs.spott.io/api-reference/application-pipeline/create-an-application-pipeline-template
/api-reference/openapi.json post /pipeline/applications/templates
Create a non-default application pipeline template with an initial stage for its pipeline type.
# Delete an application pipeline template
Source: https://docs.spott.io/api-reference/application-pipeline/delete-an-application-pipeline-template
/api-reference/openapi.json delete /pipeline/applications/templates/{id}
Delete a non-default application pipeline template that is not referenced by applications.
# Get application pipeline stages
Source: https://docs.spott.io/api-reference/application-pipeline/get-application-pipeline-stages
/api-reference/openapi.json get /pipeline/applications/stages
Retrieve all Application Stages. Returns an ordered list of pipeline stages with their labels. Stages of the standard pipeline are returned by default.
# List application pipeline templates
Source: https://docs.spott.io/api-reference/application-pipeline/list-application-pipeline-templates
/api-reference/openapi.json get /pipeline/applications/templates
Retrieve the application pipeline templates configured for the organization, including their ordered stages.
# Bulk create applications
Source: https://docs.spott.io/api-reference/applications/bulk-create-applications
/api-reference/openapi.json post /applications/_bulk
Create up to 250 standard applications in one request. Each item links one candidate to one job stage.
# Bulk update applications
Source: https://docs.spott.io/api-reference/applications/bulk-update-applications
/api-reference/openapi.json put /applications/_bulk
Update up to 100 applications in one request. Each application update sets the target stage and numeric position.
# Create a rejection for an application
Source: https://docs.spott.io/api-reference/applications/create-a-rejection-for-an-application
/api-reference/openapi.json post /applications/{id}/rejections
Create a rejection for an application by its ID.
# Create an application
Source: https://docs.spott.io/api-reference/applications/create-an-application
/api-reference/openapi.json post /applications
Creates a new application. Link a candidate to either a job or directly to a client for speculative applications.
# Delete an application
Source: https://docs.spott.io/api-reference/applications/delete-an-application
/api-reference/openapi.json delete /applications/{id}
Deletes the application with the specified ID.
# Get application presentations
Source: https://docs.spott.io/api-reference/applications/get-application-presentations
/api-reference/openapi.json get /applications/{id}/presentations
Retrieve available exported candidate presentations for a specific application.
# Get applications by candidate ID
Source: https://docs.spott.io/api-reference/applications/get-applications-by-candidate-id
/api-reference/openapi.json get /applications/candidate/{candidateId}
Retrieve all applications for a specific Candidate, including both standard applications (linked to jobs) and speculative applications (linked directly to clients). Applications are returned ordered by their last activity date, from most to least recent.
# List application activities
Source: https://docs.spott.io/api-reference/applications/list-application-activities
/api-reference/openapi.json get /applications/{id}/activities
Returns a list of application activities. Returns application activity (changelog) events newest-first using cursor pagination.
# List applications
Source: https://docs.spott.io/api-reference/applications/list-applications
/api-reference/openapi.json get /applications
Returns a list of applications. Uses cursor pagination.
# Move application to stage
Source: https://docs.spott.io/api-reference/applications/move-application-to-stage
/api-reference/openapi.json put /applications/{id}/move
Move an application to a different pipeline stage within the same job. Optionally set a status and specify the position relative to other applications in the target stage.
# Retrieve an application
Source: https://docs.spott.io/api-reference/applications/retrieve-an-application
/api-reference/openapi.json get /applications/{id}
Retrieves the application with the specified ID. Includes candidate details, job information, stage, and activity history.
# Update application
Source: https://docs.spott.io/api-reference/applications/update-application
/api-reference/openapi.json patch /applications/{id}
Update an application by its ID.
# Assign temporary attachments to records
Source: https://docs.spott.io/api-reference/attachments/assign-temporary-attachments-to-records
/api-reference/openapi.json post /attachments/temporary/assign
Step 2 of the two-step upload flow: assigns temporary attachments previously created via `POST /attachments/temporary` to one or more records (candidate, company, or vacancy), making them permanent. The attachment's type is intended to be set here — each attachment specifies a `type`, either a predefined type (`{ name }`) or a custom, tenant-defined type (`{ id }`), and can optionally be renamed. At least one of candidateId, companyId, or vacancyId must be provided. The type must be allowed for all records the attachment is linked to: the predefined `CV` type can only be assigned to attachments linked to a candidate, and custom types define which record types they support.
# Delete an attachment
Source: https://docs.spott.io/api-reference/attachments/delete-an-attachment
/api-reference/openapi.json delete /attachments/{id}
Permanently deletes an attachment, including its stored file. This action cannot be undone. Attachments with platform-internal types are treated as not found.
# Get an attachment
Source: https://docs.spott.io/api-reference/attachments/get-an-attachment
/api-reference/openapi.json get /attachments/{id}
Returns an attachment with its type, validity window (`validFrom` and `expiryDate`), and the custom attributes linked to its type, including their current values. Covers every attachment that `POST /attachments/_search` can return, including recordings and credit reports, whose `type` is reported as `null`. Attachments used internally by the platform are treated as not found.
# Get attachment download URL
Source: https://docs.spott.io/api-reference/attachments/get-attachment-download-url
/api-reference/openapi.json get /attachments/{id}/_download
Returns a time-limited signed URL for downloading the attachment. The URL expires after 1 hour.
# List attachment types
Source: https://docs.spott.io/api-reference/attachments/list-attachment-types
/api-reference/openapi.json get /attachments/types
Returns the attachment types that can be assigned to attachments: the available predefined types (`UNASSIGNED`, `CV`) and all of the tenant-defined custom attachment types. Each type lists the `recordTypes` it may be assigned to — `CANDIDATE` maps to `candidateId`, `CLIENT` to `companyId`, and `VACANCY` to `vacancyId`.
# List attachments
Source: https://docs.spott.io/api-reference/attachments/list-attachments
/api-reference/openapi.json get /attachments
List attachments linked to a candidate, company, or jobs. At least one of `candidateId`, `companyId`, or `vacancyId` must be provided. Results are offset-paginated and can be filtered by attachment `type` (allowed values: `UNASSIGNED`, `CV`). Attachments with platform-internal types are never returned.
# List signing requests
Source: https://docs.spott.io/api-reference/attachments/list-signing-requests
/api-reference/openapi.json get /attachments/signing-requests
Returns a list of signing requests. Uses cursor pagination. Optionally filter by attachment IDs.
# Retrieve a signing request
Source: https://docs.spott.io/api-reference/attachments/retrieve-a-signing-request
/api-reference/openapi.json get /attachments/signing-requests/{id}
Retrieves the signing request with the specified ID.
# Search attachments
Source: https://docs.spott.io/api-reference/attachments/search-attachments
/api-reference/openapi.json post /attachments/_search
Search attachments using filters and an optional sort. Multiple filters are combined with AND. Results are offset-paginated.
# Update an attachment
Source: https://docs.spott.io/api-reference/attachments/update-an-attachment
/api-reference/openapi.json patch /attachments/{id}
Updates an attachment. Set its type via `type` — either a predefined type (`{ name }`) or a custom, tenant-defined type (`{ id }`) — and/or update `expiryDate` and `validFrom`. Fields that are omitted are left unchanged; pass `null` for a date to clear it. The type must be allowed for all records the attachment is linked to: the predefined `CV` type can only be set on attachments linked to a candidate, and custom types define which record types they support. Attachments with platform-internal types are treated as not found.
# Upload temporary attachments
Source: https://docs.spott.io/api-reference/attachments/upload-temporary-attachments
/api-reference/openapi.json post /attachments/temporary
Step 1 of the two-step upload flow:
1. Upload one or more files here — the response returns a temporary attachment ID for each file.
2. Call `POST /attachments/temporary/assign` with those IDs to set each attachment's type and link them to a record (candidate, company, or vacancy), making them permanent.
Attachments uploaded here are stored temporarily and are not persisted until they are assigned.
**Allowed MIME Types:**
- **PDF:** `application/pdf`
- **Word Documents:** `application/vnd.openxmlformats-officedocument.wordprocessingml.document` (.docx), `application/msword` (.doc)
- **Images:** `image/jpeg`, `image/png`, `image/gif`, `image/bmp`, `image/webp`, `image/tiff`, `image/svg+xml`, `image/x-icon`, `image/vnd.microsoft.icon`
- **Excel:** `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` (.xlsx)
- **CSV:** `text/csv` (.csv)
**Limits:**
- Maximum file size: 50MB per file
- Maximum files per request: 10
# Assign a team to a brand
Source: https://docs.spott.io/api-reference/brands/assign-a-team-to-a-brand
/api-reference/openapi.json post /brands/{id}/teams/{teamId}/_assign
Assigns the team to the specified brand. Brands is an Enterprise feature and requires `hasPremiumBrands` to be enabled for your organization.
# Delete a brand
Source: https://docs.spott.io/api-reference/brands/delete-a-brand
/api-reference/openapi.json delete /brands/{id}
Deletes an unused, non-default brand. Brands is an Enterprise feature and requires `hasPremiumBrands` to be enabled for your organization.
# List brands
Source: https://docs.spott.io/api-reference/brands/list-brands
/api-reference/openapi.json get /brands
Returns a cursor-paginated list of brands. Pass `include=teams` to also return the ids of the teams linked to each brand; without it the `teams` field is omitted entirely. The list returns team ids only — use `GET /brands/{id}?include=teams` when you also need the team names. Brands is an Enterprise feature and requires `hasPremiumBrands` to be enabled for your organization.
# Retrieve a brand
Source: https://docs.spott.io/api-reference/brands/retrieve-a-brand
/api-reference/openapi.json get /brands/{id}
Retrieves the brand with the specified ID. Brands is an Enterprise feature and requires `hasPremiumBrands` to be enabled for your organization.
# Unassign a team from a brand
Source: https://docs.spott.io/api-reference/brands/unassign-a-team-from-a-brand
/api-reference/openapi.json delete /brands/{id}/teams/{teamId}/_unassign
Unassigns the team from the specified brand and restores the default brand when needed. Brands is an Enterprise feature and requires `hasPremiumBrands` to be enabled for your organization.
# List calls
Source: https://docs.spott.io/api-reference/calls/list-calls
/api-reference/openapi.json get /calls
Returns a list of calls. Uses cursor pagination ordered by start time (oldest first).
# Retrieve a call
Source: https://docs.spott.io/api-reference/calls/retrieve-a-call
/api-reference/openapi.json get /calls/{id}
Retrieves the call with the specified ID.
# Get candidate civil identity
Source: https://docs.spott.io/api-reference/candidate-civil-identity/get-candidate-civil-identity
/api-reference/openapi.json get /candidates/{id}/civil-identity
Returns the civil identity details of the candidate.
# Upsert candidate civil identity
Source: https://docs.spott.io/api-reference/candidate-civil-identity/upsert-candidate-civil-identity
/api-reference/openapi.json put /candidates/{id}/civil-identity
Creates or updates the civil identity details of the candidate.
# Link candidates to a list
Source: https://docs.spott.io/api-reference/candidate-lists/link-candidates-to-a-list
/api-reference/openapi.json post /lists/{id}/candidates/_link
Link a set of candidates to a specific candidate list. Specify candidate IDs to add to the list.
# Unlink candidates from a list
Source: https://docs.spott.io/api-reference/candidate-lists/unlink-candidates-from-a-list
/api-reference/openapi.json post /lists/{id}/candidates/_unlink
Unlink a set of candidates from a specific candidate list. Specify candidate IDs to remove from the list.
# Complete or reopen a candidate to-do
Source: https://docs.spott.io/api-reference/candidate-portal/complete-or-reopen-a-candidate-to-do
/api-reference/openapi.json patch /candidates/{id}/todos/{todoId}/completion
Updates the candidate to-do with the specified ID. Records that the candidate completed the to-do, or reopens it. This is a bookkeeping flag: nothing is verified on our side.
# Create a candidate to-do
Source: https://docs.spott.io/api-reference/candidate-portal/create-a-candidate-to-do
/api-reference/openapi.json post /candidates/{id}/todos
Creates a new candidate to-do. Assigns a to-do to the candidate. A to-do of type `VISIT_URL` carries the link the candidate must open and requires `url`; a to-do of type `UPLOAD_ATTACHMENT` asks the candidate for a document and requires `attachmentType`. Documents themselves are not exchanged through this API.
# Delete a candidate to-do
Source: https://docs.spott.io/api-reference/candidate-portal/delete-a-candidate-to-do
/api-reference/openapi.json delete /candidates/{id}/todos/{todoId}
Deletes the candidate to-do with the specified ID. Removes the to-do from the candidate. This cannot be undone.
# Delete an appointment
Source: https://docs.spott.io/api-reference/candidate-portal/delete-an-appointment
/api-reference/openapi.json delete /appointments/{id}
Permanently deletes an appointment, together with the location that was recorded for it.
# Get existing candidate
Source: https://docs.spott.io/api-reference/candidate-portal/get-existing-candidate
/api-reference/openapi.json get /candidate-portal/{candidateId}
Get basic details on existing candidate to pre-fill the candidate update form. Returns email addresses, phone numbers, social media links, and name information.
# List appointments of a candidate
Source: https://docs.spott.io/api-reference/candidate-portal/list-appointments-of-a-candidate
/api-reference/openapi.json get /appointments
Returns a cursor-paginated list of the appointments planned for a candidate, soonest first. Cancelled appointments are included and flagged with `isCancelled`. Use `startTimeSince` / `startTimeUntil` to bound the period.
# List candidate to-do's
Source: https://docs.spott.io/api-reference/candidate-portal/list-candidate-to-dos
/api-reference/openapi.json get /candidates/{id}/todos
Returns a cursor-paginated list of the to-do's assigned to a candidate, newest first. A to-do of type `VISIT_URL` carries the link the candidate must open; a to-do of type `UPLOAD_ATTACHMENT` carries the kind of document expected in `attachmentType`. Documents themselves are not exchanged through this API.
# Plan an appointment for a candidate
Source: https://docs.spott.io/api-reference/candidate-portal/plan-an-appointment-for-a-candidate
/api-reference/openapi.json post /appointments
Creates an appointment for a candidate. Pass `applicationId` to attach the appointment to one of the applications of that candidate, and `location` to record where it takes place.
# Retrieve a candidate to-do
Source: https://docs.spott.io/api-reference/candidate-portal/retrieve-a-candidate-to-do
/api-reference/openapi.json get /candidates/{id}/todos/{todoId}
Retrieves the candidate to-do with the specified ID. A to-do of type `VISIT_URL` carries the link the candidate must open; a to-do of type `UPLOAD_ATTACHMENT` carries the kind of document expected in `attachmentType`. Documents themselves are not exchanged through this API.
# Retrieve an appointment
Source: https://docs.spott.io/api-reference/candidate-portal/retrieve-an-appointment
/api-reference/openapi.json get /appointments/{id}
Returns the appointment with the specified id, including the location where it takes place and the application it is attached to. Cancelled appointments are returned as well and flagged with `isCancelled`.
# Submit spontaneous application
Source: https://docs.spott.io/api-reference/candidate-portal/submit-spontaneous-application
/api-reference/openapi.json post /candidate-portal/open-application
Submit a spontaneous application. The CV is optional: without one, the candidate is created from the submitted details. An existing candidate with the same email, phone number or LinkedIn URL is reused. Requires open applications to be enabled for the organization.
# Update an appointment
Source: https://docs.spott.io/api-reference/candidate-portal/update-an-appointment
/api-reference/openapi.json patch /appointments/{id}
Updates the fields provided on the appointment identified by its id. Set `isCancelled` to cancel or reopen it, and pass `location: null` to remove the recorded location.
# Update candidate
Source: https://docs.spott.io/api-reference/candidate-portal/update-candidate
/api-reference/openapi.json post /candidate-portal/{candidateId}
Update existing candidate from CV and form details. Used by the candidate portal when an existing candidate updates their profile.
# Create a candidate statutory document
Source: https://docs.spott.io/api-reference/candidate-statutory-documents/create-a-candidate-statutory-document
/api-reference/openapi.json post /candidates/{id}/statutory-documents
Creates a statutory document for the candidate and returns its id.
# Delete a candidate statutory document
Source: https://docs.spott.io/api-reference/candidate-statutory-documents/delete-a-candidate-statutory-document
/api-reference/openapi.json delete /candidates/{id}/statutory-documents/{documentId}
Deletes the statutory document identified by its id for the candidate.
# List candidate statutory documents
Source: https://docs.spott.io/api-reference/candidate-statutory-documents/list-candidate-statutory-documents
/api-reference/openapi.json get /candidates/{id}/statutory-documents
Returns a paginated list of the statutory documents of the candidate.
# Update a candidate statutory document
Source: https://docs.spott.io/api-reference/candidate-statutory-documents/update-a-candidate-statutory-document
/api-reference/openapi.json put /candidates/{id}/statutory-documents/{documentId}
Updates the statutory document identified by its id for the candidate.
# Create a candidate
Source: https://docs.spott.io/api-reference/candidates/create-a-candidate
/api-reference/openapi.json post /candidates
Creates a new candidate. Provide the candidate details directly. Use the unsupervised endpoint for raw CV uploads.
# List candidates
Source: https://docs.spott.io/api-reference/candidates/list-candidates
/api-reference/openapi.json get /candidates
Returns a list of candidates. Uses cursor pagination.
# The Spott API
Source: https://docs.spott.io/docs/developers/api-overview
Build integrations on your Spott data with the REST API: authentication, API keys, rate limits, and where to find the full reference.
Spott offers an extensive **REST API** to build integrations on top of your data. It
exposes most of Spott's records and actions: candidates, jobs, companies, contacts,
applications, placements, notes, tasks, and more.
The full endpoint reference, with request and response shapes, an interactive
"Try it" playground, and pagination behavior, is in the **sidebar** of this tab,
grouped by record type (Candidates, Jobs, Applications, and more).
## Common use cases
* Build a custom dashboard on your Spott data.
* Push data from external systems into Spott, for example custom intake forms or an
HRIS sync.
* Pull data out of Spott for BI tools and data warehouses.
* Trigger downstream workflows when something happens in Spott, combined with
[webhooks](/docs/developers/webhooks).
## Authentication
* The base URL is `https://api.gospott.com`.
* Private endpoints require an **`x-api-key`** header with your API key.
* Public endpoints (for example, job board content) need no key; they are scoped by
the `publicTenantSlug` path parameter instead.
## API keys
Generate keys under **Settings → API**, where you also find links to this API
documentation and the [MCP](/docs/developers/mcp) setup (admin permissions required):
* **Copy the key immediately.** It is shown only once; if you lose it, generate a
new one.
* Each key is bound to **both the workspace and the user who created it**. Every
action performed with the key is attributed to that user; there is no way to pass
a different actor in the request. This protects audit trails and prevents
impersonation.
* If your integration acts on behalf of multiple users, **each user needs their own
API key**.
## Rate limits and pagination
* Endpoints are rate limited at **600 requests per minute**. Exceeding the limit
returns `429 Too Many Requests`.
* List endpoints use **cursor-based pagination**: pass the `cursor` value from the
previous response to fetch the next page.
## Three ways to build on Spott
* **REST API**: traditional integrations, scripts, and data sync at scale.
* **[Webhooks](/docs/developers/webhooks)**: Spott pushes events to your endpoint.
* **[MCP](/docs/developers/mcp)**: AI assistants interact with Spott conversationally.
They are complementary: webhooks tell you something happened, the API lets you fetch
and change the details, and MCP puts an AI assistant in the loop.
# AdvertsData
Source: https://docs.spott.io/docs/integrations/advertsdata
Connect AdvertsData to search job adverts and import companies, jobs, and applications into Spott.
## Overview
AdvertsData is a job market intelligence platform that gives you access to job advertisements and company data. Connecting AdvertsData to Spott embeds **Index Connect** in your workflow, so you can search for job adverts and import companies, jobs, and applications directly into Spott.
## Before you start
This integration requires an [AdvertsData Premium](https://www.advertsdata.com/advertsdata-premium/) subscription. Index Connect and the transfer actions are only available on that plan, so make sure your AdvertsData account is on Premium before you enable the integration in Spott.
## How it works
Index Connect is AdvertsData's embedded search interface. Once your workspace is connected, you can search for job adverts by job title and location without leaving Spott.
1. An admin enables the integration and configures the webhook URL in your AdvertsData account under **Settings → CRM Integration**.
2. Search for job adverts by entering a job title and location in Index Connect. Results appear directly in the interface.
3. Use the transfer actions on each job advertisement to import data into Spott. Each transfer is delivered via webhook, so records appear in your workspace shortly after you confirm.
Each job advertisement includes the following transfer options:
* **Transfer Account:** pushes company data into Spott and notifies your workspace via webhook.
* **Transfer Job:** transfers an individual job advertisement into Spott via webhook.
* **Transfer Application:** available when searching from a candidate's profile. Links the candidate with the selected job advertisement for application management in Spott.
## Enable AdvertsData for your workspace
1. Go to **Settings → Integrations → AdvertsData**.
2. Click **Enable** and enter your AdvertsData username and password.
3. Copy the webhook URL shown in the dialog and paste it into your AdvertsData portal on the **Settings → CRM Integration** page.
4. Set the **job stage** that imported jobs should land in. Transferred jobs arrive in
that stage rather than at the front of your pipeline, which keeps market research you
pulled in for reference apart from the roles you are actually working. See
[job stages](/docs/settings/stages).
Only workspace admins can enable this integration. If you don't see this option, contact your workspace admin.
## Update export format settings in your AdvertsData account
1. Go to the **Settings → Export formats** page in your AdvertsData account.
2. Click the gear icon next to **index connect**.
3. Make sure the following fields are selected:
* **Company:** Company ID, Company, Company website, LinkedIn Company Profile, Street name and house number, Postcode, City, Country, Phone, and the contact person fields (Name, Last Name, Role, E-Mail, Telephone).
* **Job:** Job ID, Position ID, Ad ID, Position, Advert text, Location, Mode of employment, and the advert contact person fields (Name, Last Name, Role, E-Mail, Telephone).
# Aircall
Source: https://docs.spott.io/docs/integrations/aircall
Set up and use Aircall within Spott for making and receiving calls with automatic call notes.
Make sure Aircall is enabled globally in your workspace first. You can navigate to Settings → Integrations → Aircall to verify.
## Enable Aircall for your workspace
Go to **Settings → Integrations → Aircall**.
* Click **Enable** for the admin to grant Spott access to Aircall
* This allows your workspace to integrate with Aircall for call management and note generation
Only admins can provide workspace level Aircall access. If you don’t see the option, contact your workspace admin.
## Select your Aircall number
Navigate to **Settings → Integrations** and open **Aircall**. You should now see it listed as active.
* Select **your Aircall number** from the list of available numbers
* This number is essential for:
* Receiving incoming calls
* Automatically linking notes to the caller
Numbers must be assigned in Aircall by your admin before they appear here. Selecting a
number requires the **Manage workspace settings** permission; if the list shows but is
greyed out, that is what you are missing, so ask your workspace admin.
**Calls are attributed by number, not by who dialled.** Each Aircall number links to
exactly one Spott user, and every call on that number is logged under that user. A team
sharing one number therefore sees all of its calls credited to whoever selected it, and
a number picked by the wrong colleague quietly sends their calls to somebody else's
record. Each user selects their own number on this page.
## Enable call recording in Aircall
Spott transcribes and summarizes the recordings Aircall makes, so **call recording must
be enabled for your number in Aircall**. Ask your Aircall admin to check the recording
setting on each number your team uses.
If recording is off for a number, calls still show up in the activity feed, but no
transcript or note is created. This is the most common reason a call appears without a
note.
## Start dialing from your browser
From any Candidate or Contact phone number in Spott:
* Click on the **phone number** to open the Aircall dialer
* The phone number will be prefilled in the widget
* Sign in to Aircall if you are not already signed in
* Click **Call** to dial directly from your browser
Recorded calls to a number that belongs to a person in Spott are automatically logged, transcribed and summarized into a Note.
## Enable SMS
Aircall numbers can also carry [SMS](/docs/inbox/sms). On the same Aircall page in
Spott, scroll to the **SMS** block and toggle on the numbers you want to text from.
**Check with Aircall that the number can actually text.** Aircall does not report SMS
capability to Spott, so the toggle switches on whether or not the number supports it.
A number that cannot send texts will accept the toggle and then fail to deliver, so
confirm on the Aircall side first.
Spott sends these messages through Aircall's **Messaging Public API**, which is a separate
permission on the Aircall account. A number that texts perfectly well from the Aircall app
can still fail from Spott, and the fix is to ask Aircall support to enable that API for
your company.
After a failed send Spott **switches the SMS toggle off for that number automatically**,
so once Aircall has made the change, come back to this page and turn it on again. Texting
from Spott and from the Aircall app work alongside each other.
## Important notes
Make sure your Aircall number is correctly selected in **Settings → Integrations → Aircall**. Without the correct number, incoming calls may not be recognized and automatic note generation will fail.
Once set up, you can use Aircall directly from Spott without needing to switch apps, improving workflow efficiency and ensuring all calls are logged.
Spott also integrates with other VoIP providers, including
[Ringover](/docs/integrations/ringover). The setup follows the same pattern: enable
the integration in Settings → Integrations, then select your number on that
provider's own page.
# Broadbean
Source: https://docs.spott.io/docs/integrations/broadbean
Set up and use Broadbean within Spott to distribute job adverts to multiple job boards from a single workflow.
## **About the integration**
### **Overview**
Broadbean is a **job distribution platform** that allows recruiters to publish job adverts to hundreds of job boards, social media platforms, and aggregators from one place.
By connecting Broadbean to Spott, you can distribute jobs directly from your recruitment workflow without switching tools. Spott sends job data to Broadbean using Broadbean AdCourier (ADC), after which Broadbean handles distribution to your configured channels.
### **How it works**
Once connected, Spott acts as the source of truth for your job data, while Broadbean manages distribution.The process looks like this:
1. A workspace admin connects Spott to Broadbean using your organization’s AdCourier credentials.
2. Each team member enters their personal ADC username.
3. When publishing a job, Broadbean is selected as a distribution channel.
4. Broadbean distributes the advert to the configured job boards.
## **Configure**
Make sure Broadbean is enabled at workspace level before entering your personal ADC username.
### **Enable Broadbean for your workspace**
Go to **Settings > Integrations > Broadbean**.
* Click **Enable**.
* Enter your **Broadbean AdCourier Client ID** and **Client Secret**.
* Choose whether you would like to receive inbound applications through
* *Broadbean's Candidate Hub*
Applications are sent to Broadbean and will be processed by Spott upon receipt from Broadbean, or available through Broadbean's Candidate Hub.
* *Apply Online flow*
Provide a URL to which candidates will be directed (e.g. Spott or your own website job board).
* Save the configuration.
Only workspace admins can enable Broadbean. If you don’t see this option, contact your workspace admin.
**Boards and adverts are edited in Broadbean, with the Super Admin login.** A
per-recruiter Broadbean login cannot change which boards are available or edit an
advert's configuration, so route those changes through whoever holds the Super Admin
account.
### **Enter your ADC username**
Once Broadbean is enabled for the workspace:
* Navigate to **Settings > Integrations > Broadbean**.
* Enter your personal **ADC Username**.
This username is required so Broadbean can attribute job postings to you.
Your ADC username is provided by Broadbean and is usually the same one you use to log into AdCourier.
### **Post jobs via Broadbean**
When creating or publishing a job in Spott:
* Navigate to the **Advertising** tab on any job
* Select **Post Advert with Broadbean** as a distribution channel.
* Publish the job through the embedded Broadbean AdCourier window
Spott sends the job advert to Broadbean, which then distributes it to your configured job boards.
One the Job Advert has been delivered, it will show up in the list of Job Board postings on the right hand side of the Advertising tab (it may take up to 2 minutes for newly posted adverts to be correctly delivered).
When Candidates apply through the apply URL, they will automatically be processed by Spott and will land in the job's **Applicants** tab for your review.
Available job boards and posting rules are managed in Broadbean, not in Spott.
Every advert carries the Spott **job reference**, because Broadbean requires one on each
posting. Spott sends it as a reference and does not put it in the job title, so where the
reference turns up inside the title of a LinkedIn post, that formatting is happening on
the Broadbean side. It cannot be removed or hidden from Spott.
### **Colleagues can act on your postings**
A posting belongs to the user who made it, but other users in your workspace can **act** on
it by default: repost it, for example, when the original poster is on holiday and the advert
is about to expire. Until September 2026 they were blocked from touching a colleague's
postings at all, which left an advert stuck whenever its owner was out.
### **Structured job descriptions post to the matching fields**
If your job description is written in **structured sections** rather than one block of
text (see [the job portal](/docs/jobs/job-portal)), Spott maps those sections onto
Broadbean's own sub-fields instead of flattening them into a single description. Several
Benelux and DACH job boards expect that split, and get a properly formatted advert as a
result. Nothing to switch on: use structured sections on the job and the mapping happens
when you post.
**Examples of Job boards distributed via Broadbean**
* **Indeed**
* **LinkedIn Jobs**
* **Glassdoor**
* **Monster**
* **Local and niche boards**
Spott also supports [Idibu](/docs/integrations/idibu) as a multiposter and
[VDAB](/docs/integrations/vdab) for the Flemish public job board, both available from
the same Advertising tab when enabled.
# CoRecruit
Source: https://docs.spott.io/docs/integrations/corecruit
A partner-built calling and interview-notes integration for Spott, set up on CoRecruit's side.
CoRecruit is a partner-built integration that brings calling and interview notes into
Spott. It is configured on CoRecruit's side rather than in Spott's integration settings.
## Connect
Follow CoRecruit's own setup to link it with your Spott workspace, or contact CoRecruit
for help. There is nothing to enable under **Settings → Integrations** in Spott.
This is a general summary. See CoRecruit's own documentation for what the tool does
and the exact setup steps.
# Creditsafe
Source: https://docs.spott.io/docs/integrations/creditsafe
Pull credit scores and company financials onto every company record in Spott.
Creditsafe brings **credit scores and company financials** straight onto your company
records, so you can assess the financial health of an account without leaving Spott.
## Connect
Enable Creditsafe under **Settings → Integrations → Creditsafe** and connect your
Creditsafe account. Credit scores and financials then appear on your company records.
Only workspace admins can enable this integration. A Creditsafe account is required.
## Generate a credit report
Open the company record and click **Generate Credit Report**, at the top right next to
**Actions**. Spott asks for two things:
* **Tax identifier**, with a country selector beside it. Pick the country of registration,
then enter the company's tax or VAT number.
* **Language**, which sets the language the report comes back in.
Click **Generate report** to pull it.
The tax identifier is what Creditsafe matches on, not the company name. A company in Spott
without one cannot be looked up until you add it.
If [VIES](/docs/integrations/vies) is enabled, the VAT number is checked against the
European Commission's service as you type it, so you find out it is wrong before spending
a Creditsafe lookup on it.
## Where the report ends up
The report is saved to the company's **Files** tab as a PDF, named
`credit-report--.pdf`. It is a full Creditsafe report of a dozen
pages or so, not a summary, and it is written in the language you picked when generating it.
Once a company has one, the button in the top right changes from **Generate Credit Report**
to **Credit Report**, so you can tell at a glance whether an account has already been
checked.
The first page carries the headline figures:
* **Risk score** and **probability of default**
* **International score**, a letter grade for comparing across countries
* **Credit limit**, the amount Creditsafe suggests is safe to extend
* **Status**, whether the company is currently active
* **Legal filings** and **summons**, flagged yes or no
Below that is a summary section with the company's registration details, legal form,
registration and incorporation dates, principal activity, and registered address.
Because each report is a file on the record rather than a live field, it is a snapshot.
Generate a fresh one before you rely on the numbers for a decision, and the older PDFs stay
on the record as a history of how the account has moved.
## Approve or decline the company
Click **Credit Report** in the top right of the company to open the report panel. The PDF
fills the right-hand side, and the left is where the decision is made.
### Decision criteria
Spott checks the report against four criteria and ticks off the ones that pass:
| Criterion | What it checks |
| - | - |
| **Annual accounts available** | The company has filed accounts to assess |
| **Company active** | It is not dissolved or in liquidation |
| **Credit score** | The score meets the threshold, for example 65 against a minimum of 40 |
| **Payment behavior indicator** | How the company pays its bills, for example 6 against a minimum of 5 |
The two scored criteria show the company's value next to the threshold it has to clear, so
you can see how much headroom there is rather than just a pass or fail.
### The decision
Spott proposes an **automatic decision** based on those criteria, shown as **Approved** or
declined in a dropdown. The dropdown is editable, so you can override the automatic outcome
when you know something the report does not.
Alongside it you can set:
* A **Note**, for why the decision was made, which matters most when overriding.
* An **Expiry date**, defaulting to a year out, after which the decision should be revisited.
Use **Generate new report** at the bottom to pull a fresh report for the same company, for
instance once the expiry date is near.
When a company is approved or declined, Spott fires a `client.updated`
[webhook](/docs/developers/webhooks), so a finance or ERP system can pick up the decision
without polling. The reports themselves are readable through the
`/clients/{clientId}/credit-reports` endpoints in the
[API](/docs/developers/api-overview).
# Daidalo
Source: https://docs.spott.io/docs/integrations/daidalo
Enrich your Spott data directly in your ATS and CRM through Daidalo.
Daidalo enriches your data directly in your **ATS and CRM**, keeping candidate and
company records complete and up to date.
## Connect
Daidalo is set up on the partner's side. Follow Daidalo's own setup to connect it with
your Spott workspace, or contact Daidalo for help.
This is a general summary. See Daidalo's own documentation for what the tool does and
the exact setup steps.
# DataChecker
Source: https://docs.spott.io/docs/integrations/datachecker
Run identity checks on candidates from Spott: ID verification and verified document upload.
DataChecker brings **identity checks** into Spott. Use it when a placement requires you
to prove who someone is: the candidate verifies their identity document, and the
verified result comes back onto their record instead of living in a mailbox.
Two checks are supported:
* **ID verification**: the candidate's identity document is checked against the issuing
source, so you hold a verified result rather than a photo of a passport.
* **Verified upload**: the candidate uploads a document through DataChecker, which
confirms it before it reaches you. **Several files can be sent in one go**, so a check
that needs a passport and a proof of address is one request to the candidate rather
than one per document.
## Connect
Enable DataChecker under **Settings → Integrations → DataChecker** and connect your
DataChecker account.
Only workspace admins can enable this integration. A DataChecker account is required.
# Devyce
Source: https://docs.spott.io/docs/integrations/devyce
A cloud business phone that syncs calls, notes, and recordings into Spott, set up on Devyce's side.
Devyce is a cloud business phone. It offers click-to-call with calls, notes, and
recordings syncing back to Spott. It is configured on Devyce's side rather than in Spott's
integration settings.
## Connect
Follow Devyce's own setup to link it with your Spott workspace, or contact Devyce for
help. There is nothing to enable under **Settings → Integrations** in Spott.
When you set it up with Devyce, cover these two points so everything lands correctly in
Spott:
* **Enable call recording** in Devyce. Spott transcribes the recordings Devyce sends, so
without recording no transcript or note is created.
* **Map each user's number to their own Spott user.** Devyce sets this mapping up on
their side; it is what attributes each call note to the right person. With a single
shared connection and no mapping, every note is attributed to one user.
## What to expect
Once configured, calls, notes, and transcripts appear on the right candidate or contact
automatically shortly after each call ends; no manual sync is needed. If notes don't
appear or land under the wrong person, check the two points above with Devyce.
This is a general summary. See Devyce's own documentation for what the tool does and
the exact setup steps.
# Dialpad
Source: https://docs.spott.io/docs/integrations/dialpad
Connect Dialpad to make and receive calls from Spott, with calls logged and recordings transcribed automatically.
## Overview
Dialpad lets your team make and receive calls directly from Spott. Once connected, you
assign a Dialpad number to each user, and calls are logged automatically against your
candidates and contacts.
## How it works
Once Dialpad is connected, Spott receives a notification whenever a call ends. Call
recordings are fetched, stored, and transcribed, so you can review them directly in
Spott. To link calls to the right person, each team member assigns their Dialpad number
in Spott.
## Configure
### 1. Generate an API key
A company admin opens **Admin Settings → My Company → Authentication → API Keys** in
Dialpad, clicks **Add Key**, gives it a name, enables all available scopes, and saves.
Treat the API key as a sensitive credential. It grants access across your whole
Dialpad company.
### 2. Connect Spott
In **Settings → Integrations → Dialpad**, click **Enable**, paste the API key, and
connect. Spott sets up the call-end webhook for you automatically, so there is nothing
else to configure.
### 3. Assign your number
Once connected, each user assigns their **Dialpad number** in the integration settings,
so calls are linked to the correct person.
## Call recordings
Spott transcribes and summarizes the recordings Dialpad makes, so a call must be
**recorded in Dialpad** to produce a transcript and note in Spott. Recordings can be
captured per call or automatically for every call:
* **Per call**: press **Record** during an active call in Dialpad.
* **All calls**: a company admin enables automatic recording under **Admin Settings →
Office → Office Settings → Making Calls → Enable Automatic Call Recordings**, for the
whole office or specific users.
With automatic recording on, callers do not hear a recording greeting. Inform them as
required by local regulations.
# DocuSign
Source: https://docs.spott.io/docs/integrations/docusign
Send attachments for e-signature and track signature status without leaving Spott.
Send documents for **e-signature** straight from Spott. Send any attachment to one or
more recipients and track signature status from the record's files, without switching
tools.
## Connect
Enable DocuSign under **Settings → Integrations → DocuSign** and connect your DocuSign
account. You can then send an attachment for signature from any record's files.
Only workspace admins can enable this integration. A DocuSign account is required.
## Track signature status
Once a document is out, its status sits on the record's files rather than in your inbox. A
badge such as **Signed by 1 recipient** shows the state at a glance, and opening it shows who
sent it and when, then each recipient with their own status, so a two-signature document tells
you which half you are waiting on.
Spott can also tell you the moment an envelope is completed, in the app or by email. Turn
it on under [notifications](/docs/settings/notifications).
To act on it rather than just hear about it, use the **Signature request completed** trigger
in [automations](/docs/settings/automations#the-triggers). It fires once every recipient has
signed, so a signed contract can open the next task or notify your back office without anyone
checking the file.
Signature events also fire [webhooks](/docs/developers/webhooks), so a finance or contract
system can react without anyone forwarding a confirmation.
# Google
Source: https://docs.spott.io/docs/integrations/google
Connect Gmail and Google Calendar to Spott to track emails and interviews inside your ATS.
Connect your Google account to sync **Gmail and Google Calendar** with Spott. It is
the foundation for the [Inbox](/docs/inbox/inbox),
[Calendar](/docs/calendar/schedule-a-meeting), and the
[Note Taker](/docs/notes/note-taker).
## Connect
Go to **Settings → Accounts** and connect your Google account. Sign in and approve the
requested permissions. Your email and meetings then sync into Spott and link to the
right candidates and contacts.
This is a personal connection: each user connects their own Google account.
**Up to two addresses per user.** Each Spott user can connect two email addresses, using
**Connect a second Microsoft account** or **Connect a second Google account** under
Settings → Accounts. The same address cannot be connected twice, and it cannot be
connected through both Google and Microsoft at the same time.
## Working in a managed organization
In some Google Workspace organizations, an admin needs to approve third-party app access
before users can connect. If the connection screen shows an approval or permissions
message, ask your Workspace admin to allow Spott; after that, every team member connects
in one click.
# idibu
Source: https://docs.spott.io/docs/integrations/idibu
Connect idibu to distribute job adverts to multiple job boards directly from your Spott workflow.
## Overview
idibu is a job distribution platform that lets you post job adverts to multiple job boards at once. Connecting idibu to Spott enables job posting directly from your recruitment workflow.
## How it works
Once connected, you can post job adverts from Spott through idibu, which then distributes them to your configured job boards.
1. An admin connects your workspace to idibu using your organization's App ID and App Secret.
2. When posting a job, select idibu as a distribution channel and your advert is sent to your configured job boards.
## Enable idibu for your workspace
Go to **Settings → Integrations → idibu**.
* Click **Enable**.
* Enter your idibu **App ID** and **App Secret**.
Only workspace admins can enable this integration. If you don't see this option, contact your workspace admin.
# Juicebox
Source: https://docs.spott.io/docs/integrations/juicebox
AI-powered candidate sourcing and people search that pushes candidates into Spott, set up on Juicebox's side.
Juicebox is an AI-powered candidate sourcing and people-search tool. You can push
candidates you find in Juicebox directly into Spott. It is configured on Juicebox's side
rather than in Spott's integration settings.
## Connect
Follow Juicebox's own setup to link it with your Spott workspace, or contact Juicebox
for help. There is nothing to enable under **Settings → Integrations** in Spott.
This is a general summary. See Juicebox's own documentation for what the tool does and
the exact setup steps.
# Microsoft
Source: https://docs.spott.io/docs/integrations/microsoft
Sync Outlook email and calendar with Spott so all candidate communication lives in one place.
Connect your Microsoft account to sync **email and calendar** with Spott
automatically. It is the foundation for the [Inbox](/docs/inbox/inbox),
[Calendar](/docs/calendar/schedule-a-meeting), and the
[Note Taker](/docs/notes/note-taker).
## Connect
Go to **Settings → Accounts** and connect your Microsoft account. Sign in and approve
the requested permissions. Your email and meetings then sync into Spott and link to
the right candidates and contacts.
This is a personal connection: each user connects their own Microsoft account.
**Up to two addresses per user.** Each Spott user can connect two email addresses, using
**Connect a second Microsoft account** or **Connect a second Google account** under
Settings → Accounts. The same address cannot be connected twice, and it cannot be
connected through both Google and Microsoft at the same time.
## Working in a managed organization
In many Microsoft 365 organizations, users cannot approve app permissions themselves:
an IT admin needs to grant consent for Spott first (in Microsoft Entra ID). If the
connection screen asks for admin approval or shows a permissions error, that is what is
happening. Have your IT admin pre-approve Spott for the organization; after that, every
team member connects in one click.
# Multiposting
Source: https://docs.spott.io/docs/integrations/multiposting
Publish a job to many external job boards at once via Broadbean, Idibu, or VDAB, and receive the applications back in Spott.
**Multiposting** means publishing a job opening to multiple external job boards at
the same time. There are thousands of job boards worldwide, so Spott partners with
specialist multiposting providers rather than integrating each board directly.
## How it works
1. Open the job's **Advertising** tab.
2. Choose a multiposter: **Publish to Broadbean**, **Publish to Idibu**, or
**Publish to VDAB** (for the Flemish public job board).
3. The provider's interface opens inside Spott. From there you select boards,
configure the posting, and publish.
Your multiposting subscription is with the provider, not with Spott. Pricing,
posting credits, and per-board fees are handled in your Broadbean or Idibu
account. Available boards and posting rules are managed there too.
## Supported multiposters
* **Broadbean** (AdCourier): see the [setup guide](/docs/integrations/broadbean).
* [Idibu](/docs/integrations/idibu): enabled under **Settings → Integrations**.
* [VDAB Vacature](/docs/integrations/vdab): for publishing to VDAB, enabled per
workspace.
## Inbound applications
Multiposting is a two-way channel. When a candidate applies to a job you posted:
1. The multiposter routes the application back to Spott automatically.
2. Spott parses the candidate's CV through the standard parsing pipeline.
3. A candidate profile is created, or the existing profile is updated if the person
is already in your database.
4. The application lands on that job's
[Applicants tab](/docs/jobs/inbound-applications), ranked
by AI, ready for review.
Applications flow back into Spott without manual exporting or importing. If you use
Broadbean's **Candidate Hub** flow, applications are also available for review in
Broadbean itself; see the [Broadbean setup guide](/docs/integrations/broadbean) for the
flow options.
# Nitro
Source: https://docs.spott.io/docs/integrations/nitro
Send attachments for e-signature with Nitro and track signature status without leaving Spott.
Send documents for **e-signature** with Nitro straight from Spott. Send any
attachment to one or more recipients and track signature status from the record's
files, without switching tools. It works the same way as the
[DocuSign integration](/docs/integrations/docusign).
## Connect
Enable Nitro under **Settings → Integrations → Nitro** and connect your Nitro
account. You can then send an attachment for signature from any record's files.
Only workspace admins can enable this integration. A Nitro account is required.
Spott can tell you the moment an envelope is completed, in the app or by email. Turn it
on under [notifications](/docs/settings/notifications).
To act on it rather than just hear about it, use the **Signature request completed** trigger
in [automations](/docs/settings/automations#the-triggers). It fires once every recipient has
signed, so a signed contract can open the next task or notify your back office without anyone
checking the file.
## Track signature status
Once a document is out, its status sits on the record's files rather than in your inbox. A
badge such as **Signed by 1 recipient** shows the state at a glance, and opening it shows who
sent it and when, then each recipient with their own status, so a two-signature document tells
you which half you are waiting on.
Signature events also fire [webhooks](/docs/developers/webhooks), so a finance or contract
system can react without anyone forwarding a confirmation.
# OneUp
Source: https://docs.spott.io/docs/integrations/oneup
Push Spott activity to OneUp leaderboards and TVs for real-time team performance visibility.
OneUp turns your Spott activity into **leaderboards and TV dashboards**, giving the
whole floor real-time visibility of team performance.
## Connect
Enable OneUp under **Settings → Integrations → OneUp** and connect your OneUp account.
Spott then pushes activity to your OneUp leaderboards in real time.
Only workspace admins can enable this integration. See OneUp's own documentation for
how to build and display leaderboards.
# Integrations Overview
Source: https://docs.spott.io/docs/integrations/overview
Everything Spott connects to: telephony, email and calendar, sourcing, job boards, business development, AI, and more.
Spott connects to the tools recruitment teams already use. Most integrations are
enabled under **Settings → Integrations** (workspace-wide, by an admin) or
**Settings → Accounts** (personal connections). The always up-to-date catalog lives
at [spott.io/integrations](https://spott.io/integrations).
Enabling an integration requires the relevant license or add-on. Not every
integration is included in every plan.
## Phone & messaging
* [WhatsApp](/docs/integrations/whatsapp): sync your own WhatsApp conversations into Spott.
* [WhatsApp Business](/docs/integrations/whatsapp-business): send from your business
number using approved templates, including to many recipients at once.
* **SMS**: text candidates and contacts from Spott on the SMS-capable numbers of your
VoIP account, with [RingRing](/docs/integrations/ringring),
[RingCentral](/docs/integrations/ringcentral),
[Ringover](/docs/integrations/ringover), or [Aircall](/docs/integrations/aircall).
See [SMS in Spott](/docs/inbox/sms).
* Call from Spott with the in-platform dialer; recorded calls are logged, transcribed,
and summarized. See [phone calls in Spott](/docs/calls/phone-calls) and the
setup guides for [Aircall](/docs/integrations/aircall),
[RingCentral](/docs/integrations/ringcentral),
[Ringover](/docs/integrations/ringover), and
[RingRing](/docs/integrations/ringring).
* [Dialpad](/docs/integrations/dialpad) and [VoIPPlay](/docs/integrations/voipplay):
click-to-call with calls, notes, and recordings syncing back automatically.
[Devyce](/docs/integrations/devyce) is set up on the partner's side.
* [TalentLynk](/docs/integrations/talentlynk), [CoRecruit](/docs/integrations/corecruit): partner-built calling and interview-notes
integrations.
## Email & calendar
* [Microsoft](/docs/integrations/microsoft) and [Google](/docs/integrations/google): sync email and calendar. The foundation for the
[Inbox](/docs/inbox/inbox), [Calendar](/docs/calendar/schedule-a-meeting),
and the [Note Taker](/docs/notes/note-taker).
* **Zoom**: there is nothing to connect. A Zoom link on a calendar invite lets the
[Note Taker](/docs/notes/note-taker) join the meeting. See [Zoom](/docs/integrations/zoom).
## Sourcing
* [Chrome extension](/docs/settings/chrome-extension): import candidates, contacts, and
jobs from your browser.
* [Juicebox](/docs/integrations/juicebox) and [Pin](/docs/integrations/pin): push sourced candidates directly into Spott.
* [VDAB](/docs/integrations/vdab) CV: access the VDAB CV database straight from Spott.
## Job board posting
* [Broadbean](/docs/integrations/broadbean) and [idibu](/docs/integrations/idibu):
distribute vacancies to thousands of job boards. See
[multiposting](/docs/integrations/multiposting) for how it works.
* [VDAB Vacature](/docs/integrations/vdab): post vacancies to VDAB, with applicants
landing in your pipeline automatically.
* **LinkedIn**: link a LinkedIn job board post to a Spott job so inbound applications
land in your pipeline. See
[LinkedIn job board posts](/docs/jobs/linkedin-job-posting).
## Business development
* [Vente](/docs/integrations/vente): source open job postings and find the hiring
managers behind them, set up on the partner's side.
* [AdvertsData](/docs/integrations/advertsdata): see which companies are hiring;
vacancy leads land in your Spott pipeline.
## Workforce management
* [SAP Fieldglass](/docs/integrations/sap-fieldglass): connect jobs and candidates to a
client's SAP Fieldglass instance. Map their statuses to your stages once, and
candidates move through your pipeline as the client updates them.
## Finance
* [Xero](/docs/integrations/xero): create invoices for placements in Spott and send them
to Xero as drafts, with pay codes synced from your Xero items and each invoice's status
followed back on the placement. See [Invoicing with Xero](/docs/integrations/xero-invoicing).
## AI & custom
* **Claude** and **ChatGPT**: work with your Spott database from a chat conversation
via the official Spott MCP. See [Spott in Claude](/docs/developers/claude) and
[Spott in ChatGPT](/docs/developers/chatgpt).
* [Open API](/docs/developers/api-overview): build your own applications on the Spott REST API,
with [webhooks](/docs/developers/webhooks) for event-driven integrations. Full
reference at [api-docs.spott.io](https://api-docs.spott.io/).
## Documents & more
* [DocuSign](/docs/integrations/docusign): send attachments for e-signature from Spott and track signature
status.
* [Nitro](/docs/integrations/nitro): e-signature, similar to DocuSign.
* [OneUp](/docs/integrations/oneup): push Spott activity to OneUp leaderboards and TV
dashboards for real-time team performance.
* [Saply.ai](/docs/integrations/saply-ai): reformat candidate CVs into your branded template.
* [Daidalo](/docs/integrations/daidalo): enrich your data directly in your ATS and CRM.
* [Recsites](/docs/integrations/recsites): build a recruitment website with your jobs synced from Spott.
## Data & compliance
* **VIES**: validate EU VAT numbers against the European Commission's VIES service
when creating companies. See [VIES](/docs/integrations/vies).
* [Creditsafe](/docs/integrations/creditsafe): pull credit scores and company
financials onto your company records.
* [DataChecker](/docs/integrations/datachecker): run identity checks on candidates, with
ID verification and verified document upload.
## Mobile
The **[Spott mobile app](/docs/mobile/overview)** for iOS and Android lets you search your
database, capture notes, and record in-person meetings with AI summaries on the go.
# Pin
Source: https://docs.spott.io/docs/integrations/pin
A sourcing tool that pushes candidates you source in Pin directly into Spott.
Pin is a recruiting and sourcing tool. You can push candidates you source in Pin directly
into Spott.
## Connect
Pin connects to Spott directly. Pin no longer charges an integration fee for it, so
pushing candidates into Spott costs you nothing beyond your Pin subscription.
This is a general summary. See Pin's own documentation for what the tool does and the
exact setup steps.
# Recsites
Source: https://docs.spott.io/docs/integrations/recsites
Build a recruitment website with your Spott jobs synced straight to it.
Recsites lets you build a **recruitment website** with your jobs synced straight from
Spott, so open roles on your careers site stay up to date automatically.
## Connect
Recsites is set up on the partner's side. Follow Recsites' own setup to connect your
Spott jobs, or contact Recsites for help.
This is a general summary. See Recsites' own documentation for what the tool does and
the exact setup steps.
# RingCentral
Source: https://docs.spott.io/docs/integrations/ringcentral
Connect RingCentral to make and receive calls directly from Spott, with call notes and recordings synced automatically.
## Overview
RingCentral is a VoIP provider. Connecting it to Spott lets you call any Candidate or Contact with Click-to-Dial, so you can launch calls without switching tools. All call data is synced back to Spott automatically.
## How it works
Once RingCentral is connected:
* Click the phone icon on any Candidate or Contact record to start a call.
* The call is initiated through RingCentral with the phone number prefilled automatically.
* Call notes and recordings are synced back to Spott automatically, once recording is
enabled in RingCentral (see [Enable call recording](#enable-call-recording-optional)
below; it is off by default in RingCentral).
## Enable RingCentral for your workspace
Go to **Settings → Integrations → RingCentral** and create a JWT credential.
1. Click **Create JWT Credential** to open the RingCentral Developer Console. The link automatically scopes the credential to Spott's application.
2. Under **Who is permitted to use this credential?**, select **Only specific apps of my choice** and make sure Spott's Client ID is filled in.
3. Copy the generated JWT credential, paste it into the field on this page, then click **Connect**.
Only administrators can configure the RingCentral integration. If you don't see this option, contact your workspace admin.
## Select your RingCentral number
Navigate to **Settings → Integrations** and open **RingCentral**.
* Choose your RingCentral number from the available list.
* This number is essential for receiving incoming calls and linking call notes to the correct caller.
## Enable call recording (optional)
To have call recordings synced to Spott, enable recording in the **RingCentral Admin Portal**. There are two options:
* **On-demand recording:** users can record calls manually at any time with a button press. A notification plays when recording starts and stops. Recordings are saved for 90 days.
* **Automatic recording:** recording starts at the beginning of each call and stops when the call ends. It is turned off by default.
Both types can be enabled, but only one can be active during a call. If automatic recording is on, it takes priority and on-demand recording is not available for that call.
To enable recording:
1. Sign in to the RingCentral Admin Portal at `service.ringcentral.com`.
2. Go to **Call Handling**.
3. Toggle on **On-demand call recording**, **Automatic call recording**, or both.
4. Under **Automatic Call Recording**, open the list of extensions and **select the
extensions to record**. Recording applies to nobody until this is done.
5. For each of those extensions, enable both **inbound** and **outbound** calls.
6. Click **Save**.
Automatic recording and recording sync require a RingCentral plan that includes them
(the Ultra plan at the time of writing); check RingCentral's current plan comparison.
## Start making calls
Click the phone icon on any Candidate or Contact to initiate a call. Call data and recordings are synchronized automatically.
## Enable SMS
RingCentral numbers can also carry [SMS](/docs/inbox/sms), and this part is set up
**per user**.
1. Go to **Settings → Integrations → RingCentral**.
2. In the **Workspace** block, find the **SMS** row and connect your own RingCentral
account.
3. Scroll to the **SMS** block below and toggle on the numbers you want to text from.
**Every user connects their own RingCentral account.** RingCentral constrains SMS to
the individual account, so connecting yours does not enable texting for anybody else
on the team: each colleague has to repeat these steps. This is a RingCentral
constraint, not a Spott one. [Ringover](/docs/integrations/ringover), for comparison,
enables SMS workspace-wide.
RingCentral also groups SMS numbers **by extension**. The numbers offered to you are the
ones assigned to your own extension, which is why two colleagues can see different lists
here.
# Ringover
Source: https://docs.spott.io/docs/integrations/ringover
Connect Ringover to make and receive calls from Spott, with call transcripts synced and summarized into Notes automatically.
## Overview
Ringover is a VoIP provider. Connecting it to Spott lets you call any Candidate or Contact with Click-to-Dial, so you can launch calls without switching tools.
## How it works
Spott automatically syncs and summarizes your call transcripts into Notes. Each call creates a Note that includes a short summary, the date and time of the call, and a link to the correct caller and recipient. Incoming calls automatically open the caller's file in Spott, so you don't need to scramble for information.
Once Ringover is connected:
* Open any Candidate or Contact record with a phone number and click the **Call** button.
* If the Ringover app or browser widget isn't open, you are prompted to launch it. The phone number is prefilled automatically.
* Click **Call** in Ringover to dial directly from your browser.
Within a few minutes of the call, Spott creates a Note containing a concise summary generated from the transcript, the date and time of the call, and a link to the correct caller and recipient.
## Enable Ringover for your workspace
Set up the connection with an account that is an **admin in both Spott and Ringover**.
Connecting with someone else's Ringover admin credentials is a common cause of failed
connections.
### 1. Create an API key
1. Go to `https://dashboard.ringover.com/api`.
2. Click **Create API key**.
3. Select a user from the dropdown menu.
4. Add a label to identify your key (for example, "Spott Integration").
5. Click **Create** to generate your API key.
6. Scroll down to the **Rights** section and enable all permissions (both Read and Write) for: Monitoring, Calls, Contacts, Users, Numbers, IVRs, Conversations, and Empower.
### 2. Configure the webhook
1. Go to `https://dashboard.ringover.com/webhooks`.
2. Toggle on **Activate webhook**.
3. Locate the **Calls ended** field and enter the webhook URL shown on the Ringover integration page in Spott.
4. Save your changes.
The exact **Calls ended** webhook URL is generated for your workspace and shown on the Ringover integration page in Spott. Copy it from there.
### 3. Enable the integration
1. Click **Enable** at the top of the Ringover integration page in Spott.
2. Paste your **API key** into the API key field.
3. Paste your **Webhook key** into the Webhook key field.
4. Save your changes.
## Select your Ringover number
1. Go to **Settings → Personal → Calls**. You should now see Ringover listed as active.
2. Choose your Ringover number from the available list. This number is essential for receiving incoming calls and linking call notes to the correct caller.
Numbers must be assigned in Ringover by your admin before they appear here.
## Enable SMS
Ringover numbers can also carry [SMS](/docs/inbox/sms). On the same Ringover page in
Spott, scroll to the **SMS** block and toggle on the numbers you want to text from.
Ringover enables SMS **workspace-wide**, so this is a one-time job. Unlike
[RingCentral](/docs/integrations/ringcentral), there is no per-user account to connect
afterwards.
## Enable call recording in Ringover
Spott transcribes and summarizes the recordings Ringover makes, so **call recording must
be enabled in your Ringover dashboard**. Without it, calls still show up in the activity
feed, but no transcript or note is created.
Once connected, call data is synchronized automatically when calls end.
# RingRing
Source: https://docs.spott.io/docs/integrations/ringring
Connect RingRing to call and to text candidates and contacts directly from Spott.
## Overview
RingRing is a Belgian communications provider. Connecting it to Spott gives you both
sides of the number: **calling** candidates and contacts from Spott, with the call
logged, recorded, and summarized like any other
[VoIP integration](/docs/calls/phone-calls), and **SMS**, so you can text from the
record too.
## Getting connected
**RingRing does not have a self-service page under Settings → Integrations yet.** The
connection works, but it is set up for you. [Contact support](/docs/get-started/faq)
and we will enable RingRing on your workspace.
Have your RingRing account details to hand when you get in touch, and say which numbers
should be available in Spott, both for calling and for texting.
Once RingRing is live on your workspace, calling and [SMS](/docs/inbox/sms) behave the
same as with any other provider: calls are logged and transcribed on the record, and
text messages appear on the **Communication** tab and in the
[Inbox](/docs/inbox/inbox).
## Enable call recording in RingRing
Spott transcribes and summarizes the recordings your provider makes, so **call
recording must be enabled on the RingRing side**. Without it, calls still appear in the
activity feed, but no transcript or note is created.
# SAP Fieldglass
Source: https://docs.spott.io/docs/integrations/sap-fieldglass
Let Spott process SAP Fieldglass notifications and move your jobs and applications to match what the client has done.
## Overview
**SAP Fieldglass** is SAP's vendor management system. Clients use it to publish contingent
and contract roles to their approved suppliers, collect submissions, and track each worker
through to placement. If you staff for a client who runs Fieldglass, their postings and your
submissions already live there.
Fieldglass sends a notification every time something moves. Spott picks those up and makes
the matching update on your side, so your board keeps up with the client's portal without
anyone retyping it.
This integration works from the notifications Fieldglass already sends you. There is no
login or API key to configure, and Spott never writes anything back to Fieldglass.
## How it works
1. Fieldglass sends a notification, for example when a job seeker is shortlisted.
2. It arrives in a mailbox connected to Spott through
[Microsoft](/docs/integrations/microsoft) or [Google](/docs/integrations/google).
3. Spott processes the notification, determines which event it describes, and matches it to
your records through their **External IDs**.
4. Spott applies the action you mapped to that event.
Because the result is an ordinary stage change or rejection, everything that hangs off one
still applies: it appears on the activity feed, it counts toward your
[pipeline reporting](/docs/settings/stages#how-the-markers-turn-into-numbers), and any
[automation](/docs/settings/automations) listening for that move fires as usual.
## What you need first
Nothing happens until all three of these are true.
Ask your Spott contact. This one is not self-serve. Fieldglass does not word its
notifications the same way in every environment, so a setup sometimes needs an
adjustment before every event is picked up.
Connect it through [Microsoft](/docs/integrations/microsoft) or
[Google](/docs/integrations/google). A Microsoft shared or team mailbox works, so the
notifications can go to a team address rather than one person. Gmail is per user only.
Both live on the settings page below. Out of the box every event is set to
**Do nothing**.
Notifications should be received directly from Fieldglass. Spott does not recognize
forwarded emails, or emails that did not come directly from Fieldglass.
## Turn on mail parsing
Go to **Settings > Integrations > SAP Fieldglass** and switch on **Enable SAP Fieldglass mail
parsing**. The event mapping table appears once it is on.
Only workspace admins can enable this integration or change its mappings. If you do not
see it, contact your workspace admin.
## Map each event to an action
Spott recognizes eleven Fieldglass notifications at the moment. For each one you choose what
should happen in Spott. Nothing is mapped by default, so an event left on **Do nothing** is
simply ignored.
Which actions are available depends on what the notification is about. Events about a posting
act on the job; events about a job seeker act on that person's application. Several events can
point at the same stage.
| Fieldglass event | What you can map it to |
| - | - |
| Job posting submitted | Move job stage |
| Job posting resumed | Move job stage |
| Job posting halted | Move job stage |
| Job posting closed | Move job stage |
| Job posting declined | Move job stage |
| Work order pending approval | Move job stage |
| Job seeker submitted | Move application stage, or Reject application |
| Job seeker shortlisted | Move application stage, or Reject application |
| Job seeker interviewed | Move application stage, or Reject application |
| Job seeker rejected | Move application stage, or Reject application |
| Job seeker withdrawn | Move application stage, or Reject application |
The job seeker events work on an application that is already there. The person has to exist
in Spott as a candidate with an application on that job, otherwise the notification has
nothing to move and is ignored. Spott updates an application, it never creates one.
Picking an action opens a short form:
* **Move job stage** asks for the [job stage](/docs/settings/stages#job-stages) to move to.
* **Move application stage** asks for an application stage, and optionally a status within
it. The stage has to come from your standard pipeline.
* **Reject application** asks for a [rejection label](/docs/settings/labels), who turned the
candidate down, and an optional reason. It also closes the application.
Every action can name an **acting user**, which is who the change is attributed to on the
record. Leave it empty and it defaults to whoever saved the mapping.
Set your mappings up before the first live job runs through Fieldglass. A mapping added
later does not go back and reposition candidates who already moved.
## Link your records with External IDs
Fieldglass identifies everything by reference, so Spott needs to know which of your records
each reference belongs to. That link is the **External IDs** button on a company, job or
candidate.
The **buyer code** goes on the client company, the **job posting ID** goes on the job, and
the **job seeker ID** goes on the candidate.
All three come from Fieldglass and appear on the notifications you receive. Open the record in
Spott, click **External IDs**, and paste the reference under **SAP Fieldglass**. A candidate
can hold several, which is what you need when the same person is submitted to more than one
buyer. A company and a job each hold one.
## Good to know
* **Fieldglass drives Spott, never the reverse.** Moving a card in Spott changes nothing in
the client's portal. Their system stays the record of truth and your board follows it.
* **Spott updates the records you already have.** The company, job, candidate and application
live in Spott, and their External IDs are what connect them to Fieldglass.
* **A notification that cannot be matched to a candidate or job is ignored.**
**Pipeline stages** in Settings. The stages you map Fieldglass events onto, and how moving
between them feeds your reporting.
# Saply.ai
Source: https://docs.spott.io/docs/integrations/saply-ai
Reformat candidate CVs into your branded template, set up on Saply.ai's side.
Saply.ai is an AI recruitment tool that reformats candidate CVs into your branded
template. It is configured on Saply.ai's side rather than in Spott's integration settings.
## Connect
Follow Saply.ai's own setup to link it with your Spott workspace, or contact Saply.ai for
help. There is nothing to enable under **Settings → Integrations** in Spott.
This is a general summary. See Saply.ai's own documentation for what the tool does and
the exact setup steps.
# TalentLynk
Source: https://docs.spott.io/docs/integrations/talentlynk
A partner-built calling and interview-notes integration for Spott, set up on TalentLynk's side.
TalentLynk is a partner-built integration that brings calling and interview notes into
Spott. It is configured on TalentLynk's side rather than in Spott's integration settings.
## Connect
Follow TalentLynk's own setup to link it with your Spott workspace, or contact TalentLynk
for help. There is nothing to enable under **Settings → Integrations** in Spott.
This is a general summary. See TalentLynk's own documentation for what the tool does
and the exact setup steps.
# VDAB Vacature
Source: https://docs.spott.io/docs/integrations/vdab
Publish job postings directly to vdab.be, the Flemish public employment service, from Spott.
## Overview
VDAB Vacature is the Flemish public employment service's official job posting API.
Connecting it to Spott lets you publish openings directly to `vdab.be` from your
recruitment workflow.
## How it works
Once connected, you publish job postings from Spott straight to `vdab.be`:
1. An admin connects your workspace to VDAB Vacature with your organization's **Supplier
ID**, **username**, and **password**.
2. When posting a job, select **VDAB Vacature** as a distribution channel. Your posting
is sent to vdab.be as an HR-XML Position Opening.
Applications that come in through VDAB return to your Spott pipeline the same way as
other [multiposting](/docs/integrations/multiposting) channels.
Each VDAB posting gets a readable job reference ID, which you can paste into the
global search box to jump straight to the job. That makes it quick to match a VDAB
reference from an email or a phone call back to the record in Spott.
## Repost a job to refresh it
A posting that has been up for weeks sinks down the vdab.be listings. **Repost** it and
Spott publishes it again under a **new VDAB ID**, which gives it a new published date
and puts it back at the top where jobseekers look first. It is the native way to do what
people otherwise do by hand: close the posting and create it again.
The new ID is the thing to know about. The old reference stops being the one to search
on, so a VDAB reference someone quotes from an older email points at the posting that
was replaced.
VDAB enforces a **4,000 character limit** on job descriptions, and the count includes
the text formatting (HTML), not just the visible text. If you hit the limit with a
shorter description, simplify the formatting (fewer nested lists and styles) or
shorten the text.
## Configure
Go to **Settings → Integrations → VDAB Vacature**, click **Enable**, and enter your VDAB
**Supplier ID**, **username**, and **password**.
Only workspace admins can enable this integration. If you don't see this option,
contact your workspace admin.
# Vente
Source: https://docs.spott.io/docs/integrations/vente
Source open job postings and find the hiring managers behind them, set up on Vente's side.
Vente helps you source open job postings and find the hiring managers behind them. It is
configured on Vente's side rather than in Spott's integration settings.
## Connect
Follow Vente's own setup to link it with your Spott workspace, or contact Vente for help.
There is nothing to enable under **Settings → Integrations** in Spott.
This is a general summary. See Vente's own documentation for what the tool does and the
exact setup steps.
# VIES
Source: https://docs.spott.io/docs/integrations/vies
Validate EU VAT numbers against the European Commission's VIES service when creating companies in Spott.
## Overview
VIES is the European Commission's VAT Information Exchange System. Enabling it in Spott lets you validate EU VAT numbers against the official service.
## Enable VIES for your workspace
Go to **Settings → Integrations → VIES** and turn on **Enable VIES**. This allows VAT numbers to be validated with VIES when creating companies.
Only workspace admins can enable this integration. If you don't see this option, contact your workspace admin.
## Where validation happens
Once enabled, VAT numbers are checked against VIES as you type them, in two places:
* When you **create or edit a company**.
* When you generate a [Creditsafe credit report](/docs/integrations/creditsafe), which looks
the company up by its tax identifier. Catching a bad number here saves a wasted lookup.
# VoIPPlay
Source: https://docs.spott.io/docs/integrations/voipplay
Connect VoIPPlay to automatically log call recordings in Spott and link them to the right candidates and contacts.
## Overview
VoIPPlay is a VoIP provider. Connecting it to Spott automatically captures call recordings and links them to the relevant candidates and contacts. All calls are logged and transcribed for easy reference.
## How it works
Once VoIPPlay is connected, Spott automatically receives a notification when a call ends. Call recordings are fetched, stored, and transcribed so you can review them directly in Spott. To link calls to the right person, each team member assigns their VoIPPlay extension.
VoIPPlay pushes each call to Spott the moment it ends, so a finished call is normally on
the record **inside a minute**. If you hang up and the call is not there yet, give it a
moment before assuming something is wrong.
## Enable VoIPPlay for your workspace
### 1. Connect your account
Click **Enable** and enter your VoIPPlay credentials (login and password). Then select the vPBX you want to connect.
### 2. Configure the webhook
Copy the webhook URL shown after connecting and paste it into your VoIPPlay portal under the webhook configuration for hangup events.
## Assign your extension
Each user assigns their VoIPPlay extension in the settings on the integration page, so incoming and outgoing calls are linked to the correct person.
Calls are only linked to a user once that user has assigned their VoIPPlay extension.
# WhatsApp
Source: https://docs.spott.io/docs/integrations/whatsapp
Sync WhatsApp conversations into Spott so candidate messages are stored in one place.
Sync your **WhatsApp conversations** into Spott so candidate messages are kept
alongside the rest of their history, instead of living only on your phone.
This page covers syncing **your own** WhatsApp account. To send from a shared
business number using approved templates, including to many recipients at once, see
[WhatsApp Business](/docs/integrations/whatsapp-business). You can run both.
## Connect
Go to **Settings → Accounts**, find **WhatsApp** under **Messaging**, and click
**Connect**. Spott tells you exactly what the connection does before you confirm:
* Your WhatsApp session is connected to Spott, giving access to your contacts and
message history
* You can read and send WhatsApp messages directly from Spott
* **Spott never sends messages on your behalf without your explicit action**
* You can disconnect at any time
Accept the terms and click **Sync with WhatsApp**.
Once connected, your conversations with people in your Spott database sync
automatically and appear on their profiles and in the [Inbox](/docs/inbox/inbox).
Only workspace admins can enable this integration. If you don't see this option,
contact your workspace admin.
## Privacy
Your WhatsApp conversations are visible **only to you**, the user who connected the
account. Unlike email, where each user chooses how much to share with the team,
WhatsApp messages are never visible to other workspace members.
## Staying connected
WhatsApp periodically requires you to re-establish the link to Spott, much like other
services occasionally ask you to sign in again. This is a standard WhatsApp security
measure. When it happens, reconnect from **Settings → Accounts → Messaging**: Spott
then syncs the conversations from the disconnected period, so no messages are lost.
## Troubleshooting
If your settings show WhatsApp as connected but messages stop appearing on candidate
profiles, or messages only flow in one direction, **disconnect and reconnect** the
integration. This establishes a fresh session and re-syncs recent conversations. If
messages still don't appear afterwards, reach out to support.
# WhatsApp Business
Source: https://docs.spott.io/docs/integrations/whatsapp-business
Send WhatsApp messages from your business number, using approved templates you can send to many recipients at once.
**WhatsApp Business** lets you message candidates and contacts from your organization's
WhatsApp business number, rather than from your personal WhatsApp account. Because it
runs on a business number, you can send an **approved template** to many recipients at
once, which makes WhatsApp usable for outreach at the scale you already use email for.
This is not the same integration as [WhatsApp](/docs/integrations/whatsapp). That one
syncs the conversations from **your own** WhatsApp account into Spott and keeps them
private to you. This one sends from a **business number** using approved templates.
You can run both, and they sit next to each other in settings.
## Connect
Go to **Settings → Accounts**, find **WhatsApp Business** under **Messaging**, and
click **Connect**. It sits directly under the personal WhatsApp integration, described
as *"Send bulk messages from your business account"*, so check you are connecting the
right one of the two.
## Send a message
Open **Send WhatsApp Business message** from a candidate or contact, or from a
selection in a list.
The dialog has three parts:
* **From**, the business number the message is sent from. If your workspace has more
than one, pick it here.
* **To**, the recipients. Add as many as you need: this is the same field whether you
are messaging one person or a few hundred.
* **The templates**, shown as cards. Click **Select** on the one you want to send.
## Templates
Every WhatsApp Business message goes out as a template. You cannot type a free-form
first message the way you would in a normal WhatsApp chat, because WhatsApp itself
requires businesses to use pre-approved wording when they start a conversation.
Each template card tells you what you are picking:
| On the card | What it means |
| - | - |
| **Name** | The template's identifier, for example `application_update` |
| **Approved** | WhatsApp has reviewed and approved this wording. Only approved templates can be sent |
| **Utility** or **Marketing** | The category WhatsApp filed it under, which is what WhatsApp charges on |
| **Language** | The language the template was approved in |
| The body | The exact text that will be sent, with its variables shown inline |
| The date | When the template was added |
Templates carry **variables**, written like `{ Recipient > First Name }` and
`{ Job > Name }`, which Spott fills in per recipient when it sends. That is what makes
one template work for a whole list: everyone gets their own name and their own job,
not a generic blast.
Read the body on the card before you send, not just the name. The template name is
yours, but the wording is whatever WhatsApp approved, and it is the wording that
reaches the candidate.
## Sending in bulk
Because a template is pre-approved and its variables resolve per person, one send can
cover a whole shortlist: an interview reminder to everyone booked tomorrow, a status
update to everyone waiting on a decision, a first-day briefing to a batch of starters.
Add the recipients to **To**, pick the template, and send. Each person receives their
own message on their own thread, so a reply comes back as a normal conversation rather
than into a group.
WhatsApp is a more personal channel than email and people treat it that way. A
template that reads like a mailshot will cost you more goodwill on WhatsApp than the
same words would in an inbox. Keep bulk sends to messages the recipient is actually
waiting for.
# Xero
Source: https://docs.spott.io/docs/integrations/xero
Connect Xero to invoice placements from Spott, with pay codes, billing contacts and invoice status kept in sync.
The Xero integration lets your consultants **create invoices for placements directly in
Spott** and send them to Xero as drafts. Your finance team then approves, sends and records
payment in Xero as usual, and Spott tracks each invoice's status on the placement.
With the integration you can:
* **Sync your Xero items into Spott as pay codes**, so line items use the same codes, prices
and descriptions as in Xero.
* **Link a Spott company to its Xero contact once**, so every future invoice goes to the right
billing entity.
* **Create draft invoices** from contingent, contract and retained placements, including
invoices built from approved timesheets.
* **See at a glance** which placements are invoiced, which invoices are still drafts, and
which are paid.
This page covers setting up the integration. Creating invoices, and following their status
once they are in Xero, is on [Invoicing with Xero](/docs/integrations/xero-invoicing).
Approving, sending and reconciling invoices happens in Xero, not in Spott.
## Before you start
Check that three things are in place before your team creates its first invoice:
* **A Spott admin has connected Xero.** It is connected once for the whole workspace.
* **Your Xero items are set up.** Spott imports them as pay codes, with their codes,
descriptions and default prices.
* **Your billing contacts exist in Xero.** Each Spott company is linked to an existing Xero
contact. You cannot create Xero contacts from Spott yet, so add any missing ones in Xero
first.
## Connect your Xero organization
1. Go to **Settings → Integrations** and select **Xero**.
2. Connect your Xero account and choose the Xero organization to link.
3. Check the organization row. It shows the name of the linked organization and
**Connected**.
Only workspace admins can connect this integration. A Xero account is required.
## Sync pay codes from Xero
Pay codes are the items you bill for, such as a permanent placement fee or an hourly
development rate. They come from your Xero items.
1. On the Xero integration page, open **Manage pay codes**. You can also go to
**Settings → Templates → Rate Card Templates → Pay Codes**.
2. Click **Sync pay codes** to import the latest item codes from Xero.
3. Imported codes appear in the list with a **Xero** label, alongside their description.
Sync again whenever your finance team adds or changes items in Xero. Syncing is **one-way**:
changes in Xero come into Spott, but pay codes you create in Spott are not sent to Xero.
You can also create pay codes directly in Spott with **Create pay code**. These are for
tracking only, for example if you do not use Xero. Use Xero pay codes for anything you
invoice through Xero.
### Move a Spott pay code to Xero
If you created a pay code in Spott and now want to invoice it through Xero:
1. In Xero, create an item whose code matches the Spott pay code **exactly**, including
capitals and spaces. `OT` and `ot` are treated as different codes.
2. Back in Spott, click **Sync pay codes** again.
Spott links the two, and the pay code gets the **Xero** label. Any rate cards and timesheets
already using it keep working.
### Description templates
A pay code's description becomes the line description on the invoice. Instead of fixed text,
you can write it as a template that fills in details from the placement. This works for every
pay code, including ones synced from Xero: open a Xero pay code in Spott and add variables to
its description.
1. Open a pay code and click in the **Description** field.
2. Type `{` and pick a placement variable, such as first name, last name, company or start
date.
For example, `Placement of { First name } { Last name } at { Company }, starting { Start date }`
becomes *Placement of John Doe at Acme, starting 2024-02-01* on the invoice.
* Only **placement variables** can be used.
* A description without variables is used as written.
* If one invoice covers several placements, the variables cannot be filled in and the line
reads **N/A**. Edit that line by hand before sending.
Your template is kept in Spott only; the item in Xero keeps its own description. Once you
edit a pay code's description in Spott, syncing from Xero no longer overwrites it. To go
back to the Xero description, clear the field and sync again.
## Link companies to Xero contacts
Each Spott company is billed through a Xero contact. You can link it ahead of time from the
company record, or the first time you invoice that company.
1. Open the company in Spott and click **External Links**.
2. Click the **+** next to **Xero**.
3. Pick the **Xero contact** from the dropdown.
Once linked, every invoice to that company goes to the same Xero contact, and you are not
asked again. Double-check the contact before you confirm, because the link cannot be undone
from Spott.
**Invoicing with Xero** walks through invoicing contingent, retained and contract placements,
including rate cards and timesheets, and following each invoice's status once it is in Xero.
# Invoicing with Xero
Source: https://docs.spott.io/docs/integrations/xero-invoicing
Create Xero draft invoices from contingent, retained and contract placements, including rate cards and timesheets.
You create invoices from the **placement record**. Spott sends each invoice to Xero as a
**draft**, ready for your finance team to review, approve and send from Xero.
This needs the [Xero integration](/docs/integrations/xero) connected and your pay codes
synced. Once an invoice is in Xero, its status comes back to the placement, as described under
[Track invoice status](#track-invoice-status).
## Invoice a contingent placement
1. Open the placement and click **New invoice** under **Quick Actions**, or **+ New invoice**
in the **Invoices** section.
2. **Provider:** select **Xero**.
3. **Recipient:** Spott selects the placement's company. Switch to **Contact** if you bill a
person instead.
4. **Xero contact:** the first time you invoice a company, pick its matching Xero contact and
confirm **Link**. Spott remembers the link for every future invoice to that company, so you
will not see this step again. The link cannot be undone, so double-check the contact before
you confirm.
5. Click **Next** and check the invoice details:
* **Invoice date** and **Due date**, both required.
* **Currency**, taken from the placement. Spott does not convert between currencies.
* **Line items:** choose a pay code and Spott fills in the description. Set **Units** and
**Unit cost**. For a one-off placement fee, units is usually 1 and unit cost is the
placement's total fee.
6. Click **Create**. The invoice appears in the placement's **Invoices** table with status
**Draft** and provider **Xero**.
While an invoice is a draft, you can edit it from the **⋮** menu on its row. Your changes sync
to the draft in Xero. The invoice history is kept in Xero, not in Spott.
You can also link a company to its Xero contact ahead of time, from the company's
**External Links**. See [Link companies to Xero contacts](/docs/integrations/xero#link-companies-to-xero-contacts).
## Invoice a retained search
Retained searches are invoiced **per milestone**, so you can bill each stage as it is reached.
The milestones come from the fee structure on the job, set up as described under
[retained placements](/docs/placements/placements#retained-placements).
1. Open the retained search and click **New invoice**.
2. Under **What would you like to invoice?**, tick the milestones to include, for example only
**Shortlist** for the first payment. Each shows its percentage and amount.
3. Click **Next** and continue with provider, recipient, Xero contact and line items, as for a
contingent placement.
4. Click **Create**. The draft appears under the search's **Invoices**.
## Invoice a contract placement from timesheets
For contract placements, revenue comes from the days or hours actually worked. You set up a
**rate card** once per placement, log **timesheets**, and invoice each approved timesheet.
### 1. Set up a rate card
A rate card sets what you charge the client and pay the contractor for the days and times
worked, and which pay code applies.
1. Open the contract placement and choose **Create rate card** from the **⋮** menu.
2. Pick a **Template** if your admin has created one, or fill in the fields yourself:
* **Name**, for example "Standard rates".
* **Pay code**, the Xero pay code used when you invoice.
* **Unit**, **Day** or **Hour**. If you only bill daily, use Day.
* **Currency**, **Base charge rate** (billed to the client) and **Base pay rate** (paid to
the contractor).
3. Click **Next** to add rules for rates that differ from the base, such as overtime. For each
rule, set:
* **Rule name**, for example "Overtime".
* **Applies to**, the whole day or part of the day. Part of the day takes a start and end
time and is only available on hourly rate cards.
* **Days**, for example Saturday and Sunday.
* **Pay code**, **Billable**, **Charge rate** and **Pay rate**.
4. Add more rules with **+ Add rule**, then click **Create**.
Admins can save reusable rate cards under **Settings → Templates → Rate Card Templates →
Rate Cards**. If a template leaves the charge and pay rates blank, Spott uses the rates from
the placement.
### 2. Log a timesheet
1. On the placement, choose **New timesheet** from the **⋮** menu or the **Timesheets**
section.
2. **Period:** choose **This week**, **Last week**, **Last 2 weeks**, **This month** or
**Custom**. A timesheet must fall within the placement dates and cannot overlap an existing
one.
3. Leave **Prefill the week from the working schedule** ticked to start from the placement's
normal working days and hours.
4. **Days / Hours:** adjust what was worked.
* **Daily rate cards:** toggle each day worked. Only full days are supported.
* **Hourly rate cards:** set start and end times per day. Double-click the bar to add
another block, for example evening overtime. Each color is a different rate card rule.
5. **Check:** review the total time, charge and pay per day, then click **Next** and **Save**.
### 3. Submit and approve the timesheet
A saved timesheet starts as **Draft**. From the **⋮** menu on its row, choose **Submit**, then
**Approve** once the client has signed off. You can also **Edit** or **Void** it.
### 4. Invoice the approved timesheet
1. On the approved timesheet's row, click **+ New invoice** in the **Invoice** column.
2. Confirm provider, recipient and Xero contact, as for any other invoice.
3. Spott fills in the line items from the timesheet: pay code, description, units worked and
unit cost. Lines are split by rate, so standard and overtime hours appear separately.
4. Click **Create**. The timesheet row now links to the new draft invoice.
## Track invoice status
Once an invoice is pushed to Xero, Spott keeps its **invoice number** and **status** in sync.
Each invoice's status in Spott follows its progress in Xero. Updates can take a minute or two
to appear and may need a page refresh.
| Status in Spott | What it means | Can you edit it in Spott? |
| - | - | - |
| **Draft** | Created in Spott and sent to Xero as a draft | Yes |
| **Submitted** | Submitted for approval in Xero | No, it is locked |
| **Authorised** | Approved in Xero and awaiting payment | No |
| **Paid** | Payment recorded in Xero | No |
Once an invoice leaves **Draft**, finance handles it in Xero. Changes made there, such as a
corrected tax rate or amount, do not sync back to Spott yet. Only the status and invoice
number do.
## Frequently asked
* **Can I record a payment in Spott?** No. Record payments in Xero, and Spott updates the
invoice to **Paid**.
* **The Xero contact I need is not in the list.** Create the contact in Xero first, then open
the invoice again. Creating Xero contacts from Spott is not available yet.
* **A pay code is missing.** Ask an admin to click **Sync pay codes** under
**Settings → Templates → Rate Card Templates → Pay Codes**. If it is still missing, check
that the item exists in Xero.
* **Can contractors submit their own timesheets?** Not yet. Timesheets are logged, submitted
and approved by your team in Spott.
* **Can I link more than one Xero organization?** Not yet. Support for several organizations
is coming in the next few weeks.
# Zoom
Source: https://docs.spott.io/docs/integrations/zoom
There is no Zoom integration to connect. Spott's Note Taker joins Zoom meetings through the link on your calendar invite.
**There is no Zoom integration in Spott, and nothing to connect.** You will not find
Zoom under Settings → Integrations.
What works is this: when a meeting in your connected calendar carries a **Zoom link**,
the [Note Taker](/docs/notes/note-taker) can join that meeting like any other attendee,
and it transcribes and summarizes it the same way it does for Teams and Google Meet.
So Zoom meetings do end up in Spott as notes. They arrive through your
[calendar connection](/docs/settings/accounts), not through a Zoom connection.
Two consequences worth knowing:
* **Spott never generates a Zoom link.** Scheduling an online meeting from Spott
creates a Teams or Google Meet link, depending on your primary connected account.
Paste a Zoom link into the invite yourself if that is what you want to use.
* **There is no Zoom Phone support.** Calls are covered by the
[telephony integrations](/docs/calls/phone-calls).
# LinkedIn Job Board Posts
Source: https://docs.spott.io/docs/jobs/linkedin-job-posting
Link a LinkedIn job board post to Spott and receive inbound applications from LinkedIn for review.
You can quickly navigate to the Jobs page with `G` then `J`. See all
[keyboard shortcuts](/docs/settings/keyboard-shortcuts).
## 1. Make sure you have a connected email account on Spott where you can receive LinkedIn applications
Before creating a job board posting, make sure you have a connected email account that is synced with Spott:
In Spott, go to **Settings → Accounts**.
* Find the **Outlook** or **Google** integration
* Make sure it is connected
* If it is not connected, click **Connect** and follow the login prompts
## 2. Create a Job Board post on LinkedIn
* When choosing the email on which you will receive applications, make sure to enter the email account that you connected to Spott in step 1.
* In your **LinkedIn settings**, make sure notifications for applications are turned
**on**. Spott reads the application from the mail LinkedIn sends you, so if that
notification never goes out, nothing reaches Spott.
## 3. Link your Job Board post to Spott
To link your job board advert to a Spott job:
1. Go to the **Jobs** tab
2. Open the relevant job
3. Navigate to the **Advertising** tab
4. Click **+ Connect to LinkedIn Job**
Before publishing, you must have created a **LinkedIn Recruiter Project** within LinkedIn Recruiter.
Once you start creating the posting in Spott, the LinkedIn job board settings will open.
Here you can configure:
* **Application stage**, the stage where inbound applications should be added
* **LinkedIn Project URL**, paste the URL of your LinkedIn Recruiter project
* **LinkedIn Application URL** (optional). If the job was already public, fill in the LinkedIn application URL
The project URL is the address bar of your LinkedIn Recruiter project. Open the project in
LinkedIn Recruiter and copy the URL up to and including the number:
In the example above, the URL to paste into Spott is
`https://www.linkedin.com/talent/hire/2057073842`.
The project URL has to end with the project's **number**. Copying it out of LinkedIn
Recruiter usually adds something after it, most often `/overview`, and the link will
not work until you delete that part. This is the single most common reason a LinkedIn
posting does not connect.
Once the job board posting is published, any [inbound application](/docs/jobs/inbound-applications) from the LinkedIn job posting will be automatically added to your Spott candidate database. These details are parsed from the email sent by LinkedIn. This is why we need the email you receive applications on to be synced with Spott.
Spott can only read an application that arrives **with a CV attached**, and the file
has to carry a file type. An application without a CV, or with an attachment that has
no extension, cannot be parsed into a candidate.
# Mobile App
Source: https://docs.spott.io/docs/mobile/overview
The Spott app for iOS and Android: search your database, read meetings and transcripts, manage tasks, add candidates from a document you photograph, and capture notes on the go.
The **Spott mobile app** puts search, meetings, notes, tasks, and candidate creation in
your pocket. It is a focused companion to the desktop platform, not a full mobile version
of it, built for the few things you actually need on the go.
Spott on the App Store
Spott on Google Play
## What you can do
* **Search everything, instantly.** Find candidates, contacts, jobs, and notes in
seconds, wherever you are.
* **Catch up on meetings.** The meetings the Note Taker joined bring their details,
transcript, and summary to the phone, and play back their video recording when one was
made, so the debrief from this morning happens between appointments rather than back at
the desk. See [meetings and transcripts](#meetings-transcripts-and-recordings) below.
* **Read and update candidates and contacts.** Open a record and change the details that
go stale between meetings, without waiting for a laptop. See
[working on a record](#working-on-a-record) below.
* **Keep tasks moving.** Every record has a Tasks tab where you can add, edit, and tick
off follow-ups.
* **Add a candidate from a document.** Upload a file from your phone, or photograph one
on the spot, and Spott parses it into a candidate. See
[creating candidates from your phone](#create-a-candidate-from-your-phone) below.
* **Capture notes on the go.** Create and edit notes in real time so you and your team
stay aligned.
* **Record in-person meetings.** Meeting someone face to face? Record the conversation
in the app. It runs through the same pipeline as the desktop
[Note Taker](/docs/notes/note-taker): Spott transcribes it, summarizes it, and creates
a note. On the phone you get the summary; the transcript waits for you in the web app.
See [recording a meeting in person](#recording-a-meeting-in-person) below.
In-person recordings have no automatic way to know who you met. Unlike the online Note
Taker (which identifies attendees by email) or recorded calls (which match by phone
number), **you have to manually tag the relevant candidates or contacts** on the
resulting note. Skip this and the note stays in your workspace but never appears on
anyone's profile.
The app speaks the language you chose in Spott, not the language of your phone. It
follows the **Display Language** in your personal
[preferences](/docs/settings/preferences) on the web app, and there is no language setting
inside the app itself. To change it, change it on the web and the app follows.
## Meetings, transcripts and recordings
The **Meetings** screen lists what you have had and what is coming, with a **Calendar**
tab beside it for the schedule view. Open one to read its transcript and summary.
Meetings the [Note Taker](/docs/notes/note-taker) joined come through in full: the meeting
details, the transcript, and the summary are all on the phone. When the meeting was
**recorded on video**, you can play that recording back in the app too. Without video
recording you still get the details, the transcript, and the summary, only no player.
### Recording a meeting in person
Record a conversation you are having face to face and Spott transcribes it, summarizes it,
and files the summary as a note titled **Audio Recording Summary**, so the meeting is
written up without you taking notes while the other person is talking. On the phone you
find it under **Notes**, on the record you tagged.
The full transcript is in the **web app**. Open the note there and its **Properties** panel
links to the recording it came from, marked **In-person**, holding everything that was
said.
In the mobile app an in-person recording is the note only: no transcript and no audio
playback.
## Working on a record
Open a candidate or a contact and you get three tabs:
* **Overview**, the details on the record, which you can edit from the phone.
* **Notes**, everything written about them, where you can add another.
* **Tasks**, the follow-ups linked to this record.
There is **no workspace-wide task list** in the app the way there is on
[desktop](/docs/tasks/tasks). Tasks are reached through the record they belong to, which
suits the phone: you are usually looking someone up, and the follow-up comes out of that.
The **+** button in the top right adds a task. Give it a description, assign it to
yourself or a colleague, and link it to the record you came from.
Editing on the phone covers **candidates and contacts**. Companies and jobs are
readable, but the record you change on the go is a person.
## Create a candidate from your phone
Meeting someone at a job fair, handed a printed CV, or looking at an ID card across a
desk? You can turn that document into a candidate record without waiting until you are
back at a laptop.
In the app, **upload a file from your phone or capture one with the camera**. Spott runs
it through the same [CV parsing flow](/docs/candidates/adding-candidates#upload-a-cv-drag-and-drop)
as a desktop upload, reads the details out of the document, and creates the candidate
from them. Printed CVs, ID cards, and other candidate documents all work, because the
parser accepts photographs and image files as well as PDF and DOCX.
File upload needs **version 1.30 or above** of the app, on iOS and Android. If you do
not see the option, update from the App Store or Google Play.
Photograph the whole page, flat and in good light. The parser reads the text out of the
image, so a sharp photo of the entire CV gives you a fuller profile than a close crop of
the top half.
## What the app is not
The mobile app is **not a phone-call recorder**. It cannot:
* Record an actual phone call.
* Tap into WhatsApp, FaceTime, or any other voice line.
* Merge with or listen in on your device's phone calls.
This is a hard technical limit: voice lines on a phone run as separate processes, and one
app cannot listen to another. For actual call recording, use Spott's
[telephony integrations](/docs/integrations/overview) and
[phone calls in Spott](/docs/calls/phone-calls).
# FAQ
Source: https://docs.spott.io/docs/onboarding/faq
The questions that come up most during onboarding, and where to look when you have more.
In this section you find answers to the questions our team hears most from new workspaces:
access and roles, your own settings, getting data in, and credits. Anything not here is
either in the main FAQ or in the troubleshooting guide.
1. [Getting started, roles, and access](#1-getting-started-roles-and-access)
2. [Your account and settings](#2-your-account-and-settings)
3. [Getting your data in](#3-getting-your-data-in)
4. [Credits and billing](#4-credits-and-billing)
5. [Still have a question?](#5-still-have-a-question)
If something is **broken** rather than unclear, start with
[Troubleshooting](/docs/onboarding/troubleshooting). This page answers "how does this
work", not "why isn't this working".
## 1. Getting started, roles, and access
Most of your own setup needs no special permission. The areas that do are
workspace-wide: branding, stages, labels, the data model, features, templates,
automations, integrations, sending domains, roles and users, and billing. If a tab is
missing from your settings sidebar, your role does not have access to it.
Yes, for anything personal. Preferences, profile, notifications, connected accounts,
email sharing level, signature, Note Taker preference, and scheduling links are all
per user, and no one can set them on someone else's behalf. Admins set up the
workspace once, for everybody.
Removing a user deactivates them rather than deleting the account, so their historical
activity stays attributed to them. Their notes, emails, and placements do not become
orphaned.
Yes. Roles are edited straight from the row on the **Users** tab, and a member can
hold several at once, for example **Team lead** alongside **Admin**.
Both are ways of grouping users. The practical value is in filtering and reporting:
anywhere you can filter by user, you can filter by team, so dashboards and reports can
be read per desk rather than only per person.
Log in the first time via your invite link and create a password. From then on you can
sign in with Microsoft or Google.
Roles, permissions, and workspace-wide MFA.
Offices and teams, and where you can filter by them.
## 2. Your account and settings
Two per user, using **Connect a second Microsoft account** or **Connect a second
Google account** on the Accounts page. The same address cannot be connected twice, and
it cannot be connected through both Google and Microsoft at the same time.
Because each person sets their own sharing level under **Settings → Accounts**:
metadata only, subject line and metadata, or full access. It is a personal setting, so
only the mailbox owner can change it, admins included. WhatsApp conversations are
always private to the connected user.
No. An attribute's type is fixed once it is created, so decide whether something is
text, a number, a date, or a select list before you create it. Renaming is always
safe.
No. Day-to-day email from your connected mailbox needs nothing extra. A verified
sending domain is required for marketing campaigns and for emails sent from
automations, and it protects your deliverability.
You can switch off your own automatic joining, under **Settings → Calls**. That does
not stop the bot appearing altogether: if another workspace colleague on the invite
has it enabled, it still joins. For a meeting you need kept private, remove the bot
from the calendar card.
Under **Settings → Preferences**. Everything there is personal to you: currency,
country code, AI language, distance unit, time zone, date and time formats, display
language, theme, and the tab you land on when opening a record.
Send a blank email to [signatures@spott.io](mailto:signatures@spott.io) from your
connected address. The signature appears under **Settings → Accounts** within two
minutes, and you tick the checkbox to make one the default.
Every preference field, explained.
Email, calendar, and messaging connections.
## 3. Getting your data in
Up to **1,000 records** per CSV or Excel import, and up to **1,000 CVs** in one bulk
upload. Above 20 CVs there is no preview step, so the records are created directly.
No. There is no CSV route for jobs. You create them manually, import one from a public
posting URL, or use the browser extension on a live vacancy page. A back catalogue of
jobs comes across through a managed migration.
Not yourself. Applications, notes and files on existing records, placements, and
activity history all come across through a managed migration run by our team.
No. An import creates records; it does not update them. Where a row matches an
existing profile, that person is added to the job or list without their data being
overwritten. To refresh a profile, use a new CV, a self-service update link, or a
LinkedIn refresh.
No. Whenever a row has a company on it, Spott matches it to an existing company or
creates a new company record and links the person to it. One clean contact file gives
you contacts, companies, and the links between them.
Custom fields cannot be mapped in the import wizard, because the dropdown offers standard
fields only. Set them on the records afterwards, or use an AI-filled column where the
value can be derived from the CV or profile.
In a managed migration your data goes first into a separate validation environment,
where you review it with our team to confirm everything came across correctly. Only
once you are happy does it reach your live workspace, so you sign off before your team
starts working in it.
Every mappable column, and how matching works.
What our team moves, and the validation step.
## 4. Credits and billing
Credits are pooled at workspace level, so the balance you see is shared across your
whole team rather than held per user.
AI actions. Enrichment is the main consumer, followed by auto-updating profiles. The
**Credit costs** list on the Billing page shows how many credits each action uses.
No. Credits are only deducted when enrichment succeeds.
Billing is an admin area. If it is not in your settings sidebar, your role does not
have access to it.
A monthly subscription gives you discounted credits, and one-time purchases cover a
spike. Check the **Credit costs** list against how heavily you plan to use enrichment
and auto-updating profiles before deciding.
Seats, credits, and topping up.
What enrichment finds, and what each lookup costs.
## 5. Still have a question?
Everything our support team gets asked most, from syncing and enrichment to campaigns
and the Note Taker.
Something broken rather than unclear? Start here.
Candidates, jobs, companies, communication, and settings.
How to reach the team, and what to include.
How to reach the team, and what to include.
# Getting support
Source: https://docs.spott.io/docs/onboarding/support
Where to find answers in the documentation, and how to reach the Spott team.
## 1. Start with the documentation
To find answers to your questions, this documentation site is a great place to start.
Articles are organized per topic, and you will find step-by-step guides on how to perform
most actions in Spott.
Candidates, jobs, companies, communication, and settings.
The questions we get asked most often.
## 2. Reach out from inside Spott
If you cannot find what you are looking for, reach out directly in the tool by clicking
the bubble icon in the bottom right corner.
From there you can either:
* Type your question in the **AI search bar** for an immediate answer, or
* **Start a new chat** with us.
This is not a live chat. Starting a chat creates a ticket in our system, and a member of
the team will be in touch as soon as possible.
## 3. Ask for a feature
Ideas belong on the **roadmap portal** at
[roadmap.spott.io/request](https://roadmap.spott.io/request), which is also reachable from
the support bubble. A request logged there is visible to the product team and to other
customers, so it can gather support, which a request buried in a support thread cannot.
Raise one when the answer you get is "not possible today". Support will often log it for
you, but posting it yourself means you can describe the use case in your own words, which
is what decides how it is prioritized.
## 4. Other ways to reach us
[support@spott.io](mailto:support@spott.io)
New features, shipped every week.
# Get job portal branding
Source: https://docs.spott.io/public-api/job-portal/get-job-portal-branding
/api-reference/openapi-public.json get /{publicTenantSlug}/vacancy-portal/branding
Get the branding for the job portal.
# Get posted job details
Source: https://docs.spott.io/public-api/job-portal/get-posted-job-details
/api-reference/openapi-public.json get /{publicTenantSlug}/vacancy-portal/jobs/{jobBoardPostingId}
Get details on an single publicly posted job for a tenant.
# Get posted jobs
Source: https://docs.spott.io/public-api/job-portal/get-posted-jobs
/api-reference/openapi-public.json get /{publicTenantSlug}/vacancy-portal/jobs
Get all publicly posted jobs for a tenant.
# Bulk create candidates
Source: https://docs.spott.io/api-reference/candidates/bulk-create-candidates
/api-reference/openapi.json post /candidates/_bulk
Create up to 10 candidates in one request. The whole request is applied in a single transaction: if any item is rejected, no candidates are created and the batch must be retried in full. Unlike the single candidate endpoint, `acquisitionSource` is not settable here: it is ignored when sent and every candidate is recorded as `manual`. This endpoint is rate limited to 50 requests per hour per tenant, and returns 429 once that limit is reached.
# Bulk create candidates from CV
Source: https://docs.spott.io/api-reference/candidates/bulk-create-candidates-from-cv
/api-reference/openapi.json post /candidates/_from-unsupervised-cv/_bulk
Automatically create multiple candidates from uploaded CV files without human review.
**Process:**
- Upload 1-20 CV files (PDF or DOCX format)
- AI automatically extracts candidate information
- Failed CV parsing is silently skipped
- Returns the count of successfully created candidates
**Supported Formats:**
- PDF (.pdf)
- Microsoft Word (.docx)
**Limitations:**
- Maximum 20 files per request
- Maximum 10MB per file
- Duplicate candidates (by email/phone/LinkedIn) trigger an automatic CV diff instead of creating duplicates
# Create candidate from CV
Source: https://docs.spott.io/api-reference/candidates/create-candidate-from-cv
/api-reference/openapi.json post /candidates/_from-unsupervised-cv
Automatically create a candidate from a single uploaded CV file without human review.
**Process:**
- Upload 1 CV file (PDF or DOCX format)
- AI automatically extracts candidate information (name, contact details, work experience, education, etc.)
- Returns the created candidate's unique ID
**Duplicate Detection:**
- If a candidate with the same email, phone number, or LinkedIn URL already exists:
- The existing candidate ID is returned
- An automatic CV diff is triggered in the background to update the existing candidate
- No duplicate candidate is created
**Supported Formats:**
- PDF (.pdf)
- Microsoft Word (.docx)
**Limitations:**
- Exactly 1 file per request (use /from-cv/unsupervised/_bulk for multiple files)
- Maximum 10MB per file
- CV must contain extractable text (scanned images may fail unless they contain OCR text)
# Create certification
Source: https://docs.spott.io/api-reference/candidates/create-certification
/api-reference/openapi.json post /candidates/{id}/certifications
Create a new certification record for a specific candidate.
# Create contact identifier
Source: https://docs.spott.io/api-reference/candidates/create-contact-identifier
/api-reference/openapi.json post /candidates/{id}/contact-identifiers
Create a new contact identifier (email, phone number, LinkedIn URL) for a specific candidate.
# Create education
Source: https://docs.spott.io/api-reference/candidates/create-education
/api-reference/openapi.json post /candidates/{id}/education
Create a new education record for a specific candidate.
# Create work experience
Source: https://docs.spott.io/api-reference/candidates/create-work-experience
/api-reference/openapi.json post /candidates/{id}/work-experiences
Create a new work experience record for a specific candidate.
# Delete a candidate
Source: https://docs.spott.io/api-reference/candidates/delete-a-candidate
/api-reference/openapi.json delete /candidates/{id}
Deletes the candidate with the specified ID.
# Delete certification
Source: https://docs.spott.io/api-reference/candidates/delete-certification
/api-reference/openapi.json delete /candidates/certifications/{id}
Delete a certification record.
# Delete education
Source: https://docs.spott.io/api-reference/candidates/delete-education
/api-reference/openapi.json delete /candidates/education/{educationId}
Delete an education record.
# Delete work experience
Source: https://docs.spott.io/api-reference/candidates/delete-work-experience
/api-reference/openapi.json delete /candidates/work-experiences/{workExperienceId}
Delete a work experience record.
# Get certifications
Source: https://docs.spott.io/api-reference/candidates/get-certifications
/api-reference/openapi.json get /candidates/{id}/certifications
Retrieve all certification records for a specific candidate.
# Get contact identifiers
Source: https://docs.spott.io/api-reference/candidates/get-contact-identifiers
/api-reference/openapi.json get /candidates/{id}/contact-identifiers
Retrieve all contact identifiers (emails, phone numbers, LinkedIn URL) for a specific candidate. If the candidate is linked to any client contacts, their contact identifiers will also be included in the response.
# Get education
Source: https://docs.spott.io/api-reference/candidates/get-education
/api-reference/openapi.json get /candidates/{id}/education
Retrieve all education records for a specific candidate including degrees, institutions, and graduation dates.
# Get work experiences
Source: https://docs.spott.io/api-reference/candidates/get-work-experiences
/api-reference/openapi.json get /candidates/{id}/work-experiences
Retrieve all work experiences for a specific candidate including job titles, companies, dates, and experience statistics.
# Replace certifications
Source: https://docs.spott.io/api-reference/candidates/replace-certifications
/api-reference/openapi.json put /candidates/{id}/certifications
Replace all certification records for a specific candidate.
# Replace education
Source: https://docs.spott.io/api-reference/candidates/replace-education
/api-reference/openapi.json put /candidates/{id}/education
Replace all education records for a specific candidate.
# Replace work experiences
Source: https://docs.spott.io/api-reference/candidates/replace-work-experiences
/api-reference/openapi.json put /candidates/{id}/work-experiences
Replace all work experience records for a specific candidate.
# Retrieve a candidate
Source: https://docs.spott.io/api-reference/candidates/retrieve-a-candidate
/api-reference/openapi.json get /candidates/{id}
Retrieves the candidate with the specified ID. Includes personal details, contact information, and any linked client contacts.
# Search candidates
Source: https://docs.spott.io/api-reference/candidates/search-candidates
/api-reference/openapi.json post /candidates/_search
Retrieve a paginated list of candidates filtered by supported predefined candidate fields and candidate custom attributes.
# Update a candidate
Source: https://docs.spott.io/api-reference/candidates/update-a-candidate
/api-reference/openapi.json patch /candidates/{id}
Updates the candidate with the specified ID. Only provided fields are updated. You can update personal details, contact information, and other candidate attributes.
# Update candidate avatar
Source: https://docs.spott.io/api-reference/candidates/update-candidate-avatar
/api-reference/openapi.json patch /candidates/{id}/avatar
Update a candidate's avatar from an uploaded image file.
# Update certification
Source: https://docs.spott.io/api-reference/candidates/update-certification
/api-reference/openapi.json put /candidates/certifications/{id}
Update an existing certification record.
# Update education
Source: https://docs.spott.io/api-reference/candidates/update-education
/api-reference/openapi.json put /candidates/education/{educationId}
Update an existing education record.
# Update work experience
Source: https://docs.spott.io/api-reference/candidates/update-work-experience
/api-reference/openapi.json put /candidates/work-experiences/{workExperienceId}
Update an existing work experience record.
# Link client contacts to a list
Source: https://docs.spott.io/api-reference/client-contact-lists/link-client-contacts-to-a-list
/api-reference/openapi.json post /lists/{id}/client-contacts/_link
Link a set of client contacts to a specific client contact list. Specify client contact IDs to add to the list.
# Unlink client contacts from a list
Source: https://docs.spott.io/api-reference/client-contact-lists/unlink-client-contacts-from-a-list
/api-reference/openapi.json post /lists/{id}/client-contacts/_unlink
Unlink a set of client contacts from a specific client contact list. Specify client contact IDs to remove from the list.
# Bulk create client contacts
Source: https://docs.spott.io/api-reference/client-contacts/bulk-create-client-contacts
/api-reference/openapi.json post /clients/contacts/_bulk
Create up to 10 client contacts in one request. Each item carries its own clientId, so a single batch can target several clients. The batch is all-or-nothing: if any item is rejected, no client contacts are created and the batch must be retried in full. Results are returned in request order. This endpoint is rate limited to 50 requests per hour per tenant, and returns 429 once that limit is reached.
# Create client contact
Source: https://docs.spott.io/api-reference/client-contacts/create-client-contact
/api-reference/openapi.json post /clients/contacts/{clientId}
Create a new client contact for a specific client and create the linked candidate record. Includes personal information such as name, emails, phone numbers, role, department, and custom attribute values, which are stored on the client contact.
# Delete client contact
Source: https://docs.spott.io/api-reference/client-contacts/delete-client-contact
/api-reference/openapi.json delete /clients/contacts/{id}
Delete a client contact. The linked candidate record is kept; only the contact link to the client is removed.
# Get client contact by candidate ID
Source: https://docs.spott.io/api-reference/client-contacts/get-client-contact-by-candidate-id
/api-reference/openapi.json get /clients/contacts/{candidateId}
Retrieve detailed information about a Contact including their personal details, company associations, contact information, interaction history, and custom attributes.
# Get client contacts
Source: https://docs.spott.io/api-reference/client-contacts/get-client-contacts
/api-reference/openapi.json get /clients/contacts
Returns a list of client contacts. Uses cursor pagination.
# Update client contact
Source: https://docs.spott.io/api-reference/client-contacts/update-client-contact
/api-reference/openapi.json patch /clients/contacts/{id}
Update an existing client contact. All fields are optional - only provided fields will be updated.
# Retrieve a client hierarchy
Source: https://docs.spott.io/api-reference/client-hierarchies/retrieve-a-client-hierarchy
/api-reference/openapi.json get /clients/hierarchies/{hierarchyId}
Retrieves the client hierarchy with the specified ID. Returns the full hierarchy tree rooted at the requested hierarchy ID, including each client in the tree and its relation to its parent.
# Link clients to a list
Source: https://docs.spott.io/api-reference/client-lists/link-clients-to-a-list
/api-reference/openapi.json post /lists/{id}/clients/_link
Link a set of clients to a specific client list. Specify client IDs to add to the list.
# Unlink clients from a list
Source: https://docs.spott.io/api-reference/client-lists/unlink-clients-from-a-list
/api-reference/openapi.json post /lists/{id}/clients/_unlink
Unlink a set of clients from a specific client list. Specify client IDs to remove from the list.
# Bulk create clients
Source: https://docs.spott.io/api-reference/clients/bulk-create-clients
/api-reference/openapi.json post /clients/_bulk
Create up to 50 clients in one request. The whole request is applied in a single transaction: if any item is rejected, no clients are created and the batch must be retried in full. This endpoint is rate limited to 50 requests per hour per tenant, and returns 429 once that limit is reached.
# Create a client
Source: https://docs.spott.io/api-reference/clients/create-a-client
/api-reference/openapi.json post /clients
Creates a new client. Includes company information such as name, description, industry, size, location details, and tax identifiers such as VAT numbers. Tax identifier values are normalized (whitespace, dots and dashes removed, uppercased) before being stored. Normalized values must be unique within the list, otherwise the request is rejected with 400, and unique across all clients, otherwise the request is rejected with 409.
# Delete a client
Source: https://docs.spott.io/api-reference/clients/delete-a-client
/api-reference/openapi.json delete /clients/{id}
Deletes the client with the specified ID. The underlying company is not deleted. Only the client record and client-owned relations are removed.
# Get client pipeline stages
Source: https://docs.spott.io/api-reference/clients/get-client-pipeline-stages
/api-reference/openapi.json get /pipeline/clients/stages
Retrieve all pipeline stages configured for clients.
# List clients
Source: https://docs.spott.io/api-reference/clients/list-clients
/api-reference/openapi.json get /clients
Returns a list of clients. Uses cursor pagination.
# List credit reports
Source: https://docs.spott.io/api-reference/clients/list-credit-reports
/api-reference/openapi.json get /clients/{clientId}/credit-reports
Returns a list of credit reports. Scoped to the specified client and ordered newest first. Uses cursor pagination.
# Retrieve a client
Source: https://docs.spott.io/api-reference/clients/retrieve-a-client
/api-reference/openapi.json get /clients/{id}
Retrieves the client with the specified ID. Includes company details, contacts, industry, size, funding, locations, hierarchies, and custom attributes.
# Retrieve a credit report
Source: https://docs.spott.io/api-reference/clients/retrieve-a-credit-report
/api-reference/openapi.json get /clients/credit-reports/{reportId}
Retrieves the credit report with the specified ID. Includes the credit check decision and the client it belongs to.
# Search clients
Source: https://docs.spott.io/api-reference/clients/search-clients
/api-reference/openapi.json post /clients/_search
Returns a list of clients that match the provided filters. Supports a flexible filter set and returns paginated results with basic client information.
# Update a client
Source: https://docs.spott.io/api-reference/clients/update-a-client
/api-reference/openapi.json patch /clients/{id}
Updates the client with the specified ID. Client-level fields update the client record. Company-level fields nested under `company` update the underlying company and are rejected with 403 when the client is linked to a global company. `locations` and `taxIdentifiers` each replace their full list: omit a field to leave it unchanged, or send an empty array to remove all entries. Tax identifier values are normalized (whitespace, dots and dashes removed, uppercased) before being stored. Normalized values must be unique within the list, otherwise the request is rejected with 400, and unique across all clients, otherwise the request is rejected with 409.
# Delete a company
Source: https://docs.spott.io/api-reference/companies/delete-a-company
/api-reference/openapi.json delete /companies/{id}
Deletes the company with the specified ID. Only tenant-owned companies can be deleted. Global companies are shared across tenants and cannot be removed.
# Search companies
Source: https://docs.spott.io/api-reference/companies/search-companies
/api-reference/openapi.json post /companies/_search
Returns a list of companies that match the provided filters. Supports a flexible filter set and returns paginated results with company details.
# Update a company
Source: https://docs.spott.io/api-reference/companies/update-a-company
/api-reference/openapi.json patch /companies/{id}
Updates the company with the specified ID. Only tenant-owned companies can be updated. Global companies are shared across tenants and cannot be changed.
# Update company logo
Source: https://docs.spott.io/api-reference/companies/update-company-logo
/api-reference/openapi.json patch /companies/{id}/logo
Updates the logo for a tenant-owned company. Global companies cannot be updated.
# Create consent
Source: https://docs.spott.io/api-reference/consents/create-consent
/api-reference/openapi.json post /consents
Create a new consent record for a candidate. Requires consent details including purpose, legal basis, and validity period.
# Delete consent
Source: https://docs.spott.io/api-reference/consents/delete-consent
/api-reference/openapi.json delete /consents/{consentId}
Delete a consent record by its ID.
# Get consents
Source: https://docs.spott.io/api-reference/consents/get-consents
/api-reference/openapi.json get /consents
Retrieve the latest consent per purpose for a given candidate. Returns all active consents associated with the candidate ID.
# Update consent
Source: https://docs.spott.io/api-reference/consents/update-consent
/api-reference/openapi.json patch /consents/{consentId}
Partially update an existing consent record. Only the provided fields will be updated.
# Bulk update application custom attribute values
Source: https://docs.spott.io/api-reference/custom-attributes/bulk-update-application-custom-attribute-values
/api-reference/openapi.json put /custom-attributes/applications/values/_bulk
Update one application custom attribute for multiple applications. Provide the attribute definition ID once and one value per application ID.
# Bulk update client custom attribute values
Source: https://docs.spott.io/api-reference/custom-attributes/bulk-update-client-custom-attribute-values
/api-reference/openapi.json put /custom-attributes/clients/values/_bulk
Update one client custom attribute for multiple clients. Provide the attribute definition ID once and one value per client company ID (items[].id). All clients must be accessible; the batch is atomic.
# Bulk update vacancy custom attribute values
Source: https://docs.spott.io/api-reference/custom-attributes/bulk-update-vacancy-custom-attribute-values
/api-reference/openapi.json put /custom-attributes/vacancies/values/_bulk
Update one vacancy custom attribute for multiple vacancies. Provide the attribute definition ID once and one value per vacancy ID (items[].id). All vacancies must be accessible; the batch is atomic.
# List application custom attribute definitions
Source: https://docs.spott.io/api-reference/custom-attributes/list-application-custom-attribute-definitions
/api-reference/openapi.json get /custom-attributes/application/definitions
Returns a list of application custom attribute definitions. Custom attributes allow you to store additional structured data on application records.
# List attachment custom attribute definitions
Source: https://docs.spott.io/api-reference/custom-attributes/list-attachment-custom-attribute-definitions
/api-reference/openapi.json get /custom-attributes/attachment/definitions
Returns a list of attachment custom attribute definitions. Each item lists the attachment types it is selected on, so you can tell which attributes apply to an attachment of a given type.
# List candidate custom attribute definitions
Source: https://docs.spott.io/api-reference/custom-attributes/list-candidate-custom-attribute-definitions
/api-reference/openapi.json get /custom-attributes/candidate/definitions
Returns a list of candidate custom attribute definitions. Custom attributes allow you to store additional structured data on candidate records.
# List client custom attribute definitions
Source: https://docs.spott.io/api-reference/custom-attributes/list-client-custom-attribute-definitions
/api-reference/openapi.json get /custom-attributes/client/definitions
Returns a list of client custom attribute definitions. Custom attributes allow you to store additional structured data on client records.
# List contact custom attribute definitions
Source: https://docs.spott.io/api-reference/custom-attributes/list-contact-custom-attribute-definitions
/api-reference/openapi.json get /custom-attributes/client-contact/definitions
Returns a list of contact custom attribute definitions. Custom attributes allow you to store additional structured data on contact records.
# List job custom attribute definitions
Source: https://docs.spott.io/api-reference/custom-attributes/list-job-custom-attribute-definitions
/api-reference/openapi.json get /custom-attributes/vacancy/definitions
Returns a list of job custom attribute definitions. Custom attributes allow you to store additional structured data on job records.
# List placement custom attribute definitions
Source: https://docs.spott.io/api-reference/custom-attributes/list-placement-custom-attribute-definitions
/api-reference/openapi.json get /custom-attributes/placement/definitions
Returns a list of placement custom attribute definitions. Placement attribute definitions are scoped to a placement template. Each item includes its templateId, and the list can be narrowed to a single template with the optional templateId query parameter.
# Retrieve a candidate custom attribute definition
Source: https://docs.spott.io/api-reference/custom-attributes/retrieve-a-candidate-custom-attribute-definition
/api-reference/openapi.json get /custom-attributes/candidate/definitions/{id}
Retrieves the candidate custom attribute definition with the specified ID.
# Retrieve a client custom attribute definition
Source: https://docs.spott.io/api-reference/custom-attributes/retrieve-a-client-custom-attribute-definition
/api-reference/openapi.json get /custom-attributes/client/definitions/{id}
Retrieves the client custom attribute definition with the specified ID.
# Retrieve a contact custom attribute definition
Source: https://docs.spott.io/api-reference/custom-attributes/retrieve-a-contact-custom-attribute-definition
/api-reference/openapi.json get /custom-attributes/client-contact/definitions/{id}
Retrieves the contact custom attribute definition with the specified ID.
# Retrieve a job custom attribute definition
Source: https://docs.spott.io/api-reference/custom-attributes/retrieve-a-job-custom-attribute-definition
/api-reference/openapi.json get /custom-attributes/vacancy/definitions/{id}
Retrieves the job custom attribute definition with the specified ID.
# Retrieve a placement custom attribute definition
Source: https://docs.spott.io/api-reference/custom-attributes/retrieve-a-placement-custom-attribute-definition
/api-reference/openapi.json get /custom-attributes/placement/definitions/{id}
Retrieves the placement custom attribute definition with the specified ID.
# Retrieve an application custom attribute definition
Source: https://docs.spott.io/api-reference/custom-attributes/retrieve-an-application-custom-attribute-definition
/api-reference/openapi.json get /custom-attributes/application/definitions/{id}
Retrieves the application custom attribute definition with the specified ID.
# Update custom attribute values for a candidate
Source: https://docs.spott.io/api-reference/custom-attributes/update-custom-attribute-values-for-a-candidate
/api-reference/openapi.json put /custom-attributes/candidates/{id}/values/_bulk
Update one or more custom attribute values for a specific candidate. Provide an array of attribute definition IDs and their new values.
# Update custom attribute values for a client
Source: https://docs.spott.io/api-reference/custom-attributes/update-custom-attribute-values-for-a-client
/api-reference/openapi.json put /custom-attributes/clients/{id}/values/_bulk
Update one or more custom attribute values for a specific client. Provide an array of attribute definition IDs and their new values.
# Update custom attribute values for a contact
Source: https://docs.spott.io/api-reference/custom-attributes/update-custom-attribute-values-for-a-contact
/api-reference/openapi.json put /custom-attributes/client-contacts/{id}/values/_bulk
Update one or more custom attribute values for a specific contact. Provide an array of attribute definition IDs and their new values.
# Update custom attribute values for a job
Source: https://docs.spott.io/api-reference/custom-attributes/update-custom-attribute-values-for-a-job
/api-reference/openapi.json put /custom-attributes/vacancies/{id}/values/_bulk
Update one or more custom attribute values for a specific job. Provide an array of attribute definition IDs and their new values.
# Update custom attribute values for an application
Source: https://docs.spott.io/api-reference/custom-attributes/update-custom-attribute-values-for-an-application
/api-reference/openapi.json put /custom-attributes/applications/{id}/values/_bulk
Update one or more custom attribute values for a specific application. Provide an array of attribute definition IDs and their new values.
# Update custom attribute values for an attachment
Source: https://docs.spott.io/api-reference/custom-attributes/update-custom-attribute-values-for-an-attachment
/api-reference/openapi.json put /custom-attributes/attachments/{id}/values/_bulk
Update one or more custom attribute values for a specific attachment. Provide an array of attribute definition IDs and their new values.
# Create enrichments
Source: https://docs.spott.io/api-reference/enrichments/create-enrichments
/api-reference/openapi.json post /enrichments/_bulk
Starts asynchronous candidate enrichments for the provided candidates.
# Create job board posting
Source: https://docs.spott.io/api-reference/job-boards/create-job-board-posting
/api-reference/openapi.json post /job-boards
Create and publish a job board posting for a job. The job must have non-empty job description content before it can be published. Optionally provide `jobDescriptionId` to select which job description the posting uses; when omitted the oldest job description of the vacancy is selected. Optionally provide `targetStageId` to choose the stage inbound applications land in; when omitted the default application stage of the job's track is used, falling back to the first stage of that track when no default is configured.
# Get job board postings for vacancy
Source: https://docs.spott.io/api-reference/job-boards/get-job-board-postings-for-vacancy
/api-reference/openapi.json get /job-boards/{vacancyId}
Get job board postings for a vacancy in the API key tenant. Optionally filter by `jobBoardProvider`, `jobDescriptionId`, or `language`.
# Update job board posting
Source: https://docs.spott.io/api-reference/job-boards/update-job-board-posting
/api-reference/openapi.json patch /job-boards/postings/{jobBoardPostingId}
Update a job board posting. Set status to PUBLISHED to publish or reopen, or CLOSED to close it.
# Create a job description
Source: https://docs.spott.io/api-reference/job-descriptions/create-a-job-description
/api-reference/openapi.json post /job-descriptions
Create a job description for a job in a specific language and content format. Defaults to the workspace default job description language and FREEFORM when omitted. Fails if a job description already exists for that job and language.
# Delete job description
Source: https://docs.spott.io/api-reference/job-descriptions/delete-job-description
/api-reference/openapi.json delete /job-descriptions/{id}
Delete a job description if the associated job has no published job board posting.
# Get a job description
Source: https://docs.spott.io/api-reference/job-descriptions/get-a-job-description
/api-reference/openapi.json get /job-descriptions/{id}
Retrieve a single job description by its id.
# Get job description for job
Source: https://docs.spott.io/api-reference/job-descriptions/get-job-description-for-job
/api-reference/openapi.json get /job-descriptions/vacancy/{id}
Deprecated: returns only the default (oldest) job description for a job. Use GET /job-descriptions?vacancyId= to list every job description and GET /job-descriptions/:id to fetch a specific one.
# List job descriptions for a job
Source: https://docs.spott.io/api-reference/job-descriptions/list-job-descriptions-for-a-job
/api-reference/openapi.json get /job-descriptions
List the job descriptions for a job.
# Patch job description
Source: https://docs.spott.io/api-reference/job-descriptions/patch-job-description
/api-reference/openapi.json patch /job-descriptions/{id}
Partially update a single job description. Any subset of the external job title, content, blocks and language may be provided; omitted fields are left unchanged. Content is only accepted for FREEFORM job descriptions and blocks only for STRUCTURED ones. Changing the language fails if another job description already exists for that job and language.
# Update job description
Source: https://docs.spott.io/api-reference/job-descriptions/update-job-description
/api-reference/openapi.json put /job-descriptions/{id}
Update the job description for a specific job. Allows setting the external job title and the description content.
# Submit job posting application
Source: https://docs.spott.io/api-reference/job-portal/submit-job-posting-application
/api-reference/openapi.json post /vacancy-portal/jobs/{jobBoardPostingId}
Submit an application for a publicly posted job through the vacancy portal.
# Create a job
Source: https://docs.spott.io/api-reference/jobs/create-a-job
/api-reference/openapi.json post /vacancies
Creates a new job. Requires a company ID and job details such as status, title, and description.
# Get job pipeline stages
Source: https://docs.spott.io/api-reference/jobs/get-job-pipeline-stages
/api-reference/openapi.json get /pipeline/vacancies/stages
Retrieve a list of all pipeline stages configured for jobs. Each stage represents a step in the hiring workflow (e.g., Applied, Screening, Interview, Offer).
# List jobs
Source: https://docs.spott.io/api-reference/jobs/list-jobs
/api-reference/openapi.json get /vacancies
Returns a list of jobs. Uses cursor pagination.
# Retrieve a job
Source: https://docs.spott.io/api-reference/jobs/retrieve-a-job
/api-reference/openapi.json get /vacancies/{id}
Retrieves the job with the specified ID. Includes custom attributes, job details, and metadata.
# Search jobs
Source: https://docs.spott.io/api-reference/jobs/search-jobs
/api-reference/openapi.json post /vacancies/_search
Returns a list of jobs that match the provided filters. Supports a flexible filter set and returns paginated results with full job details.
# Update a job
Source: https://docs.spott.io/api-reference/jobs/update-a-job
/api-reference/openapi.json put /vacancies/{id}
Updates the job with the specified ID. You can update job status, title, description, and other job properties.
# Create a list
Source: https://docs.spott.io/api-reference/lists/create-a-list
/api-reference/openapi.json post /lists/{entityType}
Creates a new list. Creates a candidate, client, or client contact list based on the path type.
# Delete a list
Source: https://docs.spott.io/api-reference/lists/delete-a-list
/api-reference/openapi.json delete /lists/{entityType}/{id}
Deletes the list with the specified ID. Deletes a candidate, client, or client contact list based on the path type.
# List lists
Source: https://docs.spott.io/api-reference/lists/list-lists
/api-reference/openapi.json get /lists
Returns a list of lists. Returns list metadata without entry counts.
# Update a list
Source: https://docs.spott.io/api-reference/lists/update-a-list
/api-reference/openapi.json patch /lists/{entityType}/{id}
Updates the list with the specified ID. Updates list metadata such as name, color, or visibility type.
# List meetings
Source: https://docs.spott.io/api-reference/meetings/list-meetings
/api-reference/openapi.json get /meetings
Returns a list of meetings. Uses cursor pagination.
# Retrieve a meeting
Source: https://docs.spott.io/api-reference/meetings/retrieve-a-meeting
/api-reference/openapi.json get /meetings/{id}
Retrieves the meeting with the specified ID.
# Create note label
Source: https://docs.spott.io/api-reference/note-labels/create-note-label
/api-reference/openapi.json post /labels/note
Create a new note label with a name and color. Note labels are used to categorize notes within the system.
# Delete note label
Source: https://docs.spott.io/api-reference/note-labels/delete-note-label
/api-reference/openapi.json delete /labels/note/{id}
Delete a note label by its ID. This will remove the label from all associated notes.
# Get note labels
Source: https://docs.spott.io/api-reference/note-labels/get-note-labels
/api-reference/openapi.json get /labels/note
Retrieve a paginated list of note labels. Note labels are used to categorize and organize notes within the system.
# Update note label
Source: https://docs.spott.io/api-reference/note-labels/update-note-label
/api-reference/openapi.json put /labels/note/{id}
Update an existing note label by its ID. You can update the name, color, or both.
# Create a note
Source: https://docs.spott.io/api-reference/notes/create-a-note
/api-reference/openapi.json post /notes
Creates a new note. You can optionally link the note to candidates, jobs, applications, companies, client contacts, interviews, or opportunities.
# Create a note link
Source: https://docs.spott.io/api-reference/notes/create-a-note-link
/api-reference/openapi.json post /notes/{id}/links
Creates a new note link. Links the note to a candidate, job, application, company, client contact, interview, or opportunity.
# Delete a note
Source: https://docs.spott.io/api-reference/notes/delete-a-note
/api-reference/openapi.json delete /notes/{id}
Deletes the note with the specified ID.
# Delete a note link
Source: https://docs.spott.io/api-reference/notes/delete-a-note-link
/api-reference/openapi.json delete /notes/{id}/links/{linkId}
Deletes the note link with the specified ID.
# List notes
Source: https://docs.spott.io/api-reference/notes/list-notes
/api-reference/openapi.json get /notes
Returns a list of notes. Uses cursor pagination.
# Retrieve a note
Source: https://docs.spott.io/api-reference/notes/retrieve-a-note
/api-reference/openapi.json get /notes/{id}
Retrieves the note with the specified ID.
# Update a note
Source: https://docs.spott.io/api-reference/notes/update-a-note
/api-reference/openapi.json put /notes/{id}
Updates the note with the specified ID.
# Create an office
Source: https://docs.spott.io/api-reference/offices/create-an-office
/api-reference/openapi.json post /offices
Creates a new office.
# Delete an office
Source: https://docs.spott.io/api-reference/offices/delete-an-office
/api-reference/openapi.json delete /offices/{id}
Deletes the office with the specified ID.
# List office teams
Source: https://docs.spott.io/api-reference/offices/list-office-teams
/api-reference/openapi.json get /offices/{id}/teams
Returns a cursor-paginated list of teams for the specified office.
# List offices
Source: https://docs.spott.io/api-reference/offices/list-offices
/api-reference/openapi.json get /offices
Returns a cursor-paginated list of offices.
# Retrieve an office
Source: https://docs.spott.io/api-reference/offices/retrieve-an-office
/api-reference/openapi.json get /offices/{id}
Retrieves the office with the specified ID.
# Update an office
Source: https://docs.spott.io/api-reference/offices/update-an-office
/api-reference/openapi.json patch /offices/{id}
Updates the office with the specified ID.
# Create an opportunity
Source: https://docs.spott.io/api-reference/opportunities/create-an-opportunity
/api-reference/openapi.json post /opportunities
Creates a new opportunity. Provide the company, pipeline stage, estimated value, and other opportunity details.
# Get opportunity pipeline stages
Source: https://docs.spott.io/api-reference/opportunities/get-opportunity-pipeline-stages
/api-reference/openapi.json get /pipeline/opportunities/stages
Retrieve a list of all pipeline stages configured for opportunities. Each stage represents a step in the sales workflow (e.g., Qualification, Proposal, Negotiation, Closed Won).
# List opportunities
Source: https://docs.spott.io/api-reference/opportunities/list-opportunities
/api-reference/openapi.json get /opportunities
Returns a list of opportunities. Uses cursor pagination.
# Retrieve an opportunity
Source: https://docs.spott.io/api-reference/opportunities/retrieve-an-opportunity
/api-reference/openapi.json get /opportunities/{id}
Retrieves the opportunity with the specified ID. Includes all custom attributes.
# Update an opportunity
Source: https://docs.spott.io/api-reference/opportunities/update-an-opportunity
/api-reference/openapi.json patch /opportunities/{id}
Updates the opportunity with the specified ID. You can update stage, close date, and other opportunity properties.
# Enroll a recipient in an outreach sequence
Source: https://docs.spott.io/api-reference/outreach-sequences/enroll-a-recipient-in-an-outreach-sequence
/api-reference/openapi.json post /outreach-sequences/{id}/runs
Create a new outreach sequence run, enrolling a candidate (or a client contact tied to a candidate) in the sequence.
# List outreach sequences
Source: https://docs.spott.io/api-reference/outreach-sequences/list-outreach-sequences
/api-reference/openapi.json get /outreach-sequences
Returns a list of outreach sequences. Uses cursor pagination.
# List placements
Source: https://docs.spott.io/api-reference/placements/list-placements
/api-reference/openapi.json get /placements
Returns a list of placements. Supports pagination, filtering by company, sort options, and applied filters. Returns candidate, company, job, fee, and placement metadata.
# Retrieve a placement
Source: https://docs.spott.io/api-reference/placements/retrieve-a-placement
/api-reference/openapi.json get /placements/{id}
Retrieves the placement with the specified ID. Includes custom attribute values, fee splits, and placement metadata.
# Search placements
Source: https://docs.spott.io/api-reference/placements/search-placements
/api-reference/openapi.json post /placements/_search
Returns a list of placements that match the provided filters. Search placements by filters, sort, and free-text query. Returns candidate, company, job, fee, and placement metadata.
# Update a placement
Source: https://docs.spott.io/api-reference/placements/update-a-placement
/api-reference/openapi.json patch /placements/{id}
Updates the placement with the specified ID. You can update dates, template, placed-by user, and custom attribute values.
# Get retained search
Source: https://docs.spott.io/api-reference/retained-searches/get-retained-search
/api-reference/openapi.json get /vacancies/searches/retained/{id}
Retrieves a retained search by id. The details object is experimental and may change without notice.
# List retained searches
Source: https://docs.spott.io/api-reference/retained-searches/list-retained-searches
/api-reference/openapi.json get /vacancies/searches/retained
Returns a cursor-paginated list of retained searches, optionally bounded by modification date. The details object is experimental and may change without notice.
# List roles
Source: https://docs.spott.io/api-reference/roles/list-roles
/api-reference/openapi.json get /roles
Returns the roles available in the tenant.
# Search people
Source: https://docs.spott.io/api-reference/search-people/search-people
/api-reference/openapi.json get /search/people
Returns a list of people that match the provided filters. Searches across candidates and client contacts. You can search by full name, email address, or phone number. Results use fuzzy matching for partial matches and minor typos, ranked by relevance.
# Create a skill
Source: https://docs.spott.io/api-reference/skills/create-a-skill
/api-reference/openapi.json post /skills
Creates a new skill. Provide a name and color. The skill can then be linked to candidates.
# Create multiple skills
Source: https://docs.spott.io/api-reference/skills/create-multiple-skills
/api-reference/openapi.json post /skills/_bulk
Create multiple skills in a single request. Each skill requires a name and color.
# Delete a skill
Source: https://docs.spott.io/api-reference/skills/delete-a-skill
/api-reference/openapi.json delete /skills/{id}
Deletes the skill with the specified ID. This also removes all candidate-skill links.
# Link candidates to a skill
Source: https://docs.spott.io/api-reference/skills/link-candidates-to-a-skill
/api-reference/openapi.json post /skills/{id}/candidates/_link
Link a set of candidates to a specific skill. Candidates already linked to the skill will be skipped.
# List skills
Source: https://docs.spott.io/api-reference/skills/list-skills
/api-reference/openapi.json get /skills
Returns a list of skills. Uses cursor pagination.
# Unlink candidates from a skill
Source: https://docs.spott.io/api-reference/skills/unlink-candidates-from-a-skill
/api-reference/openapi.json post /skills/{id}/candidates/_unlink
Unlink a set of candidates from a specific skill. Candidates not linked to the skill will be skipped.
# Update a skill
Source: https://docs.spott.io/api-reference/skills/update-a-skill
/api-reference/openapi.json patch /skills/{id}
Updates the skill with the specified ID. Only provided fields are updated.
# Create task
Source: https://docs.spott.io/api-reference/tasks/create-task
/api-reference/openapi.json post /tasks/_raw
Create a new task with optional due date, assignee, and links to entities (candidates, vacancies, clients, etc.).
# Delete a task
Source: https://docs.spott.io/api-reference/tasks/delete-a-task
/api-reference/openapi.json delete /tasks/{id}
Deletes the task with the specified ID.
# List tasks
Source: https://docs.spott.io/api-reference/tasks/list-tasks
/api-reference/openapi.json get /tasks
Returns a list of tasks. Uses cursor pagination.
# Create a team
Source: https://docs.spott.io/api-reference/teams/create-a-team
/api-reference/openapi.json post /teams
Creates a new team.
# Delete a team
Source: https://docs.spott.io/api-reference/teams/delete-a-team
/api-reference/openapi.json delete /teams/{id}
Deletes the team with the specified ID.
# List team members
Source: https://docs.spott.io/api-reference/teams/list-team-members
/api-reference/openapi.json get /teams/{id}/members
Returns a cursor-paginated list of members for the specified team.
# List teams
Source: https://docs.spott.io/api-reference/teams/list-teams
/api-reference/openapi.json get /teams
Returns a list of teams.
# Retrieve a team
Source: https://docs.spott.io/api-reference/teams/retrieve-a-team
/api-reference/openapi.json get /teams/{id}
Retrieves the team with the specified ID.
# Update a team
Source: https://docs.spott.io/api-reference/teams/update-a-team
/api-reference/openapi.json patch /teams/{id}
Updates the team with the specified ID.
# Get transcript
Source: https://docs.spott.io/api-reference/transcripts/get-transcript
/api-reference/openapi.json get /transcripts/{id}
Retrieve a transcript by its ID. Returns the full transcript content including all segments with speaker information and timestamps.
# List users
Source: https://docs.spott.io/api-reference/users/list-users
/api-reference/openapi.json get /users
Returns a list of users.
By default, only active users are returned. Set includeDeactivated=true to include deactivated users in the response.
Results can be narrowed with teamIds and roleIds; when both are provided, only users matching both conditions are returned.
The roles of a user are organization-wide roles only. Roles that are scoped to a single team are not returned here and are available per team through the team members endpoint.
# List users alias
Source: https://docs.spott.io/api-reference/users/list-users-alias
/api-reference/openapi.json get /users/_list
Backward-compatible alias for the private user list endpoint.
# Use Spott in ChatGPT
Source: https://docs.spott.io/docs/developers/chatgpt
Connect Spott to ChatGPT to run your full recruiting workflow from chat: search candidates, manage pipelines, schedule interviews, send emails, and place candidates without leaving the conversation.
The Spott connector for ChatGPT lets recruiters work in Spott directly from a ChatGPT conversation. ChatGPT can search your candidates, jobs, and companies, move applications through your pipeline, schedule interviews, log calls and notes, send emails, parse CVs, and close placements, all scoped to the authenticated user's tenant and reflected back in the Spott UI in real time.
The connector exposes tools only: there is no separate Spott workspace inside ChatGPT. Every action runs against your live Spott account, and respects the same permissions you have in the Spott UI.
## Prerequisites
* An active Spott workspace, trials included
* A Spott user account with the permissions you'd normally use in the Spott UI
* A role that carries the **AI assistant connection** permission, set under
**Settings → Security**. Without it the sign-in completes and every request then fails
with `MCP_ACCESS_DENIED`. See [Spott MCP](/docs/developers/mcp)
* A ChatGPT account on any plan (Free, Go, Plus, Pro, Business, Enterprise, or Education)
## Connect Spott to ChatGPT
**Spott is now listed in the OpenAI marketplace**, so look for it there first. Adding
it from the marketplace skips Developer mode and the manual server URL below. The steps
that follow are the manual route, which still works and is what to use if the listing
is not available on your ChatGPT plan.
Creating a custom MCP connection is currently only supported in the web version of
ChatGPT and is not available in the desktop or mobile apps.
In ChatGPT, click your profile icon in the bottom-left corner and open **Settings**. From there, navigate to **Apps → Advanced settings** and enable **Developer mode**.
Once Developer mode is enabled, go to **Settings → Apps** and click **Create app**. You can choose any name for the app, but we recommend using *Spott MCP* for clarity. In the **MCP Server URL** field, enter `https://mcp.spott.io/mcp`, and set the **Authentication** method to **OAuth**. After reviewing the configuration, confirm by selecting the “I understand and want to continue” checkbox, then click **Create** to finish setting up the app.
Go back to **Settings** → **Apps** → **Spott** and click **Connect**.
This will bring you to an authentication screen where you need to grant access. If this page does not load correctly, clear the cookies on `app.spott.io` and try again.
Click `+` → **More** → **Spott MCP** in your chat to enable the Spott connector for this conversation.
## What you can do
You can use the Spott connector to:
*"Find Python engineers in Brussels with 5+ years of experience"*
*"Move Emma to the offer stage and email her the offer letter"*
*"Book a 30-minute intro between Mario and Dimitri from Forum Jobs tomorrow at 2pm"*
*"Log a call with John yesterday, 3 month notice, €85k, available next week"*
*"Create a candidate from this CV and enrich their email and LinkedIn"*
*"Place Sarah at Google as Senior PM, start date Feb 1, 25% fee"*
## Permissions and data scope
The Spott connector respects every permission and role configured in your Spott workspace. ChatGPT can only see and modify records you have access to in the Spott UI.
* **Tenant isolation:** Each user authenticates with their own Spott credentials. ChatGPT never sees data outside your tenant.
* **Read and write:** The connector includes both read tools (search, lookup, activity) and write tools (create, update, send). Write tools with external side effects (sending emails, scheduling interviews, placing candidates) are flagged so ChatGPT treats them with extra care.
* **Confirmation for high-impact actions:** ChatGPT will confirm with you before sending external communications or making irreversible changes like placing a candidate or rejecting an application.
## Troubleshooting
Disconnect and reconnect Spott from ChatGPT → **Settings** → **Apps**. Clear cookies for `app.spott.io` if the issue persists. If your workspace uses SSO, make sure your identity provider session is active before connecting.
Make sure the Spott connector is enabled for the current conversation (`+` → **More**).
The Spott MCP enforces the same permissions as the Spott UI. If you can't see a record in Spott itself, ChatGPT can't either. Ask your workspace admin to grant the required role.
`spott_schedule_interview` schedules an interview against an existing application. If the candidate doesn't have an application on the relevant job yet, create the application first (for example: *"Add Mario as an applicant on the Forum Jobs Senior Backend role"*) and try again.
`spott_place_candidate` advances an existing application to the placed stage. The candidate must already be on a job's pipeline. If they aren't, create the application first.
## Privacy and security
* Spott is hosted in the EU and is GDPR-compliant.
* Customer data is never used to train AI models.
* All data is encrypted in transit (TLS) and at rest.
* A Data Processing Agreement (DPA) is available on request.
For full details, see the [Spott Privacy Policy](https://spott.io/privacy).
## Support
[support@spott.io](mailto:support@spott.io)
docs.spott.io
For ChatGPT-specific connector questions, see [OpenAI's connectors help](https://developers.openai.com/apps-sdk/deploy/connect-chatgpt).
# Use Spott in Claude
Source: https://docs.spott.io/docs/developers/claude
Connect Spott to Claude to run your full recruiting workflow from chat: search candidates, manage pipelines, schedule interviews, send emails, and place candidates without leaving the conversation.
The Spott connector for Claude lets recruiters work in Spott directly from a Claude conversation. Claude can search your candidates, jobs, and companies, move applications through your pipeline, schedule interviews, log calls and notes, send emails, parse CVs, and close placements, all scoped to the authenticated user's tenant and reflected back in the Spott UI in real time.
The connector exposes tools only: there is no separate Spott workspace inside Claude. Every action runs against your live Spott account, and respects the same permissions you have in the Spott UI.
## Prerequisites
* An active Spott workspace, trials included
* A Spott user account with the permissions you'd normally use in the Spott UI
* A role that carries the **AI assistant connection** permission, set under
**Settings → Security**. Without it the sign-in completes and every request then fails
with `MCP_ACCESS_DENIED`. See [Spott MCP](/docs/developers/mcp)
* A Claude account on any plan (Free, Pro, Max, Team, or Enterprise)
## Connect Spott to Claude
In Claude.ai, click the `+` button at the bottom-left of the chat, then choose **Connectors**.
Browse or search for **Spott** in the directory.
Click **Connect**. You'll be redirected to `app.spott.io` to sign in with your Spott credentials.
Review the requested permissions and click **Allow**. You'll be redirected back to Claude.
Click `+` → **Connectors** in your chat and toggle Spott on for this conversation.
Open Claude Desktop → **Settings** → **Connectors**.
Locate Spott in the directory and click **Connect**. The OAuth flow opens in your browser.
Sign in to Spott and authorize the connector.
Back in Claude Desktop, click the `+` button in the chat bar and enable Spott for the conversation.
Tap the `+` icon in the chat bar, then tap **Connectors**.
Find Spott and tap **Connect**. Sign in to Spott when prompted.
Authorize the connector, then enable it for your conversation.
## If Spott is not in the directory
Add it as a custom connector with the URL `https://mcp.spott.io/mcp`. Who is allowed to
do that depends on the Claude plan, which is the usual reason the connector is nowhere to
be found.
**Pro and Max**, add it yourself:
1. Go to **Customize → Connectors** and click **+**.
2. Choose **Add custom connector** and paste `https://mcp.spott.io/mcp`.
3. Click **Add**, then complete the Spott sign-in.
4. In a chat, enable it from the **+** menu under **Connectors**.
**Team and Enterprise**, an ordinary member cannot add it at all, and the option is
simply absent for them. The **organization owner** adds it once for everybody:
1. Open **Organization settings → Connectors** and click **Add**.
2. Hover **Custom**, then choose **Web**.
3. Paste `https://mcp.spott.io/mcp` and click **Add**.
Members connect from their own account after that, each completing their own sign-in.
## Choose what Claude may do
Once connected, Spott appears under **Settings → Connectors**. Open it to see every tool
the connector exposes, grouped into **Read-only tools** (search, lookup, activity) and
write tools (create, update, send).
Each tool has three states, set with the icons on the right of its row:
| Icon | State | What it means |
| - | - | - |
| Check | Always allow | Claude uses the tool without asking. |
| Hand | Needs approval | Claude asks you every time before it runs. |
| Slash | Never allow | The tool is off. Claude cannot use it at all. |
The dropdown next to a group header sets every tool in that group at once. A common
setup is to allow the read-only tools so Claude can look things up freely, and leave the
write tools on **Needs approval** so nothing changes in Spott without your say-so.
Turning a tool off in Claude does not change anything in Spott. It only limits what
this connector can reach.
## What you can do
Ask in plain language, and Claude pulls the answer from your live Spott data.
You can use the Spott connector to:
*"Find Python engineers in Brussels with 5+ years of experience"*
*"Move Emma to the offer stage and email her the offer letter"*
*"Book a 30-minute intro between Mario and Dimitri from Forum Jobs tomorrow at 2pm"*
*"Log a call with John yesterday, 3 month notice, €85k, available next week"*
*"Create a candidate from this CV and enrich their email and LinkedIn"*
*"Place Sarah at Google as Senior PM, start date Feb 1, 25% fee"*
## Permissions and data scope
The Spott connector respects every permission and role configured in your Spott workspace. Claude can only see and modify records you have access to in the Spott UI.
* **Tenant isolation:** Each user authenticates with their own Spott credentials. Claude never sees data outside your tenant.
* **Read and write:** The connector includes both read and write tools. Write tools with external side effects (sending emails, scheduling interviews, placing candidates) are flagged so Claude treats them with extra care. You control which tools it may use at all under [Settings → Connectors](#choose-what-claude-may-do).
* **Confirmation for high-impact actions:** Claude will confirm with you before sending external communications or making irreversible changes like placing a candidate or rejecting an application.
## Troubleshooting
Disconnect and reconnect Spott from Claude → **Settings** → **Connectors**. Clear cookies for `app.spott.io` if the issue persists. If your workspace uses SSO, make sure your identity provider session is active before connecting.
Make sure the Spott connector is enabled for the current conversation (`+` → **Connectors**). If you have many connectors active, switch tool access mode to **On demand** to give Claude more room to surface Spott reliably.
The Spott MCP enforces the same permissions as the Spott UI. If you can't see a record in Spott itself, Claude can't either. Ask your workspace admin to grant the required role.
`spott_schedule_interview` schedules an interview against an existing application. If the candidate doesn't have an application on the relevant job yet, create the application first (for example: *"Add Mario as an applicant on the Forum Jobs Senior Backend role"*) and try again.
`spott_place_candidate` advances an existing application to the placed stage. The candidate must already be on a job's pipeline. If they aren't, create the application first.
## Privacy and security
* Spott is hosted in the EU and is GDPR-compliant.
* Customer data is never used to train AI models.
* All data is encrypted in transit (TLS) and at rest.
* A Data Processing Agreement (DPA) is available on request.
For full details, see the [Spott Privacy Policy](https://spott.io/privacy).
## Support
[support@spott.io](mailto:support@spott.io)
docs.spott.io
For Claude-specific connector questions, see [Anthropic's connectors help](https://support.claude.com/en/articles/11176164-use-connectors-to-extend-claude-s-capabilities).
# The Spott MCP Server
Source: https://docs.spott.io/docs/developers/mcp
Connect AI assistants to Spott through the hosted MCP server and run your recruiting workflow from a conversation.
Spott provides a hosted **MCP (Model Context Protocol) server** at
`https://mcp.spott.io/mcp`. It exposes a set of tools that AI assistants can call to
work in Spott on your behalf: searching records, creating candidates, moving
applications, scheduling interviews, sending emails, logging calls, and more.
## What it's for
* Run your day-to-day recruiting workflow from a chat conversation.
* Build assistant-driven automations that read and write Spott data.
* Connect Spott into multi-step agentic flows alongside other connectors.
## Set it up
The quickest paths are our step-by-step guides:
Connect Spott in Claude apps, or add it as a custom connector.
Add Spott as an app in ChatGPT with the MCP server URL.
For any other MCP-capable tool, the general flow is:
1. Add a **custom connector** and point it at `https://mcp.spott.io/mcp`.
2. Connect. The tool redirects you to a Spott OAuth page.
3. Approve access. The assistant can now make authenticated calls on your behalf.
## Authentication: OAuth, per user
Unlike the [REST API](/docs/developers/api-overview), which uses API keys, the MCP
server authenticates with **OAuth**:
* Each user connecting completes their own OAuth flow; access is scoped to that user.
* Actions the assistant performs are attributed to the connected user.
* No keys to paste or rotate, and access can be revoked from the Spott side.
### The connection needs a permission of its own
Connecting an assistant is gated by a **role permission**, granted under
**Settings → Security**. It is separate from the record permissions the connector
inherits, so a user with full access to candidates and jobs can still be unable to
connect.
Without it the failure is confusing rather than obvious: the sign-in completes normally,
the connector reports itself as connected, and then every request comes back as
`MCP_ACCESS_DENIED`. If that is what you are seeing, ask an admin to add the permission to
your role. See [managing access](/docs/settings/managing-access).
## What the assistant can do
The tool set grows over time and reflects the live capability surface: searching and
looking up records, creating and updating candidates, contacts and companies, managing
applications and pipelines, notes, tasks, emails, calendar invites, placements, and
more. After
connecting, ask your assistant what Spott tools it has available for the current
list.
## MCP vs the API vs webhooks
* **MCP**: AI-assistant-driven interactions and agentic flows.
* **REST API**: traditional integrations and programmatic data access at scale.
* **Webhooks**: event-driven notifications from Spott to your systems.
The three are complementary and can be combined.
# Webhooks
Source: https://docs.spott.io/docs/developers/webhooks
Get notified by Spott when events happen: configure endpoints, subscribe to events, and build event-driven integrations.
**Webhooks** notify your systems when something happens in Spott: the inverse of the
API, where you ask Spott for data. Spott's webhook delivery is powered by **Svix**,
which handles retries, signing, and idempotency for reliable delivery.
## Configure webhooks
1. Go to **Settings → Webhooks** (admin permissions required).
2. Add your **endpoint URL** and select the events to subscribe to.
3. Save. Spott starts delivering events to your endpoint as they occur.
## Available events
Every event has its own page in the **sidebar**, grouped by record type, with the
full payload schema and an example. The live, current catalog is also shown in
**Settings → Webhooks** when you add an endpoint, where you pick exactly which events
to subscribe to. The events cover the lifecycle of the core records:
* **Applications**: `application.created`, `application.updated`,
`application.deleted`, `application.stage.moved`, `application.rejection.created`
* **Candidates**: `candidate.created`, `candidate.updated`, `candidate.deleted`,
`candidate.merged`, `candidate.education.updated`,
`candidate.certifications.updated`, `candidate.workExperiences.updated`,
`candidate.contactInformation.updated`
* **Companies**: `client.created`, `client.updated`, `client.deleted`,
`client.merged`, `client.hierarchy.updated`
* **Jobs**: `vacancy.created`, `vacancy.updated`, `vacancy.deleted`,
`vacancy.merged`, `vacancy.stage.moved`
* **Job board postings**: `jobBoardPosting.created`, `jobBoardPosting.updated`,
`jobBoardPosting.deleted`
* **Placements**: `placement.created`, `placement.updated`, `placement.deleted`
* **Notes**: `note.created`, `note.updated`, `note.deleted`
* **Users**: `user.created`, `user.updated`, `user.invited`, `user.deactivated`
* **eSignatures**: `signingRequest.created`, `signingRequest.completed`
**Job descriptions** now fire their own events when one is created or updated, so a
careers site or a job board feed can pick up rewritten copy without re-polling every
vacancy.
The eSignature events cover envelopes sent through
[DocuSign](/docs/integrations/docusign) and [Nitro](/docs/integrations/nitro), so you
can track a contract from the moment it goes out to the moment it is fully signed.
`client.updated` also fires when a [Creditsafe](/docs/integrations/creditsafe) report
is approved or declined, so a credit decision reaches your systems without polling.
The report itself is available through the `/clients/{clientId}/credit-reports`
endpoints in the [API](/docs/developers/api-overview).
Handle the **`.merged` events** (`candidate.merged`, `client.merged`,
`vacancy.merged`) from the start. When two records are merged in Spott, one ID stops
being the live record. An integration that ignores these keeps both copies on its
side, and the duplicates are awkward to unpick later.
## Common integration patterns
* **Invoicing automation**: subscribe to `placement.created`, then fetch the
placement details (candidate, job, fee) via the
[API](/docs/developers/api-overview) and push them to your finance system.
* **CRM sync**: subscribe to candidate and contact lifecycle events and mirror
updates to an external CRM.
* **Custom analytics**: log events of interest into your data warehouse for
downstream analysis.
## Webhooks vs the API
* **Webhooks**: Spott pushes a notification when an event occurs.
* **API**: you ask Spott for data on demand.
Most integrations use both: the webhook tells you *that* something happened; the API
tells you *what* exactly.
# Application created
Source: https://docs.spott.io/docs/developers/webhooks/application-created
/api-reference/openapi-webhooks.json webhook application.created
# Application deleted
Source: https://docs.spott.io/docs/developers/webhooks/application-deleted
/api-reference/openapi-webhooks.json webhook application.deleted
# Application rejection created
Source: https://docs.spott.io/docs/developers/webhooks/application-rejection-created
/api-reference/openapi-webhooks.json webhook application.rejection.created
# Application stage moved
Source: https://docs.spott.io/docs/developers/webhooks/application-stage-moved
/api-reference/openapi-webhooks.json webhook application.stage.moved
# Application updated
Source: https://docs.spott.io/docs/developers/webhooks/application-updated
/api-reference/openapi-webhooks.json webhook application.updated
# Appointment created
Source: https://docs.spott.io/docs/developers/webhooks/appointment-created
/api-reference/openapi-webhooks.json webhook appointment.created
# Attachment created
Source: https://docs.spott.io/docs/developers/webhooks/attachment-created
/api-reference/openapi-webhooks.json webhook attachment.created
# Attachment deleted
Source: https://docs.spott.io/docs/developers/webhooks/attachment-deleted
/api-reference/openapi-webhooks.json webhook attachment.deleted
# Attachment updated
Source: https://docs.spott.io/docs/developers/webhooks/attachment-updated
/api-reference/openapi-webhooks.json webhook attachment.updated
# Candidate certifications updated
Source: https://docs.spott.io/docs/developers/webhooks/candidate-certifications-updated
/api-reference/openapi-webhooks.json webhook candidate.certifications.updated
# Candidate contactinformation updated
Source: https://docs.spott.io/docs/developers/webhooks/candidate-contactinformation-updated
/api-reference/openapi-webhooks.json webhook candidate.contactInformation.updated
# Candidate created
Source: https://docs.spott.io/docs/developers/webhooks/candidate-created
/api-reference/openapi-webhooks.json webhook candidate.created
# Candidate deleted
Source: https://docs.spott.io/docs/developers/webhooks/candidate-deleted
/api-reference/openapi-webhooks.json webhook candidate.deleted
# Candidate education updated
Source: https://docs.spott.io/docs/developers/webhooks/candidate-education-updated
/api-reference/openapi-webhooks.json webhook candidate.education.updated
# Candidate merged
Source: https://docs.spott.io/docs/developers/webhooks/candidate-merged
/api-reference/openapi-webhooks.json webhook candidate.merged
# Candidate updated
Source: https://docs.spott.io/docs/developers/webhooks/candidate-updated
/api-reference/openapi-webhooks.json webhook candidate.updated
# Candidate workexperiences updated
Source: https://docs.spott.io/docs/developers/webhooks/candidate-workexperiences-updated
/api-reference/openapi-webhooks.json webhook candidate.workExperiences.updated
# Client created
Source: https://docs.spott.io/docs/developers/webhooks/client-created
/api-reference/openapi-webhooks.json webhook client.created
# Client deleted
Source: https://docs.spott.io/docs/developers/webhooks/client-deleted
/api-reference/openapi-webhooks.json webhook client.deleted
# Client hierarchy updated
Source: https://docs.spott.io/docs/developers/webhooks/client-hierarchy-updated
/api-reference/openapi-webhooks.json webhook client.hierarchy.updated
# Client merged
Source: https://docs.spott.io/docs/developers/webhooks/client-merged
/api-reference/openapi-webhooks.json webhook client.merged
# Client updated
Source: https://docs.spott.io/docs/developers/webhooks/client-updated
/api-reference/openapi-webhooks.json webhook client.updated
# Jobboardposting created
Source: https://docs.spott.io/docs/developers/webhooks/jobboardposting-created
/api-reference/openapi-webhooks.json webhook jobBoardPosting.created
# Jobboardposting deleted
Source: https://docs.spott.io/docs/developers/webhooks/jobboardposting-deleted
/api-reference/openapi-webhooks.json webhook jobBoardPosting.deleted
# Jobboardposting updated
Source: https://docs.spott.io/docs/developers/webhooks/jobboardposting-updated
/api-reference/openapi-webhooks.json webhook jobBoardPosting.updated
# Jobdescription created
Source: https://docs.spott.io/docs/developers/webhooks/jobdescription-created
/api-reference/openapi-webhooks.json webhook jobDescription.created
# Jobdescription deleted
Source: https://docs.spott.io/docs/developers/webhooks/jobdescription-deleted
/api-reference/openapi-webhooks.json webhook jobDescription.deleted
# Jobdescription updated
Source: https://docs.spott.io/docs/developers/webhooks/jobdescription-updated
/api-reference/openapi-webhooks.json webhook jobDescription.updated
# Note created
Source: https://docs.spott.io/docs/developers/webhooks/note-created
/api-reference/openapi-webhooks.json webhook note.created
# Note deleted
Source: https://docs.spott.io/docs/developers/webhooks/note-deleted
/api-reference/openapi-webhooks.json webhook note.deleted
# Note updated
Source: https://docs.spott.io/docs/developers/webhooks/note-updated
/api-reference/openapi-webhooks.json webhook note.updated
# Placement created
Source: https://docs.spott.io/docs/developers/webhooks/placement-created
/api-reference/openapi-webhooks.json webhook placement.created
# Placement deleted
Source: https://docs.spott.io/docs/developers/webhooks/placement-deleted
/api-reference/openapi-webhooks.json webhook placement.deleted
# Placement updated
Source: https://docs.spott.io/docs/developers/webhooks/placement-updated
/api-reference/openapi-webhooks.json webhook placement.updated
# Signingrequest completed
Source: https://docs.spott.io/docs/developers/webhooks/signingrequest-completed
/api-reference/openapi-webhooks.json webhook signingRequest.completed
# Signingrequest created
Source: https://docs.spott.io/docs/developers/webhooks/signingrequest-created
/api-reference/openapi-webhooks.json webhook signingRequest.created
# User created
Source: https://docs.spott.io/docs/developers/webhooks/user-created
/api-reference/openapi-webhooks.json webhook user.created
# User deactivated
Source: https://docs.spott.io/docs/developers/webhooks/user-deactivated
/api-reference/openapi-webhooks.json webhook user.deactivated
# User invited
Source: https://docs.spott.io/docs/developers/webhooks/user-invited
/api-reference/openapi-webhooks.json webhook user.invited
# User updated
Source: https://docs.spott.io/docs/developers/webhooks/user-updated
/api-reference/openapi-webhooks.json webhook user.updated
# Vacancy created
Source: https://docs.spott.io/docs/developers/webhooks/vacancy-created
/api-reference/openapi-webhooks.json webhook vacancy.created
# Vacancy deleted
Source: https://docs.spott.io/docs/developers/webhooks/vacancy-deleted
/api-reference/openapi-webhooks.json webhook vacancy.deleted
# Vacancy merged
Source: https://docs.spott.io/docs/developers/webhooks/vacancy-merged
/api-reference/openapi-webhooks.json webhook vacancy.merged
# Vacancy stage moved
Source: https://docs.spott.io/docs/developers/webhooks/vacancy-stage-moved
/api-reference/openapi-webhooks.json webhook vacancy.stage.moved
# Vacancy updated
Source: https://docs.spott.io/docs/developers/webhooks/vacancy-updated
/api-reference/openapi-webhooks.json webhook vacancy.updated
# Appointment deleted
Source: https://docs.spott.io/docs/developers/webhooks/appointment-deleted
/api-reference/openapi-webhooks.json webhook appointment.deleted
# Appointment updated
Source: https://docs.spott.io/docs/developers/webhooks/appointment-updated
/api-reference/openapi-webhooks.json webhook appointment.updated
# Candidatetodo created
Source: https://docs.spott.io/docs/developers/webhooks/candidatetodo-created
/api-reference/openapi-webhooks.json webhook candidateTodo.created
# Candidatetodo deleted
Source: https://docs.spott.io/docs/developers/webhooks/candidatetodo-deleted
/api-reference/openapi-webhooks.json webhook candidateTodo.deleted
# Candidatetodo updated
Source: https://docs.spott.io/docs/developers/webhooks/candidatetodo-updated
/api-reference/openapi-webhooks.json webhook candidateTodo.updated
# What's New
Source: https://docs.spott.io/whats-new
New features and improvements in Spott, updated with every weekly release.
Spott ships a release every week. The highlights land here; smaller fixes and
polish ship continuously.
## Every applicant in one place, waits in automations, and views on applications
* **Inbound applications across all jobs**: a new **Inbound Applications** tab on the Jobs
page gathers every application waiting for review, whatever job it came in on. Accept,
reject, or email applicants one by one or in bulk, and filter down to a job, a company,
or an owner, without opening each job in turn.
[Read the guide](/docs/jobs/inbound-applications#review-applicants-across-all-jobs).
* **Wait steps in automations**: an automation can now pause for a set number of months,
days, and hours before it carries on, and the conditions after the wait look at the
record as it is by then. Create a candidate, wait three days, and open a follow-up task
only if nobody has planned one yet. [Read the guide](/docs/settings/automations#wait-before-the-next-step).
* **Views on applications**: the Applications and Speculative Presentations tables on the
Jobs page take saved views, with the columns, filters, and sorting you choose, just like
Candidates and Jobs. [Read the guide](/docs/settings/using-views).
**Also new**
* The job's Inbound tab is now called **Applicants** and has a search box for applicant
names
* Applications record their **source**, the channel someone applied through, even when
they were already in your database
* Schedule an email or send a calendar invite in a different time zone from your own,
right from the dialog
* A warning before you send an email with an empty subject line
* Marketing skips addresses that are known not to exist or to be undeliverable, which
protects your sending domain
* **Email editor colors** under Settings → Branding put your brand colors in the
Marketing and Company Portal email editors
* A **Signature request completed** automation trigger, and a **has file with type**
filter on Candidate created
* A **Delete Interaction** permission for removing individual emails and other
interactions from Spott
* Permanent placements take over the deal value and fee splits already set on the job
* Team and Office filters on Reports, and a Placed by Team filter on Placements
* Filter the Job Adverts column on its published and unpublished dates
* Colleagues can act on each other's Broadbean postings, such as reposting them
* AI text to filters uses a radius when your prompt asks for one
* Deactivated users are grouped and sorted alphabetically when you pick a user
* The mobile app speaks your language, following the display language in your Spott
preferences
* New API endpoints for updating custom attributes on companies and jobs in bulk, and a
simpler job application endpoint
## A bigger mobile app, searchable documents, and a smarter global search
* **The mobile app grows up**: the meetings the Note Taker joined bring their details,
transcript and summary to the phone, and play back their video recording when one was
made. Notes and tasks are there too, and you can read and update candidates and
contacts from it. [Read the guide](/docs/mobile/overview).
* **Search inside a document**: the file viewer is faster and steadier, particularly on
Word files, and `Ctrl+F` finds text within the document you are reading. Checking
whether a six-page CV ever mentions a skill no longer means reading all six pages.
[Read the guide](/docs/candidates/managing-candidates#files).
* **Global search takes the pieces you remember**: a partial first name with a last
name, or a first name with the company someone works at, both find the person. Results
prefetch as you move through them, so the detail panel is filled in before you get to
it. [Read the guide](/docs/get-started/global-search#combine-what-you-remember).
**Also new**
* Completing a task linked to a record writes it into that record's activity feed and
updates its Last Activity Date
* Labels and linked records can be set from a docked note, without reopening it
* A column on Candidates showing the companies a candidate is also a contact at
* Filters and sorts on Recipient Activity in Marketing
* A permission of its own for managing Templates, split out of Manage Workspace
* Teams can be assigned to a brand from the Teams page in Settings
* Asking AI to rework a job description now proposes the changes for you to review
instead of applying them
* AI text to filters reads more phrasings, so more of what you type becomes real filters
* Imported AdvertsData jobs land in a job stage you choose, and DataChecker accepts
several files in one request
* New API endpoints for creating candidates, companies and contacts in bulk
## Personalized subject lines, scorecard templates, and AI you approve
* **Variables in subject lines**: personalize the subject, not just the body. The same
variables you already use in message content now work in the subject of an individual
email, a message template, and a campaign, which is the part a recipient reads before
deciding whether to open anything at all.
[Read the guide](/docs/inbox/message-templates#variables-in-the-subject-line).
* **Scorecard templates**: save a set of interview criteria once and apply it to any
job, instead of generating a new scorecard with AI or building one by hand every
time. Two recruiters scoring two candidates then score them on identical criteria.
[Read the guide](/docs/candidates/interview-scorecards#reuse-a-scorecard-across-jobs).
* **Job details you approve field by field**: regenerating a job with AI now proposes
suggestions instead of overwriting what is there. Each field shows its original value
next to the suggested one and you accept or discard them one at a time, so a job you
have already curated survives a regeneration. Custom attributes get suggestions too.
[Read the guide](/docs/jobs/job-details).
* **Import CVs straight into a job or a list**: pick the destination while you import
and every parsed candidate lands there as it is created, turning a stack of CVs from a
client into a populated pipeline in one pass.
[Read the guide](/docs/candidates/adding-candidates#upload-a-cv-drag-and-drop).
**Also new**
* Rejected filters on the Candidate pages cover every rejection type rather than only
By Us, and filter on rejection labels
* Rejection labels can be created from the popover where you use them, without a trip
to Settings, for users with Manage Workspace permissions
* Speculative presentations can be created in bulk from the snackbar on the Candidate,
Application and Speculative Presentation tables, and contacts can be added or removed
on a speculative presentation's own page
* Matching streams its results, so the strongest matches are on screen while the rest of
the database is still being scored
* Message templates with variables now work on calendar invites
* Job Status and Job Users as columns and filters on the Applications and Speculative
Presentations tables, and a LinkedIn column on Contacts
* Candidates by Stage in the job level Excel export, when the column is in your active
view
* A recipient with several email addresses on file can be switched to another one
directly from the bulk email window
* File tabs on record pages filter by file type instead of making you scroll
* The send and present email file pickers are easier to read and offer a wider range of
files to attach
* Transcription is given recruiting context, so names, skills and job titles come out
right more often
* Reposting a VDAB job under a new VDAB ID with the native integration, which refreshes
its published date
* Relative date filters on Contacts, for example created in the last 90 days
* A permission for editing company hierarchies, and an optional cap on how deep they go
* Warnings in Marketing when deliverability, bounce or unsubscribe rates reach levels
that hurt your domain reputation
* Company logos can be uploaded by hand, as was already possible on person profiles
* A **Job advert closed** automation trigger, firing whether the advert was closed by
hand, by its unpublish date, or by the job board
* Sorting on the Job Status pipeline on the Dashboard
* Kosovo and Turkmenistan added to the supported nationalities, and Greek to the AI
supported languages
* On the API: applicationId on placement webhooks, creating companies to link to work
experience or education, deleting contacts without touching the person record,
submitting inbound applications for any job board posting with source attribution,
and teamIds and roleIds on the Users endpoint. On MCP, Opportunity field write tools,
and the Spott connector is now listed in the OpenAI marketplace
## Candidates from your phone, and SAP Fieldglass
* **File uploads on mobile**: add a candidate from a document without waiting until you
are back at a laptop. Upload a file from your phone, or photograph a printed CV or an
ID card on the spot, and Spott parses it into a candidate record. Needs app version
1.30 or above on iOS and Android.
[Read the guide](/docs/mobile/overview#create-a-candidate-from-your-phone).
* **SAP Fieldglass**: connect jobs and candidates to a client's Fieldglass instance.
Map their statuses to your stages once, and Spott moves candidates through the
pipeline as the client updates them, so nobody has to watch the client's portal and
keep your board in step by hand.
[Read the guide](/docs/integrations/sap-fieldglass).
**Also new**
* Re-transcribing a call in a specific language when the VoIP provider detected the
wrong one, plus copying and downloading the transcript as you already could on meetings
* ZIP and postal code filtering on every Location filter, not just on candidates
* Image files on the CV parser, which is what lets a photographed CV become a profile
* A workspace-wide default stage for inbound applications, under Settings and Stages,
instead of setting it on every new job
* Rejection labels and reasons on the Company Portal, so a client sees why an
application closed and not only that it did
* Every Company Portal view recorded rather than only a contact's first one, so repeat
interest in a candidate is visible
* The placement fee in the currency it was agreed in, next to the converted figure, in
placement tables
* Filtering and sorting VDAB synced CVs on when they were last updated on VDAB, not
only when they arrived in Spott
* Autocompletes that keep loading as you scroll, instead of stopping at the first
twenty results
* A permission for creating and editing company hierarchies
* Montserrat added to the fonts you can send email in
* Icelandic added as a language option
* Country ISO codes on every location in the API, and patching a client's location
## A refreshed Calendar, and automations for the commercial side
* **Calendar refresh**: a cleaner Calendar, and a new **Meetings** view showing every
meeting scheduled against a record in Spott. Filter by colleague to see who your team
has been in touch with and when, without opening a single record.
[Read the guide](/docs/calendar/schedule-a-meeting).
* **Opportunities in automations**: Opportunity created, moved and updated, plus Client
created, now trigger background automations, with matching actions to update an
opportunity or a client. Business development runs on the same rails as recruiting.
[Read the guide](/docs/settings/automations).
**Also new**
* Pin is now a direct integration, so pushing candidates into Spott no longer costs an
integration fee to Pin
* Global search returns one result per person, instead of a row for every company they
are a contact at and another for being a candidate
* Comments in the browser extension, and creating a contact at a company Spott has
never seen, both without leaving the page you are on
* Linking a record to a note opens a full search dialog, for when three people share a
surname
* A job description language you set when you create the job, instead of American
English every time
* Area code filters on phone numbers, on both Candidates and Contacts
* The stage an application was created in, now on its activity feed and in the API
* An optional phone number on scheduler bookings, so a no-show is still reachable
* In-app or email notifications when an eSignature envelope is completed
* Job autocompletes anywhere in Spott now put open jobs first
* Create contact and create company on the MCP server
* A tidier editor toolbar when you select text, and a clearer Company Portal status
column on job pipelines
## WhatsApp Business, and defaults for every Company Portal
* **WhatsApp Business**: send from your business number using templates WhatsApp has
approved, to one person or to a whole shortlist at once. Variables fill in per
recipient, so a bulk send still reaches everyone with their own name and their own
job. [Read the guide](/docs/integrations/whatsapp-business).
* **Company Portal defaults**: decide once how new portals should be configured,
instead of setting the same toggles on every job. Files such as your Terms of
Business can be attached automatically too.
[Read the guide](/docs/settings/general#company-portal-defaults).
**Also new**
* Contact details on the side of spec and non-spec applications, so a pipeline works
like a call list
* Continent filters for Europe, North and South America, Asia, Africa and Oceania
* A column showing whether a candidate is published on the Company Portal, on both
the Jobs list and board
* VoIPPlay calls arriving through webhooks, cutting the wait from around 10 minutes
to under one
* Browser back button behaving as you would expect when pages open in an overlay
* A clearer, more informative "mentioned in a comment" notification
* Contact name, email and phone as variables in placement automations
* A font size selector in every email dialog, shown when you select text, and Aptos
as a supported font
* CVs sent to `cv@spott.io` or bulk parsed now set you as the candidate's Main Contact
* A description field on custom attributes in the data model
* Call and meeting summaries that no longer skip salary, compensation and benefits
## Comments on records, and bulk actions on their contacts
* **Comments**: discuss a candidate, contact, company, or note on the record itself
instead of in a chat tool, and `@mention` a colleague to notify them in the app or
by email. The question and everything it refers to finally live in the same place.
[Read the guide](/docs/notes/comments).
* **Bulk contact actions**: select rows on a Companies, Jobs, or Opportunities table
and act on every contact linked to them at once, whether that is an email, an SMS,
a presentation, or enrollment in a campaign. No more opening records one by one.
[Read the guide](/docs/contacts/search-contacts#5-reach-contacts-in-bulk-from-another-table).
* **Relative date filters**: filter on windows that move with today, such as "last 30
days" or "next 7 days", so a saved view keeps meaning the same thing tomorrow
instead of quietly becoming a report about the past.
[Read the guide](/docs/settings/using-views#relative-dates).
**Also new**
* Importing an opportunity from a URL, in the platform and in the next release of the
browser extension, the way jobs already worked
* A redesigned in-app notification feed, split into read and unread
* More detail on the campaign picker when you enroll someone, so two similarly named
sequences are no longer easy to confuse
* Filtering Contacts on a missing or present email address or phone number, as you
already could on Candidates
* DataChecker for identity checks, with ID verification and verified upload
* Webhooks for job descriptions created and updated
* Filtering Notes down to the ones with no owner
* Deactivated users offered in the user filters on Notes, Lists, and Placements
* Candidate file expires, Company file expires and Candidate reference created as automation triggers
* Sorting the Jobs tab on a company profile
* Custom file attributes writable through the private API
## SMS from Spott, and a cleaner Notes layout
* **SMS**: send and receive text messages straight from a candidate or contact,
using the SMS-capable numbers on your VoIP account. RingRing, RingCentral,
Ringover, and Aircall are supported to start with, so one more channel stops
living on your phone. [Read the guide](/docs/inbox/sms).
* **Refreshed Notes layout**: labels, properties, and linked records moved into a
side panel instead of a row of badges above the note, which makes a note far
easier to scan when you open it. [Read the guide](/docs/notes/adding-notes).
* **Refreshed documentation**: new and rewritten guides across the product, and the
help links inside Spott now take you to the matching page instead of the front
door.
**Also new**
* Rejecting candidates in bulk from a job's Applications view
* Live job board postings as a column or card row on the Jobs table and board,
with filtering
* Sorting on the Dashboard pipeline summary
* A configurable daily campaign limit per connected email account
* Stacked overlays, so you can arrow through jobs from the Jobs table
* VAT checks through VIES and credit checks through Creditsafe when you create a
client
* Broadbean multiposting that fills the structured sub-fields certain Benelux and
DACH job boards expect
* An interactive automation that opens the Task window
* Campaigns in draft or ongoing as a column on Candidate and Company views
* Converting a contract placement into a permanent contingent placement
* Private API endpoints for speculative application stages and custom attributes on
attachments
## Multi-language job descriptions and message templates in Automations
* **Multi-language job descriptions**: create and manage localized versions of the
same job description, so you can advertise one role in several markets without
maintaining separate jobs. [Read the guide](/docs/jobs/job-portal).
* **Message templates in Automations**: pick one of your existing
[message templates](/docs/inbox/message-templates) in an automation's send email
action instead of rewriting the message, so automated communication stays
consistent and is faster to set up.
[Read the guide](/docs/settings/automations).
**Also new**
* Job descriptions split into structured sections for deeper API and job board
integrations
* A Language attribute on jobs
* Fee splits configured on the Job Overview page before any placement exists
* Single-click imports from LinkedIn Sales Navigator and Recruiter in the Browser
Extension
* Tasks grouped into due date blocks
* A Retained milestone completed automation trigger
* Analytics reports for emails sent
* Webhook events for eSignature envelopes and for approved or declined Creditsafe
reports
* Searchable human-readable job reference IDs on VDAB postings
* Renaming automation titles and descriptions in line
* Smoother scrolling on grouped Kanban boards
* Faster table loading
* Pay and charge rates on contract placements
* New attachment endpoints in the API
## Email block list, portal stage filters, and fixed retained fees
* **Email block list**: block specific email addresses or entire domains from
email synchronization, so they are never imported into Spott. Keeps your
database clean and gives you control over what syncs.
[Read the guide](/docs/settings/accounts).
* **Company Portal stage filters**: publish candidates to the Company Portal
automatically as they move through your pipeline, and configure which stages
trigger publication, so only candidates at the right stages are shared.
[Read the guide](/docs/jobs/company-portal).
* **Fixed fees on retained jobs**: retained placements now support a fixed
success fee in addition to percentage-based fees, matching more retained fee
agreements.
**Also new**
* The [OneUp](/docs/integrations/oneup) and
[Nitro eSignature](/docs/integrations/nitro) integrations
* Email previews in the Present flow
* Hiding weekend days in the Calendar
* A fixed number of billed days on interim placements
* End dates on contingent placements that put candidates back in the available pool
* File attachments on placement pages
* Job created and Candidate rejected automation triggers
* Interim dashboards with weekly or monthly KPIs
* Deleting individual emails from the mail sync
* AI summaries that use first names
* A configurable minimum duration for call transcription
## Docked emails, test sends, and conversational job descriptions
* **Docked email composer**: dock the composer like Tasks and keep working in
Spott while you draft, instead of being locked into the compose window.
* **Send test emails**: send a message to yourself first to check formatting and
personalization before a bulk send.
* **Rewrite job descriptions with AI**: the Job Advertising page now has an Ask AI
assistant that refines descriptions through a conversation, not just a one-click
rewrite.
**Also new**
* Filtering the Dashboard by Team
* Dragging action blocks around in Automations
* Optional end dates on staffing placements, with weekly GP from the working
schedule
* A minimum call duration for VoIP providers
* Polish, Romanian, Italian, and Afrikaans as AI languages
* New automation triggers (Job created, File expired) and actions (delete
attachment, open placement, open note)
* Merging records straight from table views
* VAT numbers on the Client API
## Unique record identifiers, attachment attributes, and DocuSign
* **Unique record identifiers**: display a unique ID on every record and find
records by ID in global search. Ideal for large databases with duplicate names.
Admins enable it under Settings → Features.
* **Attachment attributes**: attachments now support custom attributes and shared
file types across records, configurable in Settings → Data Model and accessible
via the API.
* **DocuSign integration**: send any attachment for signature to one or more
recipients and track signature status from the record's files.
**Also new**
* Bulk presenting candidates from the Candidate table
* Bulk actions on the Similar Candidates tab
* Activity feeds filterable by type
* Upcoming meetings in the Calendar sidebar, with double-click scheduling
* List membership as a table column
* Email labels on send
* Over-the-air updates for the mobile app
## The Marketing suite and multiple booking types
* **Marketing**: create and send designed email campaigns with an interactive
builder, recipient lists, and full tracking of opens, clicks, and unsubscribes.
Enable it under Settings → Features. [Read the guide](/docs/outreach/marketing).
* **Booking scheduler upgrade**: create multiple scheduling links, such as a
15-minute intro call and a 1-hour interview, each with its own availability and
rules, in a refreshed booking experience.
[Read the guide](/docs/calendar/scheduler).
**Also new**
* Bulk publishing candidates to the Company Portal
* Boolean search on notes
* Kanban column counts that cycle total, in-process, and rejected
* Tenant-wide video recording controls for the Note Taker
* The AdvertsData integration
## Import jobs from anywhere and full calendar management
* **Import jobs from the internet**: bring any publicly visible job into Spott
with the browser extension.
* **Calendar management**: create, reschedule, and cancel calendar invites
directly from the Calendar, and view your teammates' calendars while
scheduling.
**Also new**
* In-job Matching rebuilt on the new search engine, with 0 to 100 match scores and
explanations
* A Kanban view for application lists
* Boolean queries on jobs, contacts, companies, and opportunities
* Multiple locations per job
* Explicit permissions for analytics reports
## Boolean search for candidates
* **Candidate Boolean search**: full AND, OR, and NOT queries in candidate
search. Spott switches to Boolean mode automatically when your query uses
quotes. [Read the guide](/docs/candidates/search-candidates).
* **Placement exports** now include nested placement form values in the Excel
output, ready for BI analysis.
**Also new**
* Automatic email warm-up for new campaign accounts
* Smarter AI filters that activate as you type
* Time-based automation triggers
## Analytics exports and matching actions
* **Export analytics drilldowns** to Excel for deeper analysis in your own BI tools.
* **Matching workflow actions**: act straight from candidate-to-job match results,
pitching a candidate to multiple jobs or bulk presenting them to clients.
**Also new**
* Filtering the Application view by job stage
* ZIP-code location filters
* Sending calendar invites as Free or Busy
* Pagination on Global Search
* A Settings search bar
## Candidate cards and stronger automations
* **Candidates as cards**: a richer, more visual layout next to the table view.
* **Automation extensions**: time-based automations, field updates, more filter
conditions, and more background actions.
**Also new**
* Enrolling a whole List into a campaign
* The Dialpad VoIP integration
* Company size and industry filters
* Recurring and all-day meetings for Gmail and Outlook
## Bulk CV parsing
* **Parse up to 1,000 CVs at once** from the Add Candidate button. Spott extracts
the details and creates the records in the background.
* **Tab metadata**: open browser tabs now show contextual titles so you can tell
pages apart at a glance.
**Also new**
* Custom attributes on Applications
* A replies-only filter in the Inbox
* CC and BCC on background automations
* Importing Contacts into a List, or Candidates into a Job, from CSV
## Application View, hierarchies, and AI filters
* **Application View**: all speculative and regular applications in one list under
Jobs, without opening each candidate or job.
* **Company hierarchies**: model parent/subsidiary and PE-owned structures.
* **AI text to filters**: describe who you are looking for in plain language and
Spott builds the filters.
**Also new**
* Previewing a campaign before enrolling recipients
* idibu multiposting
* Converting interim placements to permanent
* Optional file upload on application forms
* application.rejected webhooks
## Personal email styling and smarter record selection
* **Default font family and size** for emails, so messages from Spott match your
usual mail client.
* **Improved record selection**: every "Add to..." dialog now uses the richer
Global Search format with contextual details.
**Also new**
* Bulk actions on Search results
* Excluding placed candidates in filters
* A permission to lock placements after creation
## Retained fees and campaign upgrades
* **Retained fees with milestones**: configure milestones on the job, with values
adjusting between estimated and final salary.
* **Campaign upgrades**: campaigns now live inside Jobs, you can partially edit a
running campaign, and sequences can exit when a meeting is booked.
**Also new**
* Saved filter sets
* A clearer enrichment credit split (personal email 3, work email 1)
* Inbound call pop-ups for Aircall, Ringover, and RingCentral
* Months and days as automation delay options
## Background automations and the MCP server
* **Background automations**: trigger workflows from events such as application
moved, placement created, task assigned, or job moved.
* **Spott MCP server**: connect AI tools like Claude to securely read and write your
Spott data. [Read the guide](/docs/developers/mcp).
**Also new**
* An extensible GDPR consent model
* Optional attachment expiry dates
* Team filters
* Location Area filters on Contacts and Companies
## Search v2 and account security
* **Search v2**: search your entire candidate database, not just within one job,
with semantic job-title search and flexible location filters.
* **MFA and SSO**: multi-factor authentication and single sign-on, plus password
reset under Settings → Profile.
* **Spec workflow**: create speculative applications in bulk and present to multiple
client contacts at once.
**Also new**
* Linking opportunities to jobs, and converting won opportunities
* Bulk-updating job attributes
* Ask AI reading file attachments
* Swedish content generation
## Company insights and a bigger browser extension
* **Company information dialog**: click through to linked candidates and contacts,
headcount, and growth.
* **Browser extension upgrades**: manage notes, tasks, lists, and campaigns, and
import companies, all from the extension.
**Also new**
* A Company Portal activity feed
* Color-coded select attributes
* AI-filled candidate scorecards
* The VoIPPlay and Devyce VoIP integrations
## Faster bulk selection
* **Shift-click** to select a range of rows across all core tables.
* **Exclude previously rejected candidates** with a single filter.
* **Hyperlink variables**, including Job and Candidate IDs, for dynamic links.
**Also new**
* A Kanban view for speculative presentations
* Admin-configurable file types per record
* Sorting and filtering on Campaigns and Lists
## Placements, Company Portal, and the public roadmap
* **Placements for perm and staffing**: a clearer split across the product, with
weekly GP tracking for staffing.
* **Company Portal upgrade**: share files, scorecards, and a job overview; clients
can request interviews and leave ratings.
* **Public roadmap** at [roadmap.spott.io](https://roadmap.spott.io): explore what
we are building and upvote ideas.
**Also new**
* Exporting multiple job pipelines at once
* Duplicating an outreach campaign
* Viewing the CV inline in the Experience tab