Skip to main content
When you apply for a job on FairMatch AI, you create a complete candidate profile that our AI evaluates against the job requirements. This guide walks you through the profile creation process.

Access the application form

You can start your application in two ways:
  1. Browse jobs on the job board and click “Apply” on a role
  2. Use a direct application link shared by a company
Both methods take you to the application form with the job pre-selected.

Complete your personal information

The first section collects your basic details:
1

Enter your name and email

Provide your full name and a valid email address. If you’re logged in, these fields auto-fill from your account.Fields:
  • Full name (required)
  • Email address (required)
2

Add your skills

List your technical skills as comma-separated values. Be specific and include technologies, frameworks, and tools you’re proficient in.Example: React, Node.js, Python, PostgreSQL, Docker
Match your skills to the job requirements when possible. The AI evaluates skill alignment as part of your final score.
3

Specify your experience

Enter your total years of professional experience as a number.Field: Years of experience (required, minimum 0)
4

Add your GitHub profile (optional)

Provide a link to your GitHub profile. The AI analyzes your repositories, contributions, and code quality.Format: https://github.com/username
GitHub analysis contributes 25% to your overall evaluation score. Including this can significantly improve your results.
5

Describe your projects

Summarize your key projects, including links where available. Describe the technologies used and your specific contributions.Field: Projects (required, text area)This information helps the AI understand your practical experience beyond your resume.

Upload and parse your resume

FairMatch AI extracts text from your resume to analyze your background:
1

Upload your PDF resume

Click the file input and select a PDF file from your computer. The system only accepts PDF format.When you upload, the system automatically extracts text using PyMuPDF and populates the resume text field.
Only PDF files are supported. If you have a Word document or other format, convert it to PDF first.
2

Review extracted text

After upload completes, check the “Resume Text” field to ensure accurate extraction. You can edit or paste additional content if needed.What the parser extracts:
  • Full text content from all pages
  • Structured information like contact details
  • Work history and education sections
If text extraction fails or appears incomplete, manually paste your resume content into the text area.

Resume parsing technical details

The /api/extract-resume endpoint processes your PDF:
  1. Accepts uploaded file via multipart form data
  2. Opens PDF with PyMuPDF (fitz library)
  3. Iterates through all pages and extracts text
  4. Returns cleaned text as JSON response
Reference: ~/workspace/source/backend/main.py:349-363

Profile data structure

Your completed profile maps to the Candidate model with these fields:
FieldTypeRequiredDescription
namestringYesYour full name
emailstringYesEmail address
skillsarrayYesList of technical skills
experienceintegerYesYears of experience
github_linkstringNoGitHub profile URL
projectsstringYesProject descriptions
resume_textstringYesFull resume content
interview_answersarrayNoResponses to interview questions
Reference: ~/workspace/source/backend/models.py:41-53

Next steps

After completing your profile, you’ll proceed to the AI interview section where you answer role-specific questions.

AI interview

Learn how the AI interview process evaluates your responses

Build docs developers (and LLMs) love