Skip to content

AstraBert/resume-matcher

Repository files navigation

Match-Your-Resume

Match your resume with a job, effortlessly

If you find Match-Your-Resume useful, please consider to donate and support the project:

GitHub Sponsors Badge

LlamaResearcher Logo

Match-Your-Resume is your a friendly tool to match your resume with the latest job openings on the market, powered by Groq, LinkUp, LlamaIndex, Gradio and FastAPI

Install and launch🚀

Required: Docker and docker compose

The first step, common to both the Docker and the source code setup approaches, is to clone the repository and access it:

git clone https://github.com/AstraBert/resume-matcher.git
cd resume-matcher

Once there, you can follow this approach

mv .env.example .env
  • Create an extraction agent on LlamaCloud with the following schema, and name it resume-parser:
{
  "additionalProperties": false,
  "properties": {
    "potential_job_titles": {
      "description": "Potential job titles matching the experiences and the skills in the resume",
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "type": "array"
    },
    "seniority": {
      "description": "Seniority, based on years of experience. Must be one of: 'entry level', 'junior', 'mid-level', 'senior'",
      "type": "string"
    },
    "skills": {
      "description": "Skills reported in the resume",
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "null"
          }
        ]
      },
      "type": "array"
    },
    "based_in": {
      "anyOf": [
        {
          "description": "Where the person is based in the World, if available",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Where the person is based in the World, if available"
    },
    "work_location": {
      "anyOf": [
        {
          "description": "Location where the person is available to work. Must be one of: 'remote', 'hybrid', 'on site', a combination of these options or None, if the information is not available",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Location where the person is available to work. Must be one of: 'remote', 'hybrid', 'on site', a combination of these options or None, if the information is not available"
    }
  },
  "required": [
    "potential_job_titles",
    "seniority",
    "skills",
    "based_in",
    "work_location"
  ],
  "type": "object"
}
  • And now launch the docker containers:
docker compose -f compose.local.yaml up resume_matcher_redis resume_matcher_register -d
docker compose -f compose.local.yaml up resume_matcher_mcp_server -d
docker compose -f compose.local.yaml up resume_matcher_app -d

You can register yourself as a user on http://localhost:7860 and you can login to the application on http://localhost:7500. Depending on your connection and on your hardware, the set up might take some time (up to 15 mins to set up) - but this is only for the first time your run it!

How it works

Database services

  • Redis is used for API rate limiting control
  • Supabase is used for user management and registration

You must have a Postgres instance running externally, in which you will see the analytics of the searches that LlamaResearcher performs.

Workflow

workflow

  • When you upload your resume, the resume-parser agent will parse your resume and extract structured data from it
  • The resume data are then passed on to the Job Matching Agent, which will turn them into a query to search the web for the top 5 latest job postings
  • The web search is processed via LinkUp and the results are returned in a structured format
  • Each of the jobs resulting from the web search is evaluated too see how much it matches the candidate profile
  • Once the agent gathered all the information, it writes the final response and it returns it to the user

Contributing

Contributions are always welcome! Follow the contributions guidelines reported here.

License and rights of usage

The software is provided under MIT license.

About

Match your resume with a job, effortlessly

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published