Skip to content

Repository files navigation

Freelancermap Match Crawler v2.0.0

Scrapt Projekte von freelancermap.de, matched sie gegen dein Skill-Profil und zeigt die Ergebnisse in einem Web-Interface an.

Screenshots

Matches Statistiken


Features

  • Scraping der Projektbörse via AJAX-API
  • Matching gegen ein konfigurierbares Skill-Profil mit Score (0–100)
  • SQLModel ORM für typsichere Datenbankzugriffe
  • SQLite-Datenbank zur Speicherung aller Projekte und Matches
  • Web-Interface (Flask) mit Matches, Detailansicht und Statistiken
  • Desktop-UI (tkinter) zum Starten des Scrapers ohne Terminal
  • CSV-Export der Matches

Scoring

Kategorie Max. Punkte
Keyword-Matches (exakt) 30
Keyword-Matches (partiell) 20
Skills in Beschreibung 20
Bevorzugte Keywords in Beschreibung 10
Aktualität (exponentieller Verfall, 15 Tage) 20

Projekte mit ausgeschlossenen Keywords erhalten automatisch Score 0.


Installation

Voraussetzungen

  • Python 3.10+
  • uv – schneller Python Package Manager
  • Homebrew (macOS) für tkinter: brew install python-tk@3.XX

Setup

# Repository klonen
git clone ...
cd freelancermap

# Abhängigkeiten installieren & virtuelle Umgebung initialisieren
uv sync

Zugangsdaten

.env Datei im Projektordner anlegen:

FREELANCERMAP_USERNAME=deine@email.de
FREELANCERMAP_PASSWORD=deinPasswort

Skill-Profil

config.py ist git-ignored (persönliches Profil, soll nicht gepusht/gepullt werden). Einmalig aus dem Template anlegen und anpassen:

cp config.example.py config.py

Verwendung

Scraper (Terminal)

python3 projectMatcher.py

Zugangsdaten und Einstellungen können direkt im Tab Konfiguration eingetragen werden.

Web-Interface

python3 webserver.py
# → http://localhost:5000

Datenbank-Browser

python3 -m sqlite_web freelancermap.db
# → http://localhost:8080

Konfiguration

Das Skill-Profil wird in config.py gepflegt (siehe Skill-Profil):

PROFILE = {
    'skills': ['Python', 'JavaScript', 'React', 'Vue', 'AWS', ...],
    'preferred_keywords': ['Backend', 'Frontend', 'Fullstack', ...],
    'excluded_keywords': ['SAP', 'Drupal'],
}

Projektstruktur

freelancermap/
├── projectMatcher.py   # Scraper + Matching-Logik
├── webserver.py        # Flask Web-Interface
├── models.py           # SQLModel ORM-Definitionen
├── database.py         # Datenbankverbindung & Initialisierung
├── templates/          # HTML-Templates (Tailwind)
├── docs/               # Screenshots
├── pyproject.toml      # Abhängigkeiten (uv)
├── uv.lock             # Lock-File für reproduzierbare Installs
└── .env                # Zugangsdaten (nicht im Git)

Lizenz

MIT

About

Scrapes projects from freelancermap.de and automatically matches them against your skill profile – with web interface, scoring system and CSV export.

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages