TinderMatch is the job recommendation engine embedded inside the TinderJob dashboard. It reads a candidate’s CV — either uploaded as a PDF or pasted as plain text — extracts their technical skill set using regex-based pattern matching, and computes a compatibility percentage against every Tecnoempleo offer in the cleaned dataset. The result is a ranked list of the top 20 matching offers, each card showing exactly which skills the candidate already has, which skills they still need to acquire, and a direct link to apply on Tecnoempleo. For candidates, it’s a mirror that reflects both current strengths and reskilling gaps in one view.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/HelenDiMo/TinderJob/llms.txt
Use this file to discover all available pages before exploring further.
How TinderMatch Works
Upload your CV
Choose between uploading a PDF file or pasting plain text directly into the text area. The app supports both input modes via a radio button selector.
Skill extraction via extraer_skills_cv()
The
extraer_skills_cv() function scans the CV text against a dictionary of 80+ known technologies. Each skill is searched using regex word boundary matching — the pattern r'\b' + re.escape(skill) + r'\b' — applied to the lowercased CV text, ensuring that “R” doesn’t match “React” and “Java” doesn’t match “JavaScript”.Compatibility scoring via calcular_match()
For each job offer in the dataset,
calcular_match() computes the match percentage as:Filter and rank results
Results are filtered to offers at or above the minimum match threshold (default 20%), then sorted descending by match percentage. The top 20 are displayed.
Review your match cards
Each result card displays: match percentage, company name, city, work modality, ✅ skills you already have, ❌ skills you still need to acquire, and a direct link to the offer on Tecnoempleo.
Skill Dictionary
TinderMatch recognizes 80+ technologies organized into six categories. The skill list is defined asSKILLS_CONOCIDAS in the source code and drives both extraction and scoring.
Languages
python, java, javascript, typescript, sql, r, scala, c#, c++, php, ruby, swift, kotlin, go, rust
Frontend
react, angular, vue, html, css, bootstrap, tailwind, jquery, next.js, nuxt
Backend
node, django, flask, spring, fastapi, .net, laravel, express, rails
Data / ML
pandas, numpy, scikit-learn, tensorflow, pytorch, keras, spark, hadoop, kafka, airflow, dbt, mlflow, machine learning, deep learning, nlp, computer vision, data science, big data, etl, power bi, tableau, looker, qlik, matplotlib, seaborn, plotly
Cloud / DevOps
aws, azure, gcp, docker, kubernetes, terraform, jenkins, github actions, ci/cd, devops, linux, ansible, prometheus, grafana
Databases
mysql, postgresql, mongodb, redis, elasticsearch, oracle, sql server, sqlite, cassandra, dynamodb
Other
git, agile, scrum, jira, rest, api, microservices, ciberseguridad, networking, windows, vmware
Match Scoring Algorithm
Thecalcular_match() function computes the compatibility percentage between the skills extracted from a CV and the skills listed in a single job offer:
skills field is split on commas and each token is lowercased and stripped. The function then counts how many of those offer skills appear in the candidate’s extracted skill list. The result is divided by the total number of skills the offer requires and multiplied by 100 to produce a percentage rounded to one decimal place.
Key property: the denominator is always the offer’s skill count, not the CV’s. A candidate with 50 skills who matches 3 out of 3 required skills scores 100%, while a candidate with only 5 skills who matches 3 out of 10 required scores 30%. The score measures coverage of the offer’s requirements, not the size of the candidate’s skill set.
Match Score Interpretation
| Score | Label | Meaning |
|---|---|---|
| ≥ 80% | 💘 Match perfecto | You already have nearly all required skills — apply immediately |
| 60–79% | ❤️ Gran match | Strong fit; a small gap is easy to close |
| 40–59% | 🧡 Buen match | Solid foundation; some upskilling needed |
| 20–39% | 💛 Match parcial | Relevant background but significant reskilling required |
| < 20% | 🤍 Bajo match | Role is outside current skill profile |
get_emoji_match() helper function and displayed below the percentage on each result card.
Filters and Export
TinderMatch offers three optional filters to narrow results before scoring, plus a CSV download:| Control | Type | Default | Effect |
|---|---|---|---|
| Ciudad preferida | selectbox | Cualquiera | Filters offers to a single city before scoring |
| Modalidad preferida | selectbox | Cualquiera | Filters by work modality (remote, hybrid, in-person) |
| Match mínimo (%) | slider | 20% (range 0–100, step 5) | Excludes offers below this match threshold from results |
| CSV export | download_button | — | Downloads titulo, empresa, ciudad, skills, match_pct for the top results |
Skill Extraction Function
Theextraer_skills_cv() function performs the text scanning step:
SKILLS_CONOCIDAS, constructs a regex pattern using re.escape() to safely handle special characters (e.g. c++, .net, c#), and wraps it in \b word boundary anchors to prevent partial matches. All matching is done on the lowercased CV text to ensure case-insensitive detection. The function returns a list of matched skill strings in their canonical lowercase form, which is then used directly by calcular_match().
If your PDF uses scanned images rather than selectable text,
pdfplumber cannot extract any text — it will return an empty string. In that case, use the ”📝 Pegar texto” input option and manually copy-paste your CV content into the text area.