Senior List Operations Specialist | Enrichment APIs + Python | Part Time

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

TYPE OF WORK

Part Time

SALARY

$700 - $900 USD/month

HOURS PER WEEK

20

DATE UPDATED

Sep 9, 2026

JOB OVERVIEW

I run a UK-founded revenue architecture firm. We build contact lists - LinkedIn profile, job title, company, verified mobile number and email address - and deliver fresh lists to a team of cold callers every working day.

The system is already built and running in Python. I have been running it myself. I am looking for one person who has already operated this kind of system in production and can take it over permanently.

This is not a manual list-building job. There is no copy-pasting from LinkedIn. If that is the work you want, this role will frustrate you.

This is also not a learn-on-the-job API role. I will continue running the system myself unless I find someone who has already built or operated multi-vendor B2B enrichment workflows and can show me exactly what they owned. General Python ability, generic API experience, or willingness to learn is not enough by itself.

WHAT YOU WOULD ACTUALLY DO

1. Run the daily pipeline and make sure every caller has a clean list waiting for them by a fixed daily deadline, every working day. I will give you the deadline in your timezone on day one.

2. Use every data credit we pay for, every day. We pay for a fixed number of lookups each day whether we use them or not, and the unused ones expire at midnight. Getting that number to zero is your first win of the day.

3. Keep our cost per delivered contact under target. We run a multi-vendor enrichment waterfall: free and already-paid-for sources run first, metered vendors only ever touch what is left over. Running that order wrong can triple the cost of a build. It has happened here. Protecting that order is a core part of the role, and I will give you the cost target on day one.

4. Build lists for new clients from scratch: design the search, set the filters, size the audience before spending anything, run the enrichment, verify the data, deliver it.

5. Fix it when it breaks. Vendor APIs change shape without warning, responses come back wrong, scripts fail overnight. You read the error and you sort it out. You d ---------- when inside your 20 hours that happens.

6. Check the data is actually right. Every automated check we have confirms that data is well-formed. Not one of them can tell you it is correct. A list can pass every test and still put a caller in front of the wrong kind of business entirely. Catching that is human work, and it is yours.

What is not yours: I keep the vendor relationships and the commercial terms. You own running the stack, not negotiating it.

THE TOOLS

- Codex or a comparable AI coding assistant. You must already be comfortable using an AI coding environment to inspect, change and test a real codebase.
- Python. You need to read, run, edit and debug it confidently. You must be able to trace a failed request, change an integration safely and verify the fix.
- Data vendor APIs. You need direct, hands-on production experience with multiple contact-data or enrichment APIs—not simply experience using their web interfaces.
- CSV and spreadsheet work: deduplication, validation, filtering, and splitting large files.
- LinkedIn Sales Navigator search construction.

WHAT "WATERFALL ENRICHMENT" MEANS

Looking up a contact's mobile number or email across several vendors in sequence, stopping at the first valid result, so expensive or metered vendors only process what earlier sources missed. The order must account for cost per valid result, match quality, billing model, daily credits and failure behaviour—not just the advertised price per lookup.

Experience using Clay or Apollo through the web interface is not sufficient by itself. I need someone who has personally handled API authentication, pagination, rate limits, retries, timeouts, schema changes, normalization, deduplication, idempotent reruns and credit or spend limits.

YOU ARE A GOOD FIT IF

- You have personally built or operated a production multi-vendor B2B enrichment waterfall.
- You have worked directly with at least two contact-data or enrichment vendor APIs, and you can name what you personally implemented or maintained.
- You can quantify a real workflow you owned: input volume, vendor order, match or fill rate, cost per valid contact and what happened when a vendor failed.
- You can handle authentication, pagination, 429 responses, retries, timeouts, partial responses, schema drift and safe reruns without duplicate lookups.
- You can read a Python stack trace, locate the failing integration, repair it and prove the repair worked.
- You are genuinely careful with data. You are the person who notices when a number looks wrong.
- You can work on your own. Nobody is going to check on you hourly, and I do not want to.
- You want a long-term role, not a project.

YOU ARE NOT A GOOD FIT IF

