Job Search uses personal search profiles to find, verify, and store listings that match the user's criteria.
A user can create several profiles for different types of work. Each profile can contain:
A profile is eligible for automatic runs only after it contains at least one criterion or instruction and has been enabled.
Job Search keeps one platform-wide automatic schedule for the enabled, configured search profiles. Existing installations remain in the backward-compatible Daily mode unless an administrator changes the cadence.
Administrators can open Platform Jobs at /admin/jobs and choose Service cadence. Job Search can then use either:
If interval mode is selected before any automatic run has been recorded, the first batch is due immediately. A scheduled batch processes the enabled and configured Job Search profiles through the normal Job Search flow. Changing the automatic cadence does not itself start a manual search; administrator Run now actions remain separate.
On /job-search/config, every search profile has an "AI suggestions" button. The helper analyses that profile's saved keywords, locations, instructions, relevance rules, and exclusions and returns short name suggestions.
The helper can only be used for profiles owned by the logged-in user. A suggestion must be selected explicitly before it is placed in the name field, and it is not saved until the user clicks "Rename". The AI helper never renames a profile automatically.
Negative keywords are used when a role or phrase should not appear in future matches for a specific search profile. On /job-search/config, they can be entered manually under Exclusions by selecting the Keyword type.
On /job-search, listings linked to a search profile also provide an AI - negative keyword action. The helper uses the stored listing fields together with that exact profile's saved search criteria and proposes up to three specific words or short phrases. It must not invent advertisement body text that Tools has not stored.
An AI suggestion never changes the profile automatically. The user must click Add on a selected suggestion before it is saved as a negative keyword in the listing's own profile. Repeating the same save does not create a duplicate. Adding a negative keyword and dismissing the current listing are separate actions.
If a visible listing still matches a saved negative keyword in its title, employer, or location, Job Search shows a "Negativ: ..." badge under the listing title. The match information is retained if the listing is dismissed, but the badge is hidden while dismissed and shown again if the listing is restored. A newly saved AI suggestion that matches the current listing can add the badge immediately without reloading the page.
Older listings without a linked search profile must not silently use another or default profile. The negative-keyword AI action is therefore unavailable for those listings.
New and updated listings are stored under the correct user and search profile. A link is verified before the listing is shown. Previously reported listings are marked so the same result is not treated as new on every run.
Job Search keeps the saved profile criteria separate from the machine-output and verification contract when asking the provider to search the web. This prevents schema and verification instructions from becoming the provider's actual web-search query.
Web search remains mandatory. New provider calls use the Responses API's native Structured Outputs contract for the machine-readable listing fields instead of relying on a model-authored Markdown table. The historical Markdown parser remains available only as a compatibility fallback for older stored/provider responses.
A provider HTTP success is not automatically treated as a successful Job Search run. The response must complete normally, use the required web-search tool and produce parsable structured output. Incomplete provider responses fail explicitly rather than becoming an empty result set.
Scheduled background runs are system work for enabled profiles and bypass the interactive per-user Job Search budget and cooldown guards. Provider-side limits still apply: short-lived OpenAI rate limits and transport timeouts are retried with bounded backoff, using the provider's requested retry delay when available. A max_output_tokens incomplete response is retried with lower reasoning effort so the listing payload has room to complete. Permanent authentication and billing/quota failures remain hard failures and are reported instead of being retried indefinitely.
Each run records provider evidence in the dedicated Job Search audit trail, including whether web search was used, exposed search queries/calls, source or citation counts when available, parsed candidate count, provider response state and an evidence state. A run where web search was used but no sources, citations, or parsed candidates were exposed is recorded as a degraded evidence state rather than being indistinguishable from a verified zero-match search. A provider response that does not use mandatory web search fails the run.
Sanitized Job Search audit summaries can also be routed through the shared Alert Engine Slack audit category. These summaries may include provider status, exposed search queries and aggregate evidence counts, but not raw provider bodies, credentials or private prompt content.
Notification channels are configured separately for each search profile.
Each profile also has Send test beside email and SMS. The button sends one test message to the signed-in profile owner's current account email address or mobile number. It works independently of the saved channel checkbox, because clicking the button authorizes that one test delivery only. The test does not save notification preferences, start Job Search, create a normal Alert delivery record, or change notification timestamps. The profile ownership check is enforced by the backend, and audit records contain channel/count metadata without recipient addresses or phone numbers.
Email delivery can be disabled centrally by an administrator. The separate administrator report and failure reporting are not affected by the user's profile choices.
Job Search profiles participate in the shared Tools Alert Engine. This gives Job Search and Web Search Alerts a common run, result, deduplication, owner-delivery, and retry lifecycle while keeping the existing Job Search screens and search execution path.
In the administrator overview, an administrator can rename a configured search profile or assign it to another user. These actions are saved over AJAX and update the row directly without a full page reload. The normal form buttons remain available and still work without JavaScript.
The rename controls also include an "AI suggestions" button. It uses the same profile analysis as the user's own profile list. A suggestion must be selected explicitly before it is placed in the name field, and it is not saved until the administrator clicks "Rename".
When a profile is assigned to another user, its search criteria move with it. Historical runs, listing history, previous dismissals, and Alert Engine history remain with the previous user according to the existing ownership rules.
The administrator overview keeps Job Search execution history paginated at 20 runs per page instead of growing indefinitely.
Job Search can be reached from: