Backend Developer – PHP + Python + Java (AI & Web Scraping)

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

1100 USD PER MONTH

HOURS PER WEEK

40

DATE UPDATED

Oct 10, 2025

JOB OVERVIEW

About Us
We are a fast-growing automotive technology company specialized in importing, managing, and
selling vehicles across multiple European markets. We are building an intelligent data platform that
automates vehicle data enrichment using multi-source scraping, AI-based normalization, and
real-time monitoring — starting with OEM portals such as ---------- , AutoScout24, and ---------- .

Role Overview
We are looking for a Backend Developer with strong experience in backend development and web
scraping, and a solid interest in AI-powered data enrichment. You will implement and maintain
backend scraping pipelines, Python AI enrichment components, and participate in rebuilding and
improving our existing Java API.

Key Responsibilities
• Develop and maintain web scraping scripts for OEM and third-party portals ( ---------- ,
AutoScout24, ---------- , etc.).
• Implement Python AI enrichment modules: option parsing, translation, consensus calculation,
deduplication, anomaly detection.
• Rebuild and improve the existing Java API using Spring Boot, ensuring scalability, performance,
and maintainability.
• Integrate AI enrichment results into the existing PHP + MySQL CRM platform.
• Work with queues (MySQL or Redis) to manage orchestration between PHP and Python.
• Implement IP rotation, router logic, error handling, and pacing to improve scraper resilience.
• Collaborate on building monitoring dashboards with Prometheus and Grafana.
• Contribute to improving data quality and enrichment coverage.

Required Skills & Experience
• Strong experience with PHP (Symfony or similar frameworks).
• Proven experience in web scraping (cURL, Puppeteer, Playwright, or similar tools).
• Strong knowledge of Java and Spring Boot framework for API development and maintenance.
• Good knowledge of Python for AI API integration and data processing.
• Solid understanding of MySQL or other relational databases.
• Experience working with Supervisor or similar process managers.
• Basic experience with AI/LLM APIs (OpenAI, Anthropic, etc.) and structured JSON handling.
• Familiarity with asynchronous task execution or queue systems.
• Fluent English (spoken and written) — mandatory for communication and documentation.

Nice to Have
• Experience with Redis or RabbitMQ.
• Familiarity with data normalization and deduplication techniques.
• Experience with Prometheus & Grafana monitoring stack.
• Knowledge of German or Dutch automotive market data.• Background in data-driven or automotive platforms.

Soft Skills
• Proactive and reliable team player.
• Strong attention to detail and problem-solving mindset.
• Good communication and documentation skills.
• Comfortable working in a distributed environment with asynchronous workflows.
• Able to follow technical direction and contribute to a shared roadmap.

Tech Stack You’ll Work With
• Languages: PHP 8+, Python 3.11+, Java (Spring Boot)
• Frameworks: Symfony, Flask/FastAPI (AI layer), Spring Boot
• DB/Queue: MySQL, Redis (optional), RabbitMQ (optional)
• Scraping: Puppeteer, Playwright, cURL, headless browsers
• AI: OpenAI, Anthropic, JSON schema validation, prompt engineering
• Monitoring: Prometheus, Grafana
• Orchestration: Supervisor (initially)

