HRRS Pro

Human Resources Recruiting System

Full enterprise ATS β€” AI screening, VMS inbound sourcing, Google Drive, email/text templates, and multi-portal access.

HRRS Pro
Enterprise Recruiting Platform
Sign in as
πŸ›‘Admin
πŸ”ŽRecruiter
πŸ‘”Manager
🏒Vendor
🀝Client
πŸ§‘Candidate
Forgot password?
Notifications
Messages
Dashboard
Good morning!
0
Active jobs
0
Candidates
0
Interviews scheduled
0
Offers pending
0
Placed
0
Offers out
0
Interviews
0
Screening
0
Submitted
⚠ No Response After Final Reminder0
These candidates never answered their screening questions after two reminders. Nothing further happens automatically β€” review each and decide.
No one currently in this state
βœ… Recently Completed Screenings0
Screening questions completed in the last 7 days. Click anyone to review β€” Next/Back lets you step through the whole list without coming back here each time.
No completed screenings in the last 7 days
0
Pending Approval β€” Candidates
0
Pending Approval β€” Vendors
0
Pending Approval β€” Clients
Pipeline snapshot
Recent activity
πŸ“ Unfinished Emails0
βœ… My Tasks
πŸ†• New Candidates
🀝 Vendor Submissions
⏳ Pending Submittals0
πŸ“€ Submittals
Job Requisitions
Create, manage, and share open roles
Posting Title TypeLocationPayCandsStatusPostedActions
Candidates
AI-ranked talent pool
Candidate Name Applied Job AI Match %City State/Province Zip Code CountryStage Modified Time EmailMobileCurrent Job TitleSkill Set Highest QualificationIndustry SourceVendor Name Split Company Associated Tags Text OptEmail OptActions
Contacts
General contacts β€” not yet formal candidates
NameEmailPhoneNotesAddedActions
No contacts yet
Vendor
Vendor profile info and notes, kept separate from portal management
πŸ“‹ Pending Recruiter Applications0
Submitted through the public "Join Our Recruiter Network" form. Approving sends the real portal invite email automatically.
AgencyContactEmailPhoneSubmissionsShared JobsPlacementsAgreementAddedNotes
No vendors yet
Clients
Client relationship info β€” company details, notes, and job history, kept separate from portal management
πŸ“Š Client Job Requests
0
Pending Approval
0
Approved
0
Declined
0
Total Requests
ClientJob TitleStatusSubmittedDecided
No client job requests yet
CompanyContactEmailPhoneStageCompany InfoJobsTasksDocumentsEmail HistoryNotes
No clients yet
Hiring Pipeline
Kanban β€” click any card to view or advance the candidate. Only candidates associated with a job appear here.
VMS Sourcing
Sign in with your credentials β€” import candidates inbound only
⬇ INBOUND ONLY β€” These integrations download job requisitions into HRRS Pro. Your jobs are never posted outward to any VMS platform.
Job Boards
Toggle boards, copy job links, post manually β€” Free & Paid
⚠ Toggle activates boards for your workflow. To actually post: copy the job share link from the Jobs page and paste into each board's submission form.
Upload Resumes
Local upload or Google Drive β€” AI parses automatically
πŸ“‚ Upload from computer
πŸ“„
Drop resumes here or click to browse
PDF, DOCX, ODT, HTML, TXT, RTF, DOC, DOT Β· batch supported Β· AI auto-parses
Also accepts CSV / Excel / Google Sheets exports for bulk import
πŸ”— Live Application Intake
No job board gives a small tool like this direct API access β€” that requires a formal ATS partnership only large platforms have. But you can still get candidates flowing in automatically: create a free Google Form as your "Apply Now" page, share that link anywhere (including as the external Apply URL when you post on Indeed/ZipRecruiter/etc, or on your Wix site), and this ATS will pull in every new submission automatically.
☁ Google Drive
There's no direct connection between Google Drive and this ATS β€” Google doesn't allow a plain website to reach into your Drive without a formal, verified integration. The real, working path is two clicks instead of one:
1. Click "Open Google Drive" below (or the πŸ“ Drive button in the top bar) β€” find your resume file and click Drive's own Download button to save it to your computer
2. Come back here and use the upload box above ⬆ β€” drag that downloaded file in like any other resume
Upload history
Uploading only extracts the resume text. Pick a job and click "Add to ATS" on each row below to actually create the candidate profile.
AI Screening
Generate questions Β· run sessions Β· results auto-saved to candidate profile
Screening questions
Select a job to generate questions
AI-ranked candidates
AI Interview Bot Results auto-saved to profile
⚠ This runs live, right here in your browser β€” it does not email anything to the candidate, and the candidate cannot access this chat remotely. Use it yourself during a call, or for internal note-taking. To send questions to a candidate to complete on their own time, use Assessments instead β€” that's the one that emails a link and lets the candidate answer remotely.
πŸ‘‹ Hi! I'm the HRRS AI screener. Select a candidate above and type start to begin. Results save automatically to their profile.
Question Library
173 interview questions across 25 competency categories
Text Interviews
SMS-style threaded interviews β€” use your saved templates
Conversations
No threads yet
Select a thread
Video Interviews
In-app + Google Meet integration β€” AI summary on end call
Google Meet Integration
Auto-generate Meet links Β· Send to candidates Β· Recordings in your Google account
Not connected β€” click Configure to set up Google Meet
Live session● Ready
πŸ§‘β€πŸ’»
πŸ‘€
No session active
Schedule to begin
Interview notes
Scheduled video interviews
Email
Send to candidates using your saved templates
Compose
Sent emails
SMS / RingCentral
Two-way messaging with templates
πŸ”— RingCentral β€” not connected
SMS threads
No SMS threads yet
Select a thread
Internal Messages
Private messages between team members β€” use @username to mention
Conversations
No conversations yet
Select a conversation
My Templates
Create email and text templates β€” reusable everywhere in HRRS
Templates0
No templates yet.
Click + New template
✏️
Select a template or create one
Calendar & Schedule
Interviews, calls, Google Meet Β· Sync with Google Calendar
June 2026
Events
No events β€” click + New event
To-do's
Personal reminders β€” anything you add here shows up in your daily "Open Items" email until you mark it done
Vendor Portal
Manage agencies β€” send real email invites
πŸ“§ "Send invite" opens your email client with a pre-filled invitation email. Your email program sends it.
Vendors
πŸ“§ To send the portal link separately: find the vendor below and click "Send portal link". Click "Assign jobs" to choose which requisitions they can see and submit candidates for.
AgencyContactEmailPlacementsAssigned JobsStatusActions
No vendors yet
Vendor access controls
What vendors can see in their portal
Client Portal
Invite-only β€” clients need your approval before they get access
Pending Client Approval0
No pending clients
Pending Job Requests0
No pending job requests
Approved / Declined Client Job Requests
Once approved, publish from here or head to Jobs to assign it to vendors.
No decided job requests yet
Clients
CompanyContactEmailAccessStatusActions
No clients yet
Candidate Portal
Invite-only access β€” candidates cannot self-register
βœ… Candidates can ONLY get portal access via an Admin email invitation. There is no public sign-up link.
Portal settings
Control what candidates can see and do once approved
βœ… You are notified immediately when an invited candidate accepts and registers
Pending Approval0
No pending registrations
⏰ After-Hours Password Issues0
Candidates who couldn't sign in after your business hours ended β€” review each morning and send a new password with one click.
No after-hours issues right now
Invited Candidates
NameEmailStatusInvitedSelf-ServiceActions
No invites sent yet
Wix Integration
Post all your jobs to Wix β€” share link or embed code
Your Wix website URL
Enter your Wix URL to generate share links and embed codes for each job
Reports
Live recruiting analytics and exportable reports
βœ… Your agenda now also sends automatically, once per day, the first time you open the ATS that day β€” you don't need to click the button unless you want an extra copy right now. This only fires while the app is actually open in a browser at least once that day; it can't send at a fixed time if nobody opens it (see Settings β†’ Notifications for details on this limitation).
0
Placements
β€”
Avg days to fill
β€”
Offer acceptance
β€”
Cost per hire
Candidates by source
Pipeline funnel
πŸ• Activity Log
Sign-in and sign-out history for your team β€” for what everyone actually worked on, see "πŸ“‹ Daily Recruiter Activity" below.
DateNameSign InSign Out
πŸ“‹ Daily Recruiter Activity
What each person actually worked on for the selected day β€” candidates added, emails sent, jobs posted, and more.
πŸ“… Interviews
Interview NameFromToCandidate NamePosting TitleInterview Status
πŸ“ž Phone Screens
Date/TimeCandidate Name
πŸŽ₯ Video Interview Stage
Candidate NameStage
🀝 Submittal to Client
Date/TimeCandidate NamePosting Title
⭐ Top Rated Candidates (80-100% AI Match)
AI ScoreCandidate NamePosting Title
πŸ“† Age of Open Jobs
Job Opening# PositionsAge (Days)
βœ… Tasks
TaskAssigned ToDue DateStatus
Users & Settings
Edit your profile, manage team, API keys
Help
Quick directions for common tasks, and what's changed recently
πŸ“¬ Your Job Mailbox Address(es)
Personal forwarding (forward any resume email here to add it to Candidates): hrrsresumes.oa0hoz@zapiermail.com
πŸ†• What's New β€” Recent Updates
  • Fixed: a blocked candidate could still silently progress through the entire reminder chain β€” a genuinely new bug, found while investigating a real incident: several places marked a screening email or reminder as "sent" unconditionally, even when the actual send was blocked and never went out at all. This let a blocked candidate's reminder timeline keep advancing on schedule as if real emails were being delivered, eventually firing a "reminder" for an email that never existed. Fixed at the source (four separate places) so a blocked or failed send is never mistaken for a real one again.
  • Fixed: merging duplicate candidates could silently orphan their real prescreening answers β€” found while investigating a real merge: their assessment answers and any documents sent to them were never reassigned to the surviving record before the duplicate was deleted, leaving that data attached to an id that no longer existed. Now correctly carried over as part of every merge going forward.
  • Fixed: a major, systemic gap β€” the core candidate sync had zero protection against a stale copy silently reverting a fresh edit β€” found while investigating a corrected email that kept reappearing wrong. Every candidate update from any device was blindly trusted wholesale, with no regard for which version was actually more recent, meaning a stale tab or device syncing for any unrelated reason could quietly undo someone else's fresh edit β€” a corrected email, a stage change, anything. Now compares timestamps per-candidate and keeps whichever edit genuinely happened last, matching the same protection already proven when saving. Tested directly both directions to confirm a fresh edit now correctly wins over stale data, while a genuinely newer edit from another device still correctly wins too.
  • Fixed: deleting a prescreening/assessment result (or a document) could silently pop right back β€” found while investigating a real report: removing one never actually tombstoned it, and the live sync listener for both had no tombstone-awareness at all, so any stale copy still holding it would bring it right back on the next sync. Fixed both the delete action and both listeners β€” tested directly end-to-end to confirm a deleted record now genuinely stays gone even when a stale copy syncs in afterward.
  • Deleted prescreening/assessment results are now recoverable β€” built directly in response to a real, permanent loss: removing one now archives the full record first (every answer included), the same way deleted candidates already are. A new "πŸ—‘ Recently Deleted Assessments" button on the Candidates page shows everything removed, with a one-click Restore.
  • Deleting records is now restricted to Administrators only, by default β€” built directly in response to a real incident: removing a prescreening result, an email log entry, or using the deep-search delete tools all previously had zero permission checks at all, meaning any signed-in recruiter could delete this data regardless of role or access level. Now blocked for every non-Administrator role by default β€” no setup needed on your end, this applies automatically.
  • Fixed: a completed screening could get processed twice, sending a duplicate notification email β€” found while investigating a real duplicate report: multiple open tabs or devices had no way to know another one was already handling the same submission, so more than one could process it independently. Now uses the same proven atomic claim already protecting job applications.
  • Agreement link locks permanently after signing β€” instantly, not delayed β€” the lockout now writes directly at the moment of signing, rather than waiting for the admin's own browser to separately process it. Once signed, the full agreement text is no longer accessible through that email link at all.
  • Real PDF download of every signed agreement β€” full legal text plus everything the vendor filled in, their signature, and timestamp, available directly from the Vendor page for your own records.
  • Fixed: a vendor's resume and application details were being saved but never actually shown anywhere β€” new "πŸ“„ Application" button on the Vendor page shows everything they submitted (role, experience, specialization, industries, why they applied) plus a working resume download, same as candidates.
  • Standard prescreening questions updated, and visa sponsorship now behaves correctly per job β€” removed the schedule question, replaced two others per request, and the sponsorship question now only disqualifies someone when the specific job genuinely can't sponsor, instead of applying the same rule to every job regardless of its actual sponsorship policy.
  • New "⏳ Pending Submittals" on the Dashboard, right above Submittals β€” candidates in In Review or R2R Sent, ready but not yet actually sent to the client. Click a name to open their profile.
  • Fixed: the "Save draft" button on the email composer was completely fake β€” it showed a "Draft saved" confirmation but never actually saved anything. Now it genuinely does, plus the composer auto-saves silently whenever you navigate away with something unfinished. New "πŸ“ Unfinished Emails" on the Dashboard shows every one β€” click a name to pick up right where you left off. Clears automatically once you actually send.
  • New "To-do's" page β€” simple, personal reminders that stay open until you mark them done.
  • New "Open Items" email, separate from the calendar Agenda email β€” gathers your open notes, candidates whose prescreen hasn't been sent, candidates waiting for review, new Vendor and Client Portal registrations, and new candidates from the last 24 hours, all in one daily email. Honestly, unsent draft emails are not included β€” the app doesn't save drafts at all right now, so there was nothing there to gather.
  • AI scoring for paragraph screening answers now weighs Must-Have and Nice-to-Have separately β€” previously only used the general job description, so structured requirements not repeated in that text were invisible to the scoring. New "Nice-to-Have Qualifications" field added alongside Must-Have, with Must-Haves weighted most heavily and Nice-to-Haves as a smaller bonus.
  • Visa sponsorship is now set per-job, correctly on your own Add/Edit Job forms too β€” this field already existed for jobs submitted through the Client Portal, but there was no way to set it when you create or edit a job directly yourself. Fixed to match, so the sponsorship question correctly knocks out candidates only for jobs that genuinely don't sponsor.
  • Yellow "HOLD" indicator on the vendor's own portal view β€” when a job is On-Hold on your side, vendors now see a clear yellow badge and their Submit button is disabled, so it's obvious not to submit candidates. Protected at three layers, not just visually.
  • New "πŸ“‹ Shared Jobs" on each vendor β€” a clean, read-only list of what's currently assigned to them: job title, status, and how many candidates they've submitted for each one specifically. Distinct from "Assign jobs," which stays the editing tool.
  • Client email replies now show up right in the app, per client β€” extends the same proven inbound-reply system already catching candidate/contact replies from your real inbox, now also matching against clients (including any additional contacts on file, not just the primary one). New "πŸ“§ Email History" per client shows both sent and received, with date/time.
  • Fixed paragraph spacing, verified against your actual template data β€” your template was pasted in from Gmail, which buries each paragraph three or four levels deep inside wrapper divs. The previous fixes only ever looked at the outermost level and never reached your actual paragraphs. This now finds every paragraph regardless of how deeply nested it is. Tested directly against the real content you pulled from your browser console, not a guess.
  • Fixed paragraph spacing for real this time β€” the previous two fixes only triggered on blank lines / double line breaks. What was actually typed was a single line break between paragraphs, which neither fix caught. Every single line break is now treated as a real paragraph boundary with its own small, guaranteed-visible gap.
  • Fixed the real cause of lost paragraph spacing on automation emails β€” the previous fix only helped when a template was already wrapped in separate blocks per paragraph. Yours was flat text with plain line breaks and no wrapping at all, so that fix silently never applied. This catches that case directly and wraps each paragraph in its own guaranteed-visible block.
  • Fixed: paragraph spacing was getting lost on automation emails sent as plain text β€” blank lines between paragraphs became consecutive <br> tags, which several email clients (Outlook especially) are known to collapse. Every paragraph now gets its own explicit, guaranteed-visible spacing instead. This is a shared, central fix, so it applies to every automation and every email send, not just one template.
  • Tags are now colored, and existing candidates can be bulk-tagged β€” new "🏷️ Tag All Existing Candidates" button runs AI tagging across your whole existing base, not just new arrivals. Each tag has its own color, shown as colored badges everywhere tags appear.
  • New "πŸ” Source Candidates" search on the Candidates page β€” search your entire candidate base by location, simple keywords, or a full Boolean search string (AND/OR/NOT, quoted phrases, parentheses) against resume text.
  • Color-coded status pills and sidebar sections β€” Applications, Submissions, Reviews, Offers, and Interviews now have distinct colors on the Candidates page; Jobs, Clients, Contacts, and Assessments are colored in the sidebar. "Notes for Tomorrow" renamed to "To-do's."
  • Photo attachment added to the Paste Resume/Profile import β€” right below the text box, attach a candidate's photo (right-click and save it from their profile, same manual, legitimate approach as pasting the text) and it saves to their profile alongside everything else.
  • AI matching now genuinely checks location, role, experience, and language β€” not just skills β€” for Remote roles, location is ignored unless the job description specifically states a restriction; On-Site/Hybrid roles weigh location normally. Role/title alignment and years of experience are now real factors too. A language listed as Must-Have is treated as a hard requirement; as Nice-to-Have, it's just a bonus. Added a visible note next to the "AI match candidates" button explaining this.
  • Fake random scoring eliminated everywhere in the app, not just where it was first found β€” traced the same fake-score pattern to 4 more places (bulk resume/CSV import, vendor submissions, Google Sheet intake sync, LinkedIn/pasted-profile creation) and fixed all of them. Vendor submissions and pasted profiles now score for real immediately; the two genuine bulk-import paths are handled by a new, safe watcher that scores a few candidates at a time in the background rather than blocking on dozens of API calls at once. New "🎯 Score All Existing Candidates" button covers anyone already in the system who never got a real score.
  • Candidate matching now genuinely checks skills, location, role, and years of experience together β€” not just skill overlap. Remote roles skip location entirely unless the job description states a real exception (like "must reside in the US"); on-site and hybrid roles weigh location fit properly. Anything framed as a Must-Have in the job description β€” including location or experience, not just skills β€” is treated as a real requirement; Nice-to-Haves are a bonus, not a dealbreaker. Also found and fixed 3 more fake-random-score locations while verifying this (manual Add Candidate, portal invites, and the pool-matching fallback) β€” 8 total across the app are now genuinely real.
  • Real AI match scoring now runs automatically when a candidate applies β€” genuinely reads the resume against the job's description and Must-Have requirements using the same real AI already proven for tags and screening scores. Also fixed: the "Associate to job" button was assigning a fake, random score despite the confirmation saying "AI match score generated" β€” it now genuinely scores too.
  • New Tags system for candidates, with real AI auto-tagging from resumes β€” kept consistent on purpose with a preset, editable master list rather than freeform text. Tags are automatically suggested from resume text the moment a new candidate arrives, using the same AI already proven for screening scores. Manually add or adjust tags anytime from a candidate's Edit profile.
  • New "πŸ“Š Client Job Requests" report β€” Pending, Approved, and Declined counts plus a detailed table, right on the Clients page, matching the style of the main Reports page.
  • Fixed: a real, serious bug from an earlier edit β€” Company Info was silently broken β€” several functions had accidentally landed nested inside another function instead of being independently callable, meaning the "Company Info" button could never have actually worked. Fully fixed and verified.
  • Task reminders and Document storage, per client β€” Tasks reuse the same proven reminder-email system already working for the general task list, just linked to a specific client. Documents let you upload and store contracts/proposals directly on a client's file, with download and remove.
  • New relationship pipeline stage on the Clients page β€” Prospect β†’ Active β†’ Past Client, a genuinely separate field from portal-access status. Existing clients already approved for portal access default sensibly to Active rather than Prospect.
  • New "Clients" nav item, right after Vendor β€” a separate, relationship-focused page (Company Info, job history, Notes/Internal) kept apart from the operational Client Portal page, same split already proven with Vendor.
  • New "🏒 Company Info" on each client β€” the first piece of the CRM build β€” company details (address, phone, website, industry) plus support for multiple contacts per client, beyond just the one primary portal login contact.
  • Client action buttons reorganized into clear sections β€” same cleanup as Vendor: status decisions, email/access, job management, and notes are now visually grouped instead of crowded together.
  • New "πŸ“Š Jobs" breakdown per client β€” job #, name, date started, status, and which vendor (if any) is assigned, all in one view.
  • Fixed: Automations were never actually synced to the shared database β€” a long-standing gap, not a recent break. They only ever lived in whichever single browser's local storage they were created in, invisible after signing in anywhere else. Now fully synced like everything else in the app β€” the fix takes effect the next time your original device (where your real automations already exist) opens the Automation page.
  • Email notification to you the moment a vendor application arrives or an agreement comes back signed β€” not just an in-app alert, an actual email, sent even if the ATS isn't open.
  • Vendor Portal action buttons reorganized into clear sections β€” status, communication, job assignment, and notes are now visually grouped instead of nine buttons crowded into one row. Also added a genuine "Activate" option for deactivated vendors, which was missing before.
  • Vendor approval is now a real, gated two-step process β€” approving an application sends only the agreement to sign, with no portal access yet. A vendor genuinely cannot be approved or receive portal access until their signed agreement is actually back on file β€” a real "Final Approve" step, not automatic.
  • New public recruiter/vendor application form β€” replaces the external Google Form, matching all its fields and Sourcing Rules text exactly. Submissions land in a real, live "Pending Recruiter Applications" queue right on the Vendor page β€” approving creates the vendor account and sends the real portal invite email automatically; denying clears it.
  • Vendor page now supports "+ Add Vendor" directly, and a new per-vendor "πŸ“¨ Submissions" record β€” automatically tracks every candidate a specific vendor has submitted (name, job, exact date & time), pulled from real candidate data rather than manually entered.
  • New "Vendor" nav item, right after Contacts β€” a separate, focused page showing vendor profile info (agency, contact, email, phone, placements, added date) with direct access to both Notes and Internal Notes, kept apart from the operational Vendor Portal page.
  • New "Activity" section on the vendor's own portal view β€” a running feed of submissions, job shares, and status updates, pulled from the existing vendor notification system. Pipeline labels simplified to Submissions, In Review, Hired, Placed.
  • New "πŸ”’ Internal Notes" β€” genuinely separate from the shared "πŸ“ Notes" thread β€” built directly in response to a real incident: internal discussion had been written into the shared, two-way Notes thread and became visible to that vendor. This new space is backed by an entirely separate data structure the vendor/client portal view never reads from at all, not just filtered β€” available for both vendors and clients.
  • New "🀝 Vendor Submissions" Dashboard card β€” vendor-submitted candidates now get their own separate section, showing vendor name, job, candidate name, and exact date & time, pulled out of the general New Candidates list.
  • "Submit Candidate" field relabeled to "Candidate Summary+Addl Info".
  • Vendor fee % and Specialization fields removed β€” replaced with real, per-placement fee tracking β€” since fees vary by placement rather than being one fixed rate. Each vendor now has a "πŸ“‹ Placements" record showing every placement they've made β€” job, candidate, fee amount, and date β€” with a running total. Entirely admin-facing, never visible to the vendor.
  • Vendor Portal welcome email replaced with a more detailed, professional version β€” sets clearer expectations for new recruiting partners, includes proper formatting, and still correctly includes the vendor's actual temporary password.
  • Same locale-date fix applied to the Client Submittal Report β€” new submittal entries now carry a reliable, unambiguous timestamp for sorting, alongside the existing display date. Older entries continue to work exactly as before.
  • Fixed: a real completion could silently never show on the Dashboard, depending on the candidate's own locale β€” found while investigating a specific, real report. The displayed date is written by whichever browser the candidate used, and can be in either MM/DD or DD/MM order depending on their locale β€” but re-parsing it always assumed US order, so a date meant to be today could get silently misread as over a week old. Now uses each record's own creation time directly instead of re-parsing that ambiguous string at all.
  • "βœ… Recently Completed Screenings" added to the Dashboard β€” shows everyone who completed their screening questions in the last 7 days, with their score, job, and pass/fail status. Click anyone to review, then step through the rest of the list with Next/Back without returning to the Dashboard each time.
  • Voice answers now get real AI scoring too β€” recordings are automatically transcribed live, for free, using the candidate's own browser (Chrome, Edge, and Safari all support this; Firefox falls back gracefully to manual review only). The transcribed text gets scored against the job description exactly like a typed answer β€” so every question type is now fully AI-scored, not just typed ones.
  • 🎭 Masked Resume β€” every candidate's profile now has a "Create masked version" button that redacts name, email, phone, address, university/graduation info, and gender markers from their resume, generates a real downloadable PDF, and saves it right on their profile for reuse β€” the original resume is never touched.
  • Real e-signature capture for Documents β€” sending a document (like a Right to Represent form) now includes a genuine signing link where the candidate types their name and date directly β€” no more "reply with your signature." Signed documents show up right on the candidate's profile with the date signed and a Print/Save as PDF option.
  • πŸ’¬ Text/SMS History & πŸ“… Interviews on Candidate Profile β€” every text message and video/phone interview tied to a candidate now shows directly on their profile, alongside emails.
  • πŸ‘πŸ‘Ž on Prescreening Answers β€” yes/no and multiple-choice questions now show whether the candidate answered correctly, right in "View Answers" and on their profile (applies to new answers going forward).
  • πŸ“ Notes & πŸ“Š Sourcing Summary on Job Requisitions β€” every job now has its own internal notes field, plus a summary table of every board it's been posted to (status, dates, applied candidates).
  • To-Do's with email reminders β€” Reports β†’ Tasks: assign a task with a due date, and get a reminder email once it's due (checked whenever the app is opened).
  • πŸ†• New Candidates on Dashboard β€” see your most recently added candidates and click straight through to the job they applied for.
  • πŸ—‘ Recently Deleted (Candidates page) β€” a real safety net: deleted candidates are kept with their full info for a while, with a one-click Restore.
  • Job history on Candidate Profile β€” moving a candidate to a different job now keeps a "Previously Applied To" record instead of silently losing it.
  • 🚫 Unmatch Selected (on a Job) β€” checkboxes next to AI-matched candidates let you clear out ones that don't actually fit, in bulk.
  • 2nd Email/Phone, Languages, and Photo fields added to every candidate profile.
  • Country field is now a searchable, type-ahead box, and the Zip field's format hint updates to match whichever country is picked.
  • Grant / Resend Portal Access β€” a candidate's profile now has a button to manually set up their Candidate Portal sign-in (for anyone added outside the normal registration flow), and it automatically switches to "Resend" with a fresh password if they haven't signed in yet.
  • Delivered Invite & Sign In tracking β€” every portal-enabled candidate's profile now shows when their invite email actually sent, and the real date/time/email of their first successful sign-in.
  • Show Salary / Hourly Rate publicly, per job β€” new toggles in New/Edit Job let you choose whether Salary and/or Hourly Rate actually appear on the public job page and job board postings, for the times a client wants pay shown.
  • Must-Have Requirements for Vendors β€” a new field in New/Edit Job, shown to Vendors separately from Prescreen Questions, so both are visible to them at once.
  • Edit standard question wording, per job β€” the 19 standard questions in Edit Assessment are now editable text, not just fixed β€” changes only apply to that one job's assessment, never any other job's.
  • Images in Templates β€” Templates now support pictures, both pasted (like a copied screenshot) and uploaded from your computer, via a new "πŸ“· Insert Image" button.
  • Resize images in Templates β€” click any inserted picture to show βž–/βž• controls, so it can be sized up or down if it doesn't look right.
  • Full text formatting in Templates β€” Bold, Italic, Underline, text size, bullet/numbered lists, text color, and Clear formatting are all available now, right in the Template editor.
  • Text color in Job Descriptions β€” a color picker was added to the existing Job Description formatting toolbar (New Job and Edit Job).
  • New Template categories β€” "Screening" and "Submittal" added alongside the existing options.
  • Mark emails as Important β€” a checkbox in email compose adds an "❗ IMPORTANT" flag to the subject and a visible banner in the body.
  • Submittals on the Dashboard β€” a new card tracks every candidate currently in the Submitted stage, with a direct link to their job.
  • Fixed: a candidate's profile reopening repeatedly on its own β€” links from certain notification emails (resume-download, prescreening-complete) left a leftover marker in the address bar that could silently reopen the same candidate's profile again on every future page refresh. Fixed by clearing that marker right after it's used the first time.
  • Passed/Failed shown on the job page β€” each job's candidate list now shows a Screening column next to Stage and Score, so who passed is visible at a glance without opening every profile.
  • Application Sent shown on the job page β€” the same candidate list now also shows whether each candidate has already been sent their application email, right next to Screening.
  • Resize images directly in the email compose window β€” the actual email you send now supports pasting/uploading images and clicking to resize them too, not just inside Templates.
  • Automations now actually send real emails β€” a real bug fix: automations previously only ever created a fake, misleading log entry saying an email was sent, without ever actually delivering anything. Now genuinely sends. "Submitted" was also added as a trigger option.
  • Bulk actions on any selected candidate, on the job page β€” the selection checkbox now shows for every candidate (not just AI-matched ones), and there's a new "Send Screening Questions to Selected" button alongside Unmatch Selected, so one selection can drive either action.
  • "Sent β€” awaiting response" on the job page β€” the Screening column now distinguishes between never sent and sent-but-not-yet-completed, instead of showing "Not screened" for both.
  • Next/Back through candidates on a job page β€” opening a candidate's profile from a job's candidate list now shows Next/Back buttons right in the profile, so the whole list can be stepped through without closing and reopening each one.
  • Move questions up/down in Edit Assessment β€” reorder any question in a prescreening assessment, not just add/remove/edit its wording.
  • Real scoring for Multi-Select questions β€” previously gave a flat, meaningless score no matter what was selected. Now gives genuine partial credit based on how many of the starred (desired) options were actually chosen.
  • Automation Delay is now real, with a cancel option β€” a significant fix: the Delay setting on an automation (e.g. "After 1 hour") was previously only stored and displayed, never actually used β€” every automation fired immediately no matter what delay was set. Now a delayed automation genuinely waits, showing up under a new "πŸ“¨ Pending Scheduled Sends" section on the Automation page where it can be cancelled anytime before it actually sends.
  • Stage colors on the candidate profile now match the job page β€” Screening (amber), Matched (purple), R2R Sent (orange), Rejected (red), Applied (blue), Placed (green), and so on β€” same color scheme as the job's candidate table, with the current stage visually emphasized.
  • Fixed: deleting from the Candidate Portal's Invited list was permanent β€” unlike deleting a candidate from the main Candidates page (recoverable via πŸ—‘ Recently Deleted), deleting from Invited Candidates never archived at all. Both now work identically β€” every candidate deletion is recoverable.
  • Fixed: several data types were missing from Export/Import backups β€” Tasks, Document Templates (including Right to Represent), the Deleted Candidates Archive, Activity Log, and 6 others were silently left out of every backup file. All now included.
  • Bulk import now supports real resume files too β€” matching the same pattern used by Zoho and other ATS platforms: upload a single .zip with all your resume files, map an "Attachment filename" column to whichever column lists each file's name, and each candidate gets their real resume attached and text-extracted automatically during import.
  • Fixed: viewing a candidate could force their profile to pop back open later, on any page β€” a background sync (a new email logged, a screening answer arriving, anything) would forcibly reopen the last-viewed profile even after navigating away entirely, since the old id was remembered but never actually checked against what was still on screen. Fixed everywhere this pattern appeared (6 places) β€” now only refreshes a profile that's genuinely still open.
  • "New" stage now covers every sourcing/collection path, not just portal registrations β€” pasted resumes, admin-invited-but-not-yet-registered candidates, recovered email contacts, converted Contacts, and ContactOut sourcing all now correctly start at New. Genuine applications (vendor submissions, Job Mailbox, Raven matches, bulk imports) are unaffected β€” checked and confirmed each one individually before touching anything.
  • Click "Stage" to group a job's candidates together β€” on a job's candidate table, clicking the Stage column header groups everyone by stage (all Matched together, all Submitted together, etc.), so a whole group can be selected and actioned together instead of hunting through a mixed list.
  • New "New" stage added β€” no more mislabeling portal registrations as Applied β€” candidates who register through the Candidate Portal without actually applying to a job now start at a genuine "New" stage (shown with no background color, as requested), instead of the misleading "Applied." Real job applications are completely unaffected β€” they still correctly show Applied and still trigger the screening automation exactly as before. Also found and fixed three separate conflicts this touched along the way (a bulk-stage dropdown, the Pipeline board's columns, and the status filter), so nothing double-counts or goes missing.
  • Fixed: a deeper duplicate-email bug found while investigating a real incident β€” a live sync listener for both scheduled sends and the email log was overwriting local data with zero awareness of deletions, meaning a cancelled or deleted entry could resurface entirely on its own. Fixed for both; found the same pattern in several other data types too, flagged for follow-up.
  • Delete email log entries from a candidate's profile β€” individually, or all at once with a new "πŸ—‘ Clear All" button, for cleaning up a cluttered profile.
  • Delayed automations now check the candidate's current stage before sending β€” if someone's stage changes before a delayed send goes out (e.g. moved out of Rejected before the delay completes), it's automatically skipped instead of sending something no longer accurate.
  • Fixed: bulk spreadsheet import never actually worked β€” found while investigating a bulk-import request: uploading a CSV/Excel file always created 3 fake, hardcoded placeholder candidates, completely ignoring the real file. Now genuinely reads your file (CSV or Excel), auto-detects which columns are Name/Email/Phone/Resume with a preview to confirm before importing, and correctly triggers the same real screening automation for each imported candidate.
  • Dashboard stats now connect to real lists β€” clicking "Screening" jumps to the Pipeline board, where every candidate card now correctly sets up Next/Back so a whole stage can be reviewed and dispositioned one after another. Clicking "Interviews scheduled" shows exactly who each one is for and which job.
  • Quick "Select Under X%" on job requisitions β€” enter a score threshold and click Select to check every matched candidate scoring at or below it in one click, instead of checking each one individually before Unmatch Selected.
  • Automatic reminders for unanswered screening questions β€” if a candidate hasn't answered within 24 hours, they get a friendly reminder; another 24 hours with no response sends a final reminder. After that, nothing happens automatically β€” they show up in a new "⚠ No Response After Final Reminder" list on the Dashboard, where you decide to Reject or Try Again (which resends the questions and restarts the whole cycle fresh). Toggle in Candidate Portal settings.
  • Voice-recorded prescreening answers β€” genuinely new, at no added cost β€” candidates can now record a spoken answer instead of typing for open-ended screening questions, using their browser's own microphone directly (no paid service involved). You can listen to recorded answers right alongside typed ones wherever you already review screening results.
  • On/off switch for voice recording β€” Candidate Portal settings now has a toggle to turn this off instantly and revert every screening link to text-only, as a safety net if you ever need it.
  • Automatic "Send Screening Questions" when a candidate applies β€” new automation action, using the same reliable short-link system already in place. Uses the existing delay/cancel safety window, and a new "πŸ€– Auto-Screening Sent" indicator on the candidate's profile confirms one actually went out.
  • Test any automation before turning it on β€” new "πŸ§ͺ Test" button on every automation sends a real preview to your own inbox first, including a genuine working link, so you can verify everything before it ever reaches a real candidate.
  • Tasks now on the Dashboard, not just Reports β€” a new "βœ… My Tasks" card shows each person's own open tasks (you and every recruiter each see just their own), with a one-click "Done" button right there. Anything due today or overdue also triggers a dismissible reminder banner right at the top of the Dashboard.
  • Submitted count added to the Dashboard β€” a new stat card shows the live count of candidates currently in the Submitted stage.
  • Fixed: a candidate edit could silently revert β€” a real, deeper bug found by investigating Lee's report directly: when syncing, any device with an older, cached copy of a candidate could overwrite someone else's newer edit just by triggering any unrelated save, since sync always trusted "this device's own copy" with no regard for which version was actually more recent. Now compares real timestamps and keeps whichever edit genuinely happened last, regardless of which device happens to save last.
  • After-hours password message for candidates β€” if a candidate fails to sign in 3 times after your business hours end (5pm, in whichever time zone you set under Candidate Portal), they now see a message letting them know their request will be reviewed and followed up on the next business day. Each occurrence also lands in a new "⏰ After-Hours Password Issues" list for you to review each morning, with a one-click New Password button right there. The existing self-service "Forgot password?" reset link continues to work exactly as before, completely unaffected.
  • Fixed: a fresh password could still fail to sign in β€” a real bug found by investigating this directly: if a candidate had more than one record sharing the same email (e.g. applied to multiple jobs, or registered more than once), sign-in always checked the password against whichever record happened to come first, not necessarily the one that was just updated. Now checks all matching records and uses whichever one's password actually matches.
  • New Password button on Invited Candidates β€” generates and emails a fresh password for a candidate, even after they've already signed in once, when the profile's own Resend button is no longer available.
  • Fixed: confusing temporary passwords β€” generated passwords (for candidate portal access and new team members) could previously contain both "0" and "o," or "1" and "l," in the same password β€” easy to mix up, especially reading one off a phone screen. Passwords now only use characters that can't be confused with each other.
  • Real AI scoring for paragraph answers β€” this is the first real AI-model call anywhere in this app (previously, anything labeled "AI" was simulated). Paragraph answers are now sent to Claude along with the job description and scored on actual relevance and quality, not just character count. If the AI call ever fails for any reason, the previous length-based scoring is used automatically as a fallback, so a completed screening is never lost or left unscored.
  • Resume parsing accuracy fixes β€” several real bugs fixed: Skills now pull from an actual "Skills" section on the resume itself (previously only ever matched a small, tech-only list, so most real-world skills were never picked up at all); Email is now validated before being trusted, rather than accepting whatever followed an "Email:" label even when that wasn't a real address; Phone number matching tightened to avoid grabbing part of an address; Experience Details extraction now recognizes more heading variations ("Work History," "Career History," "Relevant Experience").
  • Expanded formatting toolbar in Templates β€” added strikethrough, justify alignment, indent/outdent, and superscript/subscript. Also fixed a real inconsistency: the New Template screen's toolbar had drifted out of sync with Edit Template's (missing fonts, alignment, and highlight color) β€” both now always share the exact same toolbar automatically, so this can't happen again.
  • Fuller formatting toolbar everywhere β€” Font family and highlight color added to Templates, Job Descriptions, and email compose, alongside what was already there.
  • Long lists now scroll instead of taking over the page β€” the Upload Resumes history table and each job's candidate table now cap at half the page height and scroll internally, with sticky column headers, same fix already applied to the Candidate Portal list.
  • Warning before re-sending screening questions β€” sending "Send Screening Questions" to a candidate who already received that exact email now asks for confirmation first, closing a real gap where this previously had no warning at all (only the bulk-send version did).
  • Self-hosted short links (optional) β€” Settings β†’ Team Sync β†’ "πŸ”— Short Link Worker" lets you deploy your own Cloudflare Worker for short links, replacing reliance on the free is.gd/v.gd service. Every short link in the app (jobs, Careers page, screening questions, document signing) automatically uses it once set up, with the free service kept as an automatic fallback.
  • πŸ”Ž Data Recovery Search & πŸ” Check Pending Queue (Candidates page) β€” search by candidate name or job title to find anything that looks lost or disconnected; check and clear anything stuck in the registration queue.
  • πŸ“§ Recreate From Email (Candidates page) β€” paste one of this app's own notification emails and it rebuilds a full candidate record from it automatically, instead of retyping everything by hand.
  • Add Candidate now supports resume upload β€” attach a file right there and AI fills in skills, experience, and the new Address/City/State/Zip/Country fields automatically. Anything you type by hand always wins over AI's guess.
  • 🎯 Matched Jobs on Candidate Profile β€” every candidate now shows which open jobs they're a strong skill match for, with a direct link to each one.
  • "Submitted" pipeline stage added, right after R2R Sent β€” ready to use in an Automation.
  • Separate Register vs. Sign In links for your website's two Candidate Portal buttons β€” Jobs β†’ Quick Links.
  • Withdraw button in the Candidate Portal is now a real, working toggle β€” Candidate Portal β†’ Portal Settings β†’ "Allow application withdrawal."
πŸ“‹ Jobs
Create a job: Jobs β†’ + New Job. Add a description (rich text β€” bold, italic, bullet lists), mandatory skills, and prescreening questions.
Link a real assessment: open the job β†’ "+ Link assessment" β†’ pick an existing one, or create the standard 10-question set.
Generate a job board XML feed: Jobs β†’ Quick Links β†’ "πŸ“‘ Free job board XML feed."
Get a share link for a specific job: job's "πŸ”— Copy Job Link" button β€” automatically shortened.
πŸ‘€ Candidates
Add a candidate with a resume: + Add Candidate now has a real file upload β€” attach a resume and AI fills in skills, experience, and address automatically. Anything you type by hand always wins over AI's guess.
Send just the prescreening questions (not a full re-application): candidate's profile β†’ "πŸ“‹ Send Screening Questions."
Ask for an updated resume: candidate's profile β†’ "πŸ“„ Request Updated Resume."
See who's registered for the portal: their profile shows "πŸ“¨ Delivered Invite" (when the email sent) and "πŸ”‘ Sign In" (when they actually logged in, with which email).
Give someone portal access manually (added by hand, imported, or recovered): their profile β†’ "πŸ”‘ Grant Portal Access." If they already have access but haven't signed in, this becomes "Resend Portal Access" with a fresh password.
See which open jobs a candidate is a strong match for: their profile's "🎯 Matched Jobs" card, with a direct link to each one.
Find something that looks lost or disconnected: Candidates β†’ "πŸ”Ž Data Recovery Search" β€” search by name or job title.
Rebuild a candidate from one of this app's own notification emails: Candidates β†’ "πŸ“§ Recreate From Email" β€” paste the email, review, create.
Get a short link to your full Careers page: Job Requisitions β†’ "πŸ”— Short Careers Link" β€” copies a shortened version straight to your clipboard. This depends on a free, third-party shortening service, so if it's ever unavailable, it automatically falls back to copying the regular (full-length) careers link instead, along with a message letting you know that happened β€” nothing is lost either way, and it's worth trying again shortly after.
Check for stuck portal registrations: Candidates β†’ "πŸ” Check Pending Queue."
Group candidates by job, best matches first: click directly on "Applied Job" in the Candidates table header.
Search instead of scrolling when emailing or selecting candidates: the To: field and bulk-email recipient picker are both real search boxes now, not long dropdowns.
πŸ“¬ Job Mailbox β€” get resumes emailed to you routed in automatically
There's no single fixed forwarding address β€” it's set up once, through a free Zapier automation (about 10 minutes), and after that resumes emailed to a dedicated address land in Candidates on their own, no manual upload.

Full setup instructions and your personal webhook URL: Settings β†’ Organization β†’ "πŸ“¬ Job Mailbox" card.
Quick version: in Zapier, create a Zap with trigger "Email by Zapier β†’ New Inbound Email" (this gives you the actual dedicated address, like yourcompany@robot.zapier.com) β†’ add a "Webhooks by Zapier β†’ POST" action β†’ paste in the webhook URL from Settings.
Best reliability: ask candidates to paste their resume text into the email body, not just attach a file.
Want a second mailbox for a different source (e.g. personal forwarding vs. job boards)? Set up a second Zap the same way, pointed at the same webhook URL, with a mailboxLabel field added to distinguish it β€” see the full field list in Settings β†’ Organization.
πŸ“ Assessments
Create the standard set: Assessments β†’ open a job's assessment β†’ "✚ Add 10 standard questions."
Auto-generate job-specific questions from the JD: open the assessment β†’ Edit β†’ "✨ Generate from job description."
Send to a specific candidate: Assessments β†’ View β†’ search for their name β†’ Send.
πŸ§‘ Candidate Portal
Approve a pending registration: Candidate Portal β†’ find them under Pending β†’ Approve.
Give someone your "Sign In" link: Jobs β†’ Quick Links β†’ "πŸ“‹ Copy Candidate Sign-In Link" β€” separate from the "Register" link, for people who already have an account.
Give someone a link to register for the first time: Jobs β†’ Quick Links β†’ "πŸ“‹ Copy Candidate Register Link."
Turn off self-service withdrawal (candidates must email you instead): Candidate Portal β†’ Portal Settings β†’ "Allow application withdrawal."
Control what else candidates can do in their portal: Candidate Portal β†’ Candidate Portal Settings β€” these genuinely save and apply.
πŸ“… Calendar & Scheduling
Let a candidate pick their own interview time via Calendly: candidate's profile β†’ Schedule β†’ New Calendar Event β†’ Type: "Calendly Self-Scheduling-Google Meet" β€” leave Date & time blank, since they'll be the one choosing it.
"Create event" vs. "Create + Google Meet" for this type: it genuinely doesn't matter which one you click β€” this event type always generates a Google Meet link either way.
What the candidate receives: when the date/time is left blank, they get an accurate "please pick a time" email with your Calendly link β€” not a premature "scheduled" confirmation with a placeholder time.
Search for a candidate instead of scrolling: the Candidate field on New Calendar Event, New Text Thread, New SMS Thread, and Schedule Video Interview are all real search boxes now β€” type a few letters of their name.
Your Calendly link itself: Calendar & Schedule β†’ "πŸ—“ Google Calendar" β†’ Calendly URL field β€” this is what gets included in the "please pick a time" email.
βœ‰ Email
Format text (bold/italic/bullets): use the toolbar above the message box β€” works in both single Email and Bulk Email.
Send to many candidates at once: Candidates β†’ select the ones you want (or Select All) β†’ "βœ‰ Email selected."
Preview before sending: "πŸ‘ Preview" button shows exactly what the recipient will see.
See what was actually sent to someone: their profile's "βœ‰ Emails" section β€” click any Subject to open the real email.
βš™ Settings
Connect your email: Settings β†’ Email β€” connects the Gmail account that actually sends everything.
Send automated messages from a no-reply address: Settings β†’ Email β†’ the separate "No-Reply Connection" card β€” only affects automated confirmations, not anything you send yourself.
Control who can see this Help page (or any page): Settings β†’ Users & Settings β†’ Permissions, per role.
Assessments
Create customized prescreening assessments for each job β€” AI scores and ranks candidates automatically
πŸ“‹ An assessment must be linked to a job before candidates can complete it β€” nothing applies automatically. Use "Apply to ALL jobs" to instantly create the standard 10-question assessment for every job that doesn't have one yet, or link job-specific client questions one job at a time.
Assessments0 assessments
No assessments yet β€” create one and link it to a job
How Assessments Work
1. Create an assessment with custom questions
2. Link it to a job (visible in the job header)
3. Candidates apply and answer all questions
4. AI scores responses 0–100% and ranks candidates
5. Knockout questions auto-reject candidates with wrong answers
6. Rejected candidates receive an automatic rejection email
βœ… Knockout questions immediately disqualify and send rejection
πŸ“Š AI ranks passing candidates from highest to lowest %
Candidate Assessment Scores
CandidateJobAssessmentScoreStatusCompletedActions
No assessment results yet
Documents
Create, send for e-signature, and track signed documents
All Documents
No documents yet β€” create one to send for e-signature
How Documents Work
1. Create a document using the editor β€” add filler fields like [Candidate Name], [Date], [Signature]
2. Choose a candidate and set a signing deadline
3. Send for e-signature via email
4. Candidate signs and submits
5. Signed document appears under their profile
6. Candidate does not receive a copy
βœ… Signed documents are stored only in HRRS Pro under the candidate's profile
Automation
Automate emails and actions triggered by candidate stage changes
Active Automations
No automations yet
Automation Examples
βœ‰ When stage β†’ Applied: send "Thank you for applying" email
βœ‰ When stage β†’ Interview: send "Interview invitation" email
βœ‰ When stage β†’ Offer: send "Congratulations" email
βœ‰ When stage β†’ Rejected: send "Rejection" email
βœ‰ When stage β†’ Placed: send "Welcome aboard" email
πŸ“… Schedule follow-up reminder 3 days after no response
πŸ“Š Auto-run AI screening when candidate applies
πŸ“¨ Pending Scheduled Sends
Automations with a delay (not "Immediately") land here until they actually go out β€” cancel any of them right up until they send.
Nothing scheduled right now