How Searches Are Saved
Every search you create in Recruitier is automatically saved to your account. There is no manual “save” step — the moment you complete the search wizard and the search begins processing, it appears in your saved searches list. This means you never lose a search and can always return to previous results. Saved searches serve as your search history and your active monitoring dashboard. Each search retains all its original criteria, results, and any actions you have taken on those results (tags, notes, favorites).The search entity stores all your criteria persistently: job title, description,
extra keywords, confirmed and excluded skills, experience level, job type, flexibility,
recency filter, location with coordinates and radius, search source, boolean type (AND/OR),
AI search flag, monitoring status, and linked candidate ID. Nothing is lost between sessions.
The Saved Searches List
Navigate to the Search page to see all your saved searches displayed as cards in a list. The most recently created search appears at the top by default.Search Card Information
Each search card shows:| Field | Description |
|---|---|
| Search Name | The job title you entered when creating the search. Cloned searches are prefixed with “[Cloned].” |
| Status | The current processing state: “Searching,” “Classifying,” or “Done.” |
| Job Count | The number of active (non-deleted) jobs in this search. |
| New Jobs | A badge showing how many new jobs have been found since you last viewed the search (for monitored searches). |
| Creation Date | When the search was originally created. |
| Source | Whether the search was created via the recommendation engine, LinkedIn, Indeed, or another source. |
| Favorited | A star icon indicating whether you have favorited this search for quick access. |
| Cloned By | If this search was cloned by a teammate, their name and email are shown. |
Monitored Search Indicators
Searches that are being monitored for new matches display additional information:- A monitoring badge indicating the search is actively being tracked
- A new jobs count (
new_jobs_count) showing how many new listings have matched since your last visit - A last matched timestamp showing when the most recent match was found
The monitoring system is powered by background workers that periodically re-evaluate
your search criteria against newly indexed jobs. When new matches are found, real-time
notifications are delivered via Server-Sent Events (SSE), so you see the new job count
update without refreshing the page.
Managing Your Searches
Viewing Search Results
Click on any search card to open the full search detail page with all results. From there, you can:- Browse and sort the results table
- Apply additional filters within the results
- Save individual jobs to your collection
- Tag, favorite, or delete jobs
- View job details and contact information
- Initiate outreach flows
Re-running a Search
Monitored searches are automatically re-run when new jobs enter the database. The system continuously checks for new listings that match your saved search criteria and adds them to your results. You do not need to manually re-run a search — Recruitier handles this in the background.The monitoring system checks for new matches periodically. New jobs typically appear
in your search results within hours of being scraped from company career pages. You
receive a real-time notification when new matches are found.
Toggling Monitoring
You can enable or disable monitoring on any search:- Enable monitoring — Sets
is_monitored = trueon the search entity. The search will be included in the periodic new-job matching cycle. - Disable monitoring — Sets
is_monitored = false. The search retains all its existing results but stops checking for new matches.
Favoriting Searches
Toggle the favorite status of a search by clicking the star icon on the search card. Favorited searches are visually distinct, making them easy to spot in a long list. Favoriting does not change the search behavior — it is purely an organizational tool.Deleting Searches
To delete a search you no longer need:- Open the search card or detail page
- Click the Delete button (trash icon)
- Confirm the deletion
Pagination
If you have many saved searches, the list is paginated. Use the pagination controls at the bottom of the list to navigate between pages. The default page size shows enough searches to fill the screen, with older searches accessible on subsequent pages.Search States
Each search goes through several states during its lifecycle:| State | Description |
|---|---|
| Searching Jobs | The recommendation engine is scanning the database for matching listings. Vector embeddings are being compared and keyword matching is running. |
| Classifying Jobs | The AI is evaluating each result and assigning match types (excellent, good, poor) based on keyword coverage analysis. |
| Retrieving Company Info | Company details are being enriched and linked to the search results. Contact information is being aggregated. |
| Done | Processing is complete. All results are available for review. |
Most searches complete within 10 to 60 seconds. If a search remains in a processing
state for more than a few minutes, try refreshing the page. If the issue persists,
contact support.
Cloned Searches
Searches that were cloned (either by you or by a teammate) are marked with a “[Cloned]” prefix in their name and display the original search creator’s information. Cloned searches function identically to original searches — they have their own results, tags, and monitoring. The cloned search stores references to theoriginal_search_id and cloned_by_user_id
for traceability.
For more information on cloning, see Cloning a Search.
Organization Tips
As you create more searches over time, keeping your search list organized becomes important:- Favorite active searches so they stand out visually
- Delete completed searches where you have already saved all relevant jobs
- Use descriptive job titles when creating searches — these become the search name
- Review new job counts regularly to stay on top of freshly matched opportunities
- Clone and iterate rather than deleting and recreating when you want to adjust criteria
- Disable monitoring on searches you are no longer actively working on to reduce notification noise
Advanced
Search Entity Data Model
Each saved search is stored as a search entity with the following key fields:| Field | Type | Purpose |
|---|---|---|
name | String | The search name (job title entered in wizard) |
description | String | Optional description or notes about the search |
extra_keywords | String | Additional keywords beyond the title |
experience_level | JSONB Array | Selected experience levels (multi-select) |
job_type | JSONB Array | Selected job types (multi-select) |
flexibility | JSONB Array | Selected flexibility options (multi-select) |
when | JSONB Array | Recency filter selection |
location | String | Location name for display |
lat / lon | Float | Geocoded coordinates for radius filtering |
radius_km | Integer | Search radius in kilometers |
source | Enum | LINKEDIN, INDEED, or RECOMMENDATION |
type | Enum | AND or OR boolean logic |
pages | Integer | Number of result pages to fetch |
state | Enum | Current processing state |
ai_search | Boolean | Whether AI-enhanced features are enabled |
is_monitored | Boolean | Whether the search watches for new jobs |
new_jobs_count | Integer | Count of unreviewed new matches |
candidate_id | UUID | Optional linked candidate for CV-based matching |
How Monitoring Works Under the Hood
The monitoring pipeline operates as follows:- A background worker periodically scans all searches where
is_monitored = true - For each monitored search, it re-runs the search criteria against the pool of recently indexed jobs (jobs added since the last monitoring cycle)
- New matches are identified by comparing against the existing result set for that search
- Newly matched jobs are added to the search’s result set with the “New” flag
- The search entity’s
new_jobs_countis incremented by the number of new matches - A real-time SSE notification is published to the user’s active session, triggering a UI update without page refresh
How Search Connects to Candidate Matching
When a search has acandidate_id, it establishes a connection between the search and a
specific candidate profile. This enables:
- CV-based matching: The search criteria can be derived from the candidate’s resume and skills profile
- Candidate-job presentation: Results can be presented in the context of the candidate’s profile, highlighting matches and gaps
- Match tracking: The relationship between the search and candidate enables the candidate-job matching workflow where you track which jobs are presented to which candidates
Power-User Tips
Use search state to prioritize your review queue
Use search state to prioritize your review queue
When you have multiple searches in progress, use the state indicators to prioritize:
searches in “Done” state are ready for immediate review, while “Searching” or
“Classifying” searches can be checked later. Do not wait for all searches to complete
before starting your review — begin with the first one that finishes.
Monitor strategically for different market segments
Monitor strategically for different market segments
Create separate monitored searches for different market segments: one for “Frontend
Developer” in Amsterdam, one for “Backend Engineer” in Rotterdam, one for “DevOps
Engineer” remote. Each monitor operates independently, giving you targeted alerts for
each segment. This is more effective than a single broad search.
Track new job velocity to gauge market activity
Track new job velocity to gauge market activity
The
new_jobs_count on monitored searches is a useful proxy for market activity. If
a monitored search for “Data Engineer” consistently finds 5-10 new jobs per week, the
market is active. If it finds 0-1, the market is cold. Use this intelligence to advise
candidates on timing and set realistic expectations.Related
- Creating a Search — How to create new searches
- Cloning a Search — Duplicating searches for teammates
- Search Results — Navigating your results

