Recruit logo

Recruit

Project
0
by · 12 items · 9 scripts · 2 apps · 1 resource anthropic

README

Candidates apply through a public form with their CV; Windmill stores the PDF, extracts its text, and scores it against the job's criteria with Claude. Recruiters read the ranked score matrix in a dashboard.

Windmill concepts demonstrated

  • Two raw apps — a public application form, and an internal screening dashboard.
  • Object storage — keeps the uploaded CV PDFs.
  • Background job — screening runs after the applicant already got their confirmation.
  • AI script — scores the CV against the job's criteria.
  • Resource + variable — the Anthropic key, and which model to use.
  • Datatables — jobs and candidates.

Layout

recruit_create_job.ts          Job opening + its screening criteria (a list of strings)
recruit_list_jobs.ts           Jobs + candidate / screened counts
recruit_get_job.ts             Public job detail (used by the apply form)
recruit_delete_job.ts          Job + candidates (cascade)
recruit_submit_application.ts  Decode PDF → S3 → extract text → create candidate → screen async
recruit_screen_candidate.ts    AI scoring against the job criteria
recruit_list_candidates.ts     Candidates ranked by overall score (score matrix)
recruit_get_candidate.ts       CV text, per-criterion scores, rationales
recruit_delete_candidate.ts    Candidate + stored CV object
recruit_apply__raw_app/        Public application form
recruit_dashboard__raw_app/    Screening dashboard

Try it locally

wmill script preview f/recruit/recruit_list_jobs -d '{}'