Software Engineer (CV Analysis and Matching System)
We are looking for a Software Engineer to spearhead the development of an advanced CV analysis and matching system. This role involves creating a robust platform capable of processing a large volume of CVs in PDF and Word formats, extracting relevant information, and matching them with job descriptions. The ideal candidate will have a strong background in software development, experience with database management, natural language processing, and a proven track record in handling large-scale data processing projects.
Database Setup and Management:
Design and implement a scalable database solution (e.g., PostgreSQL, MongoDB) for storing and retrieving CVs.
Optimize storage strategies and schema design for efficient data handling.
File Retrieval and Processing:
Develop a system for batch processing and efficient retrieval of CVs.
Implement caching mechanisms for optimized performance.
Document Parsing and Error Handling:
Utilize libraries (Apache PDFBox, PyPDF2, python-docx) for extracting text from PDF and Word documents.
Implement robust error handling for various file formats and inconsistencies.
Text Cleaning, Preprocessing, and NLP Integration:
Perform text normalization, tokenization, and stop word removal.
Integrate with NLP models (e.g., ChatGPT, NLTK, SpaCy) for text analysis, summarization, and skill extraction.
CV Analysis and Job Description Matching:
Develop algorithms for matching CVs with job descriptions using techniques like keyword matching and semantic similarity.
Assign matching scores and store analyzed data for quick retrieval.
Optimization and Parallel Processing:
Implement parallel processing (e.g., Using Apache Spark, Dask) to handle large volumes of data.
Optimize database queries and algorithms for performance.
User Interface Development (Optional):
Develop a user-friendly interface (using frameworks like React, Angular, Django) for end-users to interact with the system.
Testing, Validation, and Maintenance:
Conduct unit, integration, and performance testing.
Set up system monitoring and regularly update the system for improvements and bug fixes.
Required Skills and Qualifications:
Bachelor’s or Master’s degree in Computer Science, Software Engineering, or related field.
Minimum of 7 years of experience in software development, with a focus on data processing and NLP.
Proficiency in programming languages (Python, Java) and experience with relevant libraries and frameworks.
Strong knowledge of database design and management.
Experience with NLP and text processing techniques.
Familiarity with parallel processing and performance optimization techniques.
Excellent problem-solving skills and attention to detail.
Experience with cloud services (AWS, Azure, GCP) and containerization (Docker, Kubernetes).
Experience in developing user interfaces for web applications.
Category: IT & Programming
Project size: Medium
Is this a project or a position?: Project
I currently have: I have specifications
Required availability: As needed
API Integrations: Other (Other APIs), Cloud Storage (Dropbox, Google Drive, etc.)
I need to: Create an app