DMN/Software

ProjectsJob finder

Remote job finder and application tracker

A self-hosted web application that finds fully remote jobs advertised worldwide that can actually be taken while living in Germany, and tracks your own applications with status, notes and reminders.

Job list in the app with sample data: 34 jobs scored, 7 open, 2 excluded, 25 discarded or below the score threshold. Below it the jobs sorted by score, at the top Senior Frontend Engineer (React, TypeScript) at the sample company Nordlicht Software scoring 91, each with company, remote, the age of the listing and a reason
The job list in the app, which is in German. Captured with sample data, companies and jobs are made up.

Key facts

As of

Sources
15 (8 job boards, 7 applicant tracking systems)
Scored
3,389 jobs
Above the score threshold
370
Eligible from Germany
175, another 195 excluded
Tests
369 (362 with Vitest, 7 with Playwright)

Remote does not mean anywhere

Many listings are marked as remote and still only apply to one country. The app reads the residence requirements from every listing and keeps only jobs that can be accepted from Germany.

Excluded jobs do not disappear. They stay visible, together with the sentence from the listing that ruled them out. That way every decision can be checked.

Applications are always sent by hand. The app sends nothing automatically.

Excluded sample job Product Engineer (React) at Coastline scoring 88, with its evidence open: the listing is restricted to the USA, Germany is not included. Below it the matches This role is open to candidates based in the United States only, You must be authorized to work in the US and Location: Remote, US
Evidence for an excluded job with the matching lines from the listing. Captured from the app with sample data.

Finding jobs

Jobs come from several job boards and directly from the applicant tracking systems of companies. If the same job shows up in several sources, it is merged into one entry.

The company directory grows on its own. The app recognizes the applicant tracking system from the links in job listings, uses AI once a week to look for more companies, and a crawler reads career pages. It respects robots.txt and requests each domain at most once every two seconds.

Job boards

  • Remotive
  • RemoteOK
  • Himalayas
  • Jobicy
  • We Work Remotely
  • Arbeitnow
  • Adzuna
  • Hacker News “Who is hiring”

Company applicant tracking systems

  • Greenhouse
  • Lever
  • Ashby
  • Workable
  • Recruitee
  • Personio
  • SmartRecruiters

Matching in three stages

First, hard filters sort jobs out without any AI. Then pgvector compares the profile with the remaining jobs by the similarity of their vectors. The embeddings are created locally with Transformers.js and the multilingual model multilingual-e5-small.

Only what is left after that gets rated by an AI with a score from 0 to 100, with reasons and the gaps in the profile.

The provider, Claude or Gemini, can be chosen for each step. A daily limit caps the calls.

Header of a sample job with score 87, remote, DE, published 18.09.2026 and a link to the original. Below it the eligibility card with possible, DACH includes Germany, DACH only and the match Remote aus Deutschland, Österreich oder der Schweiz. Then the scoring card, in favor: Next.js and React in the frontend, TypeScript, Node.js and Postgres, fully remote with German as the team language, gaps: GraphQL is listed as a plus and the listing asks for AWS experience
A job scoring 87. Captured from the app with sample data.

Tracking and mail

The app tracks every application with status, notes and reminders.

The app sends mail through Resend, with templates built in React Email. Every day a digest of the best new matches arrives, along with reminders for follow-ups that are due.

If Resend reports a hard bounce or a spam complaint, a webhook turns the digest off. The webhook signature is verified first.

Sketch with invented jobs, not a screenshot.

Security

The app holds CVs, references and GitHub tokens.

Technology

Frontend
Next.js 15, React 19, TypeScript, Tailwind CSS 4, shadcn/ui
Data
Supabase, self-hosted: Postgres 17 with pgvector, GoTrue, PostgREST, Storage, Kong
Background jobs
Queues with pg-boss
Embeddings
Transformers.js with multilingual-e5-small
AI
Claude and Gemini, selectable for each step
Mail
Resend with React Email
Tests
Vitest and Playwright, CI on GitHub Actions
Operations
Docker Compose, Caddy

Live