How ivanpavlovic-web/worksync-ai works
WorkSync is a locally run job-search and candidate-application platform. Its main flow collects listings from job boards and ATS sources, enriches and stores them, then exposes searchable jobs for candidates to save and track; queued applications can be autofilled through ATS-specific adapters. Candidate profiles, CV parsing, matching, and generated career-blog content are supporting capabilities. The README documents SQL, cosine-similarity and keyword search; sampled code confirms the scraping, enrichment, persistence, and application-queue flows, but not all API-to-service wiring.
Main entry points: database.py Job database · main.py FastAPI app · tasks.py Scrape workers · applications.py Application tracking
Components 25
Job collection
- Job sources
backend/app/scrapers - Scraper registry
backend/app/scrapers/registry.py - Scrape workers
backend/app/workers/tasks.py - Job enrichment
backend/app/classifier/pipeline.py
Candidate experience
- Public job API
backend/app/api/public.py - Search API
backend/app/api/search.py - Job matching
backend/app/services/matching.py - Web app
frontend/app - API client
frontend/lib/api.ts - Authentication
backend/app/api/auth.py - Candidate profiles
backend/app/api/profile.py - AI features
backend/app/api/ai.py - CV parser
backend/app/ai/cv_parser.py
Applications
- Application tracking
backend/app/api/applications.py - Apply queue
backend/app/autopilot/queue.py - Apply worker
backend/app/workers/tasks.py - ATS adapters
backend/app/autopilot/adapters
Platform services
- Job database
backend/app/database.py - FastAPI app
backend/app/main.py - Search index
backend/app/services/meili.py - Celery broker
backend/app/workers/celery_app.py
Career content
- Blog API
backend/app/api/blog.py - Blog generation
backend/app/workers/blog_tasks.py
Other components
- Candidate
- Employer sites
Connections 29
- Job sources → Scraper registry: provides scrapers
- Scrape workers → Scraper registry: selects scrapers
- Scrape workers → Job sources: fetches listings
- Scrape workers → Job enrichment: enriches records
- Scrape workers → Job database: persists jobs
- FastAPI app → Public job API: mounts routes
- FastAPI app → Search API: mounts routes
- FastAPI app → Authentication: mounts routes
- FastAPI app → Candidate profiles: mounts routes
- FastAPI app → AI features: mounts routes
- FastAPI app → Application tracking: mounts routes
- Web app → API client: uses client
- API client → FastAPI app: calls API
- Candidate → Web app: uses
- Search API → Job database: queries jobs
- Public job API → Job database: reads jobs
- Job matching → Job database: matches records
- Scrape workers → Search index: syncs listings
- Authentication → Job database: stores accounts
- Candidate profiles → Job database: reads and writes
- AI features → CV parser: parses CV text
- Application tracking → Job database: tracks applications
- Application tracking → Apply queue: enqueues apply
- Apply worker → Apply queue: pops tasks
- Apply worker → Job database: loads job and vault
- Apply worker → ATS adapters: dispatches to
- ATS adapters → Employer sites: fills applications
- Blog generation → Job database: reads listings
- Blog API → Job database: reads posts