Job Search in Tornevall Tools helps you search for work from a personal profile instead of relying on one generic query. You describe what you are looking for, where you can work, what matters to you and what should be filtered out. Tools then uses that profile when new jobs are discovered, evaluated for relevance and saved.
The project started as a side project to help my partner with a real job search. From the beginning, the idea was to build a reusable foundation that could be adapted to different people, professions and situations.
Job Search is built around current searches of the public web and structured job sources. AI is used both to interpret the saved search profile and to help assess which discovered jobs are actually relevant to that specific profile. Tools verifies the links and stores the results so previously seen listings, new jobs and updates can be kept apart.
The idea is not to reproduce a raw list of search-engine results. The search starts from the user's own criteria and tries to surface the jobs that are worth a closer look.
Relevance can be shaped with, among other things:
This means two people can use the same service with completely different profiles and receive different kinds of results.
You can keep several search profiles at the same time. One profile can focus on a particular field while another searches more broadly for adjacent roles.
Each profile has its own criteria, notification settings and results, so different directions can be explored without mixing everything into one search.
On the signed-in listings page, every profile is shown in its own responsive section that can be opened or closed independently. Recent search runs also have expandable run reports with result counts and safe diagnostic information; a full report is available only to the user who owns that historical run.
The profile overview groups the common controls: start a manual search for a selected profile, rename the profile, update the SMS number, test notifications, and open the Tools Shop. Manual runs continue to follow the service's normal cost, cooldown and provider limits.
The main Job Search page keeps each search profile in its own collapsible section. The denser table view is the default whenever the page loads, and you can temporarily switch to the responsive card view for the current page session. The list also has an AJAX filter that searches the visible listing columns, for example location, title, employer, source or status. Table headers can be clicked to toggle ascending or descending sorting for their columns, and the separate sort control remains available without reloading the page. Older listings that are not attached to a profile remain available separately, and narrow screens fall back to the responsive presentation instead of forcing page-level horizontal scrolling.
Recent search runs are also available as collapsible reports. They show whether the run completed, the result counts, safe web-search diagnostics and useful zero-result or failure information. A full owner-only report can be opened for more detail without exposing raw prompts, provider payloads, credentials or another user's current profile information.
Job Search has an included base allowance, so the core service does not require a purchase. The profile overview shows the remaining included runs and any extra Job Search credits. One extra credit is consumed only when an additional logical search beyond the included allowance completes successfully; failed searches release the reservation and provider retries do not cost extra.
Administrators can also grant Job Search credits as a gift. They can permanently waive the requirement for a user to top up Job Search credits themselves, or set the same waiver for a limited complimentary period. Included capacity is still used first; after that, eligible searches continue as administrator-sponsored runs without spending the user's existing credit balance. These waivers do not remove profile limits, minimum search intervals or provider rate limits, and a temporary period ends automatically at the configured time.
Each search profile can keep its own CV and cover letter. PDF, DOCX and Markdown can be used as source material. Tools keeps the original file private and uses an editable Markdown working copy as the AI context.
CV information can also be stored as separate reviewed entries for work experience, projects, education, certifications, skills and public professional links. Tools can suggest entries from the saved CV or from allowed public professional sources, but web-derived suggestions must expose source evidence and be approved before they are saved.
Job Search can create an application draft using the advertisement evidence, search profile, CV and cover letter as context even before an employer email address has been verified. If important facts are missing, the service should ask for them instead of inventing qualifications or job details. The owner gets an editable pre-send preview and can send a test message to a chosen address without contacting the employer. A real application is never sent automatically and remains blocked until the recipient has been freshly verified from the advertisement immediately before an explicit send.
The Android app can open the same reviewable Tools application workspace through a short-lived single-use handoff for the signed-in listing owner. The app does not copy its long-lived Job Search bearer into a browser link. An employer's own application page remains a separate link, so Application means the Tools draft/review workflow while Open application page can lead to the external employer form when one exists. The existing rule still applies: nothing is sent automatically.
Swedish searches use both structured job sources and normal web discovery. This includes Arbetsförmedlingen JobSearch/Platsbanken, JobAd Links, an accumulated local JobTech data set, and broader web search that can also find employer career pages and relevant specialist job boards.
A user can also save personal public job sources that are reused by that user's profiles. Administrators can add global discovery sources and preferred employers that apply to every profile. Configured sources improve discovery, but a candidate still has to match the profile rules and be verified as an individual job advertisement before it is stored.
A search profile can be shared as a read-only public page with its current verified jobs. Sharing is optional and configured per profile. A published profile also gets an RSS feed and a public JSON endpoint for the same active, current, non-dismissed jobs, so the curated list can be embedded in WordPress or consumed by another site. If you want a demo or a more transparent profile, a second option can also publish the profile's instructions, exclusions, relevance rules, active state and notification-channel choices. Contact details are never included.
Enabled profiles can run automatically. When a run finds genuinely new verified listings, Job Search can notify the profile owner according to that profile's settings.
Results are also stored in Tools, so the same listing does not have to be treated as completely new every time it is found again.
Tools also rechecks older active listings in small background batches. Jobs that are confirmed to have disappeared leave the current list, while temporary site or network failures do not make a listing expire.
After changing a profile's search criteria, you can run a fresh search immediately to try the new configuration. If the profile has not changed, normal interval, daily-run and AI-budget limits apply to a manual rerun.
SMS notifications require a verified mobile number. You can add or change the number from the search profile overview; Tools sends a six-digit code and does not use the new number for SMS until the code is confirmed.
If a listing is technically relevant but still wrong for you, the profile can be refined with negative keywords, exclusions and custom instructions. From the job list you can either choose an AI suggestion or type a custom negative word or phrase directly. Nothing is saved until you explicitly add it.
This allows a search profile to become more precise over time without rewriting the entire search.
The configuration page also has a Analyze and improve profile review for cases where recent results still feel off. It first opens a short problem-description box. You can describe the mismatch or choose No, analyse directly to continue without extra feedback. The review compares the saved profile with a bounded set of recent outcomes, explains plausible profile gaps and asks focused follow-up questions. When you provide a problem description, it is used as review context. The review answer follows your supported preferred language, English or Swedish. Your answers can be moved into the existing AI instruction helper, which now produces longer and more complete alternatives. Nothing from the review is saved automatically.
Saved instructions also have a private revision history. When instructions are changed or cleared, the previous state remains available from the same profile editor so an earlier version can be restored explicitly.
The first-party Android client can use a separate owner-bound Job Search credential to read the signed-in user's profiles, search entitlement and verified jobs. It can also start a normal manual search and dismiss or restore the user's own listings. The same search, cost and provider limits still apply as on the web.
Job Search is developed continuously based on how the service performs in real searches. If you find a poor match, notice a missing source, encounter a bug or have an idea that could make the service better, use the Tools suggestion board, where Job Search is preselected. Bugs and feature requests can also be followed publicly in the Tornevall Tools GitHub issue tracker.
Job Search requires a signed-in Tools account.
For detailed information about profiles, sources, CVs and applications, notifications, scheduling, administration and technical behavior, see the full Job Search documentation.
The Tools Android app can open a separate editor for the selected Job Search profile. The editor reads and saves its name, search instructions, keywords, locations, exclusions and relevance rules. If the profile changed elsewhere, reload it before saving. This uses the owner-bound Job Search credential and the same underlying settings as the web editor.
The Job Search profile editor can watch how many unique, relevant, still-active advertisements were actually published within the last 7, 14 or 30 days. Configure the minimum count per profile. After at least two successful searches within the selected period, a low count may show a compact warning with an action to analyze and improve the profile. The analysis is advisory and does not change instructions automatically. 'Stop asking' persists for that profile across later runs and rolling periods; re-enable the hint explicitly in the same profile editor. You can optionally arm one low-result email, which is sent only once and must be manually rearmed to receive another. Ordinary new-job notifications are separate. Sparse or failed execution history does not prove that there are no jobs.