Recruiter AI Employee

Ema's Recruiter is an AI-powered hiring platform that revolutionizes how you identify and hire talent. This intelligent system transforms weeks of manual screening into automated candidate discovery, assessment, and engagement processes that run 24/7, helping you find exceptional talent in weeks, not quarters.

The platform combines natural language search capabilities with deep social media insights, real-time news monitoring, and personalized engagement tools to discover hidden talent and accelerate your hiring process while reducing bias through AI-powered evaluation.

This workflow is instantiated by copy, so any updates to the template will not retroactively change existing AI Employees built from it.

Anatomy

A Recruiter AI Employee has these tabs:

TabWhat it's for
SearchList of all searches. Create new searches here.
ConfigurationConnect email and LinkedIn senders for outreach, and connect an ATS.
PermissionsWho can use this AI Employee.
DetailsName, description, and other AI Employee metadata.

Each search holds its own job description, filters, scorecard, candidates, and outreach sequence.

Core concepts

ConceptWhat it is
SearchA single hiring effort tied to one role.
FiltersConstraints on the candidate pool (location, company, role, etc.) using Must / Preferred / Exclude logic.
ScorecardWeighted criteria (Required / Preferred) that every candidate is scored against.
Public profilesCandidates from Ema's external index.
Internal talentCandidates from your connected ATS.
Outreach stageWhere a candidate sits in the outreach lifecycle (e.g. Email sent, Interested).

How a search flows

  1. Create the search (name + description).
  2. Enter a natural-language query or upload a JD.
  3. Review the filters Ema extracted.
  4. Review and edit the scorecard.
  5. Configure the outreach sequence and preferences, then click Begin Search.
  6. Review and shortlist candidates. Then in the Shortlisted candidates tab, select candidates and click Start Outreach to enroll them in the sequence.

Beta -- When an ATS is connected, candidates from your pipeline appear in the Internal Talent tab alongside public profiles. See Connecting an ATS.

Setting up the Recruiter AI Employee

Before searches can send outreach, the AI Employee needs at least one connected sender. Senders live on the AI Employee, not the search -- once connected, all searches in this AI Employee can use them.

Connect an email sender

  1. Open the Configuration tab on the Recruiter AI Employee.
  2. Click Connect email and choose Gmail or Outlook.
  3. Complete the OAuth flow with the mailbox you want to send from.

Messages send from your real mailbox and appear in your Sent folder.

Connect LinkedIn

  1. Open the Configuration tab.
  2. Click Connect LinkedIn.
  3. Authorize the connection in the LinkedIn flow.

Connect an ATS (Beta)

ATS connection also lives in the Configuration tab. See Connecting an ATS for what's currently supported.

Picking which sender a search uses

When you create a search, the outreach setup step lets you pick which connected email and LinkedIn account it should use. You can connect multiple senders at the AI Employee level and assign different ones to different searches.

Common questions

Q: My OAuth keeps failing.

The most common cause is partial scope grants. Approve all permissions Ema requests during OAuth -- denying any will block sending. If you have multiple Google or Microsoft accounts, do the connection in an incognito window.

Q: My LinkedIn account shows as expired.

LinkedIn sessions can drop, especially if you log out of LinkedIn elsewhere. Reconnect from the Configuration tab -- sequences resume automatically once the connection is healthy.

A search is a wizard. You'll go through five steps, then click Begin Search to launch.

  1. On the Search tab, click + New Search.
  2. Enter a Search name (e.g. "Software engineer") and a short Description.
  3. Click Save.

Step 2 -- Describe who you're looking for

You must describe the role in one of two ways:

  • Natural language -- type a description of the ideal candidate in the "Find your next great hire" box (e.g. "Software Engineers in the United States with experience in React").
  • Search using a job description -- upload a JD as a file (PDF, DOC, DOCX, TXT). Maximum JD length is 20,000 characters; longer JDs are truncated before parsing.

Ema parses your input and extracts filters. You can't skip this step -- every search starts from a natural-language query or a JD.

Step 3 -- Review filters

The filters panel groups constraints by category. Each filter has three options:

  • Must -- hard filter; every candidate must match this. Stacking too many Must constraints sharply narrows results.
  • Exclude -- hard filter; every candidate must not match this.
  • Preferred -- soft signal; doesn't filter the pool, but boosts the candidate's score when matched. Use this for things that are nice-to-have but shouldn't disqualify candidates.

Filter categories

CategoryFiltersWhat it controls
JobsJob Title, Job Function, SeniorityThe role the candidate currently holds.
LocationCountry, State / Region, City, ContinentWhere the candidate is based.
CompanyCurrent Company, Past Company, Company Type, Employee CountThe companies the candidate has worked at.
IndustryIndustry, Industry KeywordsThe industry of the candidate's current or past employers.
ExperiencesYears of Experience, Years in Current CompanyHow long the candidate has been working in total or in their current role.
Revenue and FundingRevenue Range, Funds RaisedThe size and stage of companies the candidate has worked at.
EducationSchool, School Location, Degree, Field of Study, Graduation YearThe candidate's educational background.
LanguagesLanguageLanguages the candidate speaks.
Skills and KeywordsSkillSkills and keywords mentioned in the candidate's profile.

Edit filters as needed, then continue.

Step 4 -- Review the scorecard

Ema generates a scorecard from your filters and JD/NL input. Each criterion is Required or Preferred:

  • Required -- heavily weighted; candidates missing this score low.
  • Preferred -- boosts the score when present, doesn't penalize when absent.

Edit names, descriptions, and weights. Add or delete criteria. The scorecard populates even without a JD -- it's built from whatever input you provided in Step 2.

Each candidate is scored 1-5 against every criterion: Not a match (gray, 0-2), Potential fit (yellow, 3), Good match (green, 4-5). The aggregate score shown in the candidate list is a weighted average of all criteria, with Required criteria contributing more than Preferred.

Step 5 -- Configure outreach

Set up the outreach sequence and preferences:

  • Sequence steps (email and LinkedIn).
  • Sender to use (chosen from the senders connected in Configuration).
  • Daily Candidate Limit -- caps how many shortlisted candidates start outreach per day.

Click Begin Search. Ema fetches and scores candidates in the background.

Common questions

Q: My search returned very few candidates.

The most common cause is over-restrictive Must filters. Every Must filter narrows the pool, and stacking several (specific city + specific company + narrow seniority) can shrink results to almost nothing. Move non-essential constraints to Preferred -- they'll still influence ranking without filtering candidates out.

Q: I uploaded a JD but the parsed filters look wrong.

Try pasting the JD as text in the natural-language box instead of uploading a file. Scanned PDFs or files with heavy formatting can produce noisy parses. Also confirm the JD is under 20,000 characters -- longer JDs get truncated before parsing.

Reviewing candidates

Once a search is launched, candidates appear under the Search candidates tab while scoring runs in the background ("Generating..." appears in the Score column until ready).

Tabs and sub-tabs

  • Search candidates -- candidates surfaced by the search, with two sub-tabs:
    • Public Profiles -- from Ema's external index.
    • Internal Talent -- from your connected ATS (when ATS is connected).
  • Shortlisted candidates -- candidates you've shortlisted (see Shortlisting and outreach).

The candidate table shows Candidate, Company, Role, Score, plus per-criterion columns from your scorecard.

Candidate drawer

Click a candidate to open the drawer. Tabs:

TabWhat you see
OverviewHeadline summary and aggregate score.
ScorecardPer-criterion score with the citation the LLM used.
NewsRecent news mentions of the candidate or their company.
SocialPublic profile signals from sources like LinkedIn, GitHub, Twitter/X, personal websites, blogs, and academic pages.
ActivityStage history and outreach activity for this candidate.
NotesFree-text notes shared with the team.
ContactVerified contact details where available.

Shortlisting

Click the bookmark icon on any candidate to move them to the Shortlisted candidates tab. Shortlisted candidates persist across search re-runs even if you edit filters or the scorecard.

Managing outreach for a candidate

The Activity tab in the candidate drawer shows the outreach timeline for that candidate -- every step that's been queued, sent, paused, cancelled, or failed, in order. From here you can:

  • Send Now -- dispatch the next queued step immediately, ignoring the schedule and Daily Candidate Limit.
  • Pause -- pause outreach for this candidate. Resume from the same control later.
  • Cancel Outreach -- stop the sequence for this candidate permanently. This cannot be undone.

If the candidate has replied, the reply appears in this section as well.

Common questions

Q: Scores are stuck on "Generating..."

Scoring runs in the background and can take a few minutes for large candidate pools. The page polls automatically; leave the tab open or come back. If it's been over an hour, reach out to support.

Q: A candidate's News or Social tab is empty.

Enrichment is best-effort and depends on the candidate's public footprint. Sparse profiles produce empty tabs. The aggregate score does not depend on these tabs.

Shortlisting and outreach

Shortlisting a candidate does not start outreach on its own. To enroll candidates in the sequence configured for the search, open the Shortlisted candidates tab, select the candidates you want to contact, and click Start Outreach.

Outreach stages

The Shortlisted candidates tab shows an Outreach stage column. Stage values you'll see:

StageMeaning
Email sentEmail step has been sent.
LinkedIn connectionLinkedIn connection request sent.
LinkedIn message sentLinkedIn DM sent (after connection accepted).
Interested / Neutral / Not interestedManually-set status reflecting the candidate's reply.

Replies pause the sequence for that candidate automatically. You can read the reply and set the candidate's status (Interested / Neutral / Not interested) from the Activity tab in the candidate drawer.

Daily Candidate Limit

The Daily Candidate Limit (set in the search's outreach preferences) caps how many shortlisted candidates start outreach in a 24-hour window. The default is 10. Once the cap is hit, the rest queue and start the next day.

Common questions

Q: I shortlisted candidates but no outreach has gone out.

Check four things:

  1. Did you click Start Outreach? Shortlisting alone doesn't enroll candidates -- you have to select them in the Shortlisted candidates tab and start outreach explicitly.
  2. Sender connected and not expired? Configuration tab on the AI Employee.
  3. Daily Candidate Limit hit? New candidates queue until the next day.
  4. Sequence configured for the channel you expect? A LinkedIn-only sequence won't send email, and vice versa.

Q: A candidate replied but the stage didn't move to Interested.

Reply detection pauses the sequence, but the Interested / Neutral / Not interested status is set manually. Open the candidate's Activity tab to read the reply and set the status.

Editing a search after launch

Searches aren't locked once launched -- you can revise them at any time. Click Edit setup in the search header to step back through the wizard.

What re-runs

When you save changes:

  • Edit JD or NL query -- filters re-extract, then candidates re-fetch and re-score.
  • Edit filters (Must / Preferred / Exclude) -- candidates re-fetch and re-score.
  • Edit scorecard criteria or weights -- existing candidates re-score; no re-fetch.
  • Edit outreach sequence or preferences -- applies to candidates shortlisted from this point forward; in-flight outreach is unaffected.

What's preserved

  • Shortlisted candidates stay shortlisted across all re-runs.
  • Notes on candidates persist.
  • Outreach activity and stages for candidates already in outreach are preserved.

Common questions

Q: I changed criteria and rankings didn't update.

Re-scoring runs in the background and the page polls. Wait a minute and refresh the candidate list. If the Score column still shows old values, click Edit setup and confirm the changes saved.

Q: I broadened the filters and don't see the new candidates.

The Public Profiles list updates as new candidates are fetched and scored. Sort by Score or scroll to load more -- newly fetched candidates may rank below the originals if their scorecard fit is weaker.

Connecting an ATS (Beta)

Beta -- ATS connection is in beta. Scope is currently limited to reading candidates from the ATS into Recruiter. Pushing candidates back to the ATS is not supported.

When an ATS is connected, candidates from your pipeline appear in the Internal Talent sub-tab of Search candidates, scored against the same scorecard as public profiles and deduplicated against the external index.

Connecting

  1. Open the Recruiter AI Employee and go to the Configuration tab.
  2. Find the ATS section and click Connect ATS.
  3. Choose your provider and complete the OAuth flow.

What gets pulled in

  • Candidates from selected jobs in the ATS.
  • Basic profile fields (name, contact, resume text, current ATS stage).
  • Historical candidates, where the provider supports it.

What is not supported in beta

  • Pushing shortlisted candidates back to the ATS.
  • Two-way stage sync (changes in Recruiter don't reflect in the ATS, and vice versa).
  • All ATS providers -- the supported list is shown during connection.

Common questions

Q: I connected an ATS but the Internal Talent tab is empty.

Initial sync runs in the background and can take several minutes for large pipelines. If it's been over an hour, contact support -- the sync log will show whether the pull ran.

Q: An ATS candidate has very little detail.

Field availability depends on the provider. Some ATSes expose only minimal fields over their API.

Last updated: Jul 3, 2026