What We Offer
• Full-time position on a strategic AI-driven project.
• Remote-friendly work environment.
• Hands-on work with real AI enrichment applications.
• Clear technical roadmap and structured tasks.
• Competitive salary & long-term growth opportunities.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0163
Total Execution Time  0.0182
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,509,688 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Backend-Developer-PHP-Python-Java-AI-Web-Scraping-1488206
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0077 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1488206
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 863903
 LIMIT 1 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1488206
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-18',ej.date_added) duration_daysDATEDIFF('2026-04-18',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-18',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1488206' 
0.0008   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1488206 
0.0008   UPDATE employer_jobs SET hit_counts '***Oct-10-2025=82***Oct-11-2025=55***Oct-12-2025=19***Oct-13-2025=33***Oct-14-2025=12***Oct-15-2025=8***Oct-16-2025=11***Oct-17-2025=3***Oct-18-2025=5***Oct-19-2025=3***Oct-20-2025=4***Oct-21-2025=5***Oct-22-2025=5***Oct-23-2025=11***Oct-24-2025=8***Oct-25-2025=1***Oct-26-2025=3***Oct-27-2025=2***Oct-28-2025=2***Oct-30-2025=2***Oct-31-2025=3***Nov-01-2025=2***Nov-02-2025=3***Nov-03-2025=4***Nov-04-2025=2***Nov-05-2025=4***Nov-06-2025=1***Nov-07-2025=1***Nov-08-2025=3***Nov-09-2025=1***Nov-11-2025=4***Nov-12-2025=3***Nov-13-2025=4***Nov-14-2025=2***Nov-15-2025=3***Nov-17-2025=1***Nov-20-2025=3***Nov-21-2025=2***Nov-23-2025=3***Nov-25-2025=2***Nov-26-2025=4***Nov-27-2025=3***Nov-29-2025=3***Nov-30-2025=1***Dec-01-2025=2***Dec-02-2025=1***Dec-03-2025=4***Dec-04-2025=2***Dec-05-2025=1***Dec-06-2025=2***Dec-07-2025=1***Dec-08-2025=3***Dec-09-2025=1***Dec-10-2025=2***Dec-11-2025=2***Dec-14-2025=4***Dec-17-2025=1***Dec-18-2025=3***Dec-19-2025=2***Dec-21-2025=2***Dec-23-2025=2***Dec-24-2025=3***Dec-26-2025=7***Dec-27-2025=2***Dec-28-2025=1***Dec-29-2025=2***Jan-01-2026=1***Jan-03-2026=2***Jan-04-2026=2***Jan-05-2026=3***Jan-06-2026=1***Jan-07-2026=2***Jan-11-2026=1***Jan-13-2026=1***Jan-16-2026=2***Jan-17-2026=1***Jan-18-2026=1***Jan-20-2026=2***Jan-21-2026=3***Jan-22-2026=7***Jan-23-2026=1***Jan-26-2026=1***Jan-27-2026=2***Jan-28-2026=2***Jan-29-2026=2***Jan-31-2026=4***Feb-01-2026=2***Feb-02-2026=3***Feb-03-2026=1***Feb-04-2026=3***Feb-05-2026=3***Feb-06-2026=1***Feb-07-2026=6***Feb-08-2026=4***Feb-09-2026=2***Feb-10-2026=1***Feb-13-2026=1***Feb-15-2026=2***Feb-16-2026=1***Feb-17-2026=1***Feb-19-2026=1***Feb-21-2026=1***Feb-23-2026=3***Feb-26-2026=2***Feb-27-2026=2***Mar-02-2026=1***Mar-03-2026=1***Mar-06-2026=1***Mar-10-2026=1***Mar-11-2026=1***Mar-12-2026=1***Mar-13-2026=3***Mar-14-2026=1***Mar-17-2026=2***Mar-20-2026=1***Mar-22-2026=2***Mar-24-2026=3***Mar-25-2026=3***Mar-26-2026=1***Mar-27-2026=1***Mar-29-2026=1***Mar-30-2026=3***Mar-31-2026=3***Apr-01-2026=1***Apr-03-2026=1***Apr-04-2026=1***Apr-07-2026=4***Apr-08-2026=1***Apr-09-2026=1***Apr-10-2026=2***Apr-11-2026=1***Apr-14-2026=1***Apr-15-2026=1***Apr-18-2026=1' WHERE job_id'1488206'  
0.0007   UPDATE employer_jobs SET monthly_hits '***Oct-2025=277***Nov-2025=59***Dec-2025=50***Jan-2026=41***Feb-2026=40***Mar-2026=30***Apr-2026=15' WHERE job_id'1488206'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1488206' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1488206 
0.0009   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '863903'
AND `date_added` >= '2022-06-08' 
0.0007   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)