I am looking for an experienced PHP developer to build a local machine tool that reads a sample input CSV file, searches for horses on At The Races, extracts sectional data from the Sectional Times tab, and outputs the results into a second CSV file in an exact required format.
This must run locally on my machine. I do not want a cloud-based solution.
Project summary
The application must:
read an input file called sechorse.csv use the horse names/details in that file to find the horses on attheraces.com open the relevant horse/race pages access the Sectional Times tab for each applicable race extract the required sectional details output the data into a file called sectional.csv produce the output in the exact same layout and structure as my supplied sample sectional.csv Important requirement
To qualify for this job, you must demonstrate that you understand how to transform the sample input file sechorse.csv into the required output layout contained in sectional.csv. I have attached the samples.
I am not looking for a vague proposal. I need someone who can show they understand:
how the input file will be read how horses will be matched on ATR how the sectional data will be extracted how the extracted data will be mapped into the exact output structure Core requirements
The tool must:
run in PHP on my local machine read sechorse.csv generate sectional.csv overwrite sectional.csv on every run not append use data from the Sectional Times tab only silently skip horses that cannot be matched silently skip races where no sectional data is available continue processing even if one horse or one race fails Input file
Input filename: sechorse.csv
This contains the horses to be processed.
The script should either:
read this file from the project folder, or allow me to point to the file locally Output file
Output filename: sectional.csv
This must:
be created fresh on every run replace any previous file of the same name match my supplied sample output exactly in: column names column order formatting date layout number layout overall structure Data source
Source website: At The Races
The script must find each horse, inspect the relevant race history, and extract data from the Sectional Times tab only.
Functional behaviour
For each horse in sechorse.csv, the tool should:
read the horse details search or locate the horse on ATR open the horse record and relevant races access the Sectional Times tab extract the relevant data map the result into the exact output format required by sectional.csv write the row(s) to the output file Error handling
The script must handle the following gracefully:
horse not found multiple possible horse matches missing race page missing sectional tab no sectional data for a race temporary ATR page/load failures invalid or incomplete input rows
In these cases, the script should skip and continue wherever possible.
Logging
Minimal logging is fine, but the tool should not stop for routine failures.
Optional logging can include:
horse searched horse matched race checked sectionals found skipped reason
This is optional and should not interfere with the main output.
Deliverables
I need:
full PHP source code composer.json setup instructions run instructions list of prerequisites clear note on any browser driver or local dependency required a working solution that reads sechorse.csv and produces sectional.csv Qualification / proof required before selection
When responding, please provide:
a brief explanation of how you will approach the extraction confirmation that the script will run locally in PHP confirmation that sectional.csv will be overwritten, not appended confirmation that unmatched horses will be silently skipped confirmation that you can map the input sample file into the exact output structure ideally a short explanation of how you would handle JavaScript-rendered content on ATR Acceptance criteria
The project will be considered complete when:
the solution runs locally on my machine it reads sechorse.csv it extracts sectional information from ATR it uses the Sectional Times tab it generates sectional.csv the output matches the supplied sample layout exactly the output file is replaced on each run unmatched horses are skipped silently Ideal developer
I am looking for someone who has experience with:
PHP scraping or browser automation CSV input/output handling dynamic website interaction reliable local-script development clean, maintainable code
Looking for a native French speaker Category: Copy Editing, Copywriting, Editing, Proofreading, Publishing, Word Processing Budget: $30 - $250 USD
10-Apr-2026 16:04 GMT
FDM 3D Printer Repair Expert Needed Category: 3D CAD, 3D Model Maker, 3D Modelling, 3D Printing, CAD / CAM, Manufacturing Design, Mechanical Engineering, Solidworks Budget: $30 - $250 USD
10-Apr-2026 16:04 GMT
Ignite Organic Growth: Viral, Influencers, PR Category: Advertising, Content Creation, Content Marketing, Facebook Marketing, Influencer Marketing, Internet Marketing, Public Relations, Social Media Management, Social Media Marketing, Viral Marketing Budget: $250 - $750 USD
AI EdTech Platform Development Category: AI Development, Graphic Design, Mobile App Development, Python, UI / User Interface, User Interface / IA, Web Development, Web Design Budget: $15 - $25 USD
10-Apr-2026 16:03 GMT
Data Writing Category: Article Writing, Content Writing, Copywriting, Data Analysis, Data Visualization, Editing, Ghostwriting, Research, Research Writing, Technical Writing Budget: ₹12500 - ₹37500 INR
10-Apr-2026 16:03 GMT
Unity Mobile Puzzle Game Development Category: Documentation, Game Design, Game Development, Game Testing, IPhone, Mobile App Development, Unity, Unity 3D Budget: $250 - $750 USD
Loan-Ready Business Plan Draft Category: Business Analysis, Business Consulting, Business Plan Writing, Business Plans, Excel, Finance, Financial Analysis, Market Research Budget: $250 - $750 USD