Inspiration

Companies receive many resumes. Large companies can afford expensive hiring software, but startups and college placement cells often cannot. Many tools also provide scores without explaining them, making it difficult to trust the results. I wanted to build a resume screening platform that is affordable, transparent, and easy to use.

What it does

ResuRank is a resume scoring platform designed for recruiters.

  • Recruiters can create jobs with required and preferred skills and publish them.
  • Candidates can apply through a public link without creating an account. Applying is always free.
  • ResuRank ranks applicants and explains each score by showing matched skills, missing skills, and relevant lines from the job description.
  • Recruiters can compare candidates side by side, update application statuses, and view analytics.
  • Names, gender, and photos are never used in scoring. Scores never automatically reject candidates; the final decision remains with the recruiter.

How I built it

  • Backend: Python and Django
  • Frontend: Django templates, Tailwind CSS, and JavaScript
  • Resume parsing: pdfplumber
  • Scoring: 70% skill match and 30% text similarity by default, using scikit-learn TF-IDF and cosine similarity. Each job can have its own scoring weights.
  • Database: PostgreSQL on Neon, with SQLite for local development
  • Deployment: Render, Gunicorn, WhiteNoise, and Docker
  • Testing: 54 automated tests run through GitHub Actions on every push, including a test that verifies that changing a candidate's name does not change their score.

Challenges

  • PDF parsing: Multi-column resumes can sometimes be extracted in the wrong reading order.
  • Explainable scoring: I chose a straightforward scoring formula so recruiters can understand and verify how scores are calculated.
  • Payments: The checkout is currently a demo. A payment gateway such as Razorpay could be integrated, subject to the required business verification and setup.

What I learned

Explainable scoring helps build trust. Showing the reasons behind a score is just as important as presenting the score itself.

Business model

Free Plan: ₹0 per month

  • Up to 3 active jobs
  • Up to 50 resume uploads per 30 days
  • Compare up to 4 candidates

Pro Plan: ₹999 per month

  • Unlimited jobs and resume uploads
  • Unlimited candidate comparisons
  • CSV export

Candidates can always apply for free.

For example, 100 recruiters subscribing to the Pro plan would generate ₹99,900 in monthly revenue before expenses.

Current infrastructure costs are low because the project uses free hosting and database tiers. These costs would increase as usage grows.

Future plans include a Team plan priced per recruiter and an annual plan for college placement cells.

Scalability

ResuRank is built as a Django application served by Gunicorn, with PostgreSQL for data storage. Multiple application instances can be deployed as usage grows.

Resume files are currently stored on the server's local disk, so cloud storage is a planned improvement. Background scoring with Celery and Redis is also planned but not yet implemented.

Current limitations

  • Only PDF resumes are supported.
  • Skill matching is keyword-based, so different expressions of the same skill may not match. For example, "JS" may not match "JavaScript."
  • Resume files on the free demo server are stored on temporary disk and may not persist after a restart or redeployment.

Built With

Share this project:

Updates

Submission history