- Your list-building experience is manual scraping or copy-pasting.
- Your API experience is generic or academic rather than with contact-data or enrichment vendors in production.
- You have only used Clay, Apollo or similar tools through their web interface.
- You have operated CSV-processing scripts but did not own the upstream vendor integrations.
- You would need us to teach you how API waterfalls, retries, rate limits or credit budgets work.
- You need daily instructions to know what to work on.
- You are looking for something short-term while you find something else.

WHAT YOU GET

- Paid on time, on the same date every month, by Wise. If I ever need more hours than we agreed, I pay you for them.
- $700 to $900 USD per month for around 20 hours a week. The top of the band is for someone who has done this exact work before.
- Genuinely flexible hours. The pipeline runs on a schedule and nobody needs to be awake at a specific time for it. There is no night shift and I will not ask you to work one.
- Access to Alba's approved AI coding environment and the existing production codebase after you pass the trial and staged-access checks.
- A complete written runbook. You will not be left guessing what to do or how.
- A permanent seat. I am replacing myself in this role, not filling a gap. If it grows into more hours, your pay grows with it.
- A paid trial before either of us commits. Shortlisted applicants get a real, scoped task, paid at the same hourly rate as the job, whether or not I hire you.

THE HIRING PROCESS

1. You apply, following the instructions below. I read every application that follows them.
2. A live technical interview where you walk me through a real enrichment workflow you personally owned. Sanitized examples are fine; claims without evidence are not.
3. A paid trial build, around 3 hours, paid at the job's rate whether or not you get the role.
4. Offer, then a staged handover of access after two clean deliveries.

I am hiring now, not next month. Apply this week and I will come back to you within 3 working days. I will close this post as soon as I have hired.

HOW TO APPLY - please read this part properly

Most applications I receive are templates sent to fifty employers. Yours does not have to be. The instructions below exist so that the people who actually read the post get seen. Follow them and you will get a proper reply from me.

Start your message with the word WATERFALL. If that is not the first word of your application, I will not read the rest of it.

Then answer these five questions. Short answers are completely fine. I am looking for specific evidence that you have already done this work. Please do not send a CV or portfolio link on its own.

1. Name the contact-data or enrichment vendor APIs you have personally integrated or operated in production. For each one, say whether you wrote the integration, maintained it, or only used the vendor's interface.

2. Describe one multi-vendor enrichment workflow you personally owned. Include the approximate input volume, vendor order, valid email or mobile fill rate, and cost per delivered contact. State exactly which parts were your work.

3. Describe one real production failure you diagnosed: for example a 429 rate limit, timeout, schema change, partial response or plausible-but-wrong data. What broke, how did you detect it, and what did you change?

4. How did your system prevent duplicate paid lookups when a job was retried or restarted? Name the database, cache or idempotency mechanism you used.

5. What hours can you work, how soon could you start, and what other work do you have at the moment?

I reply to everyone who follows these instructions.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0011
Controller Execution Time ( Jobseekers / Job )  0.0201
Total Execution Time  0.0229
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,530,376 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Senior-List-Operations-Specialist-Enrichment-APIs-Python-Part-Time-1727019
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0112 seconds)  (Hide)
0.0013   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0014   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1727019
 LIMIT 1 
0.0006   SELECT *
FROM `employers`
WHERE `employer_id` = 971037
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1727019
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-21',ej.date_added) duration_daysDATEDIFF('2026-09-21',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-09-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1727019' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1727019 
0.0007   UPDATE employer_jobs SET hit_counts '***Sep-09-2026=555***Sep-10-2026=251***Sep-11-2026=121***Sep-12-2026=44***Sep-13-2026=34***Sep-14-2026=34***Sep-15-2026=32***Sep-16-2026=26***Sep-17-2026=37***Sep-18-2026=32***Sep-19-2026=23***Sep-21-2026=2' WHERE job_id'1727019'  
0.0016   UPDATE employer_jobs SET monthly_hits '***Sep-2026=1189' WHERE job_id'1727019'  
0.0013   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1727019' AND status LIKE 'sent%' ORDER BY id DESC  
0.0011   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1727019 
0.0006   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '971037'
AND `date_added` >= '2022-06-08' 
0.0008   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)