Developer — Kit (ConvertKit) API Integration & Automated Location-Based Email Service

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

TYPE OF WORK

Gig

SALARY

$10/hour

HOURS PER WEEK

TBD

DATE UPDATED

Jul 17, 2026

JOB OVERVIEW

About Us

---------- is the leading online destination for Native American powwow culture, running on WordPress with an event calendar that receives over 125,000 visitors per month. We send email through Kit (formerly ConvertKit) to a list of roughly 95,000 subscribers.

The Project

We want to build a custom service that automatically sends our subscribers a weekly email of upcoming powwow events in the locations they care about.

Here's how it needs to work:


Pull event data from WordPress. Our events live in an event calendar plugin on our WordPress site. The service needs to pull upcoming events (via the plugin's API/REST endpoints or database) including dates, locations, and event details.
Let subscribers choose their locations. Each subscriber should be able to select which U.S. states they want to see events from — and update those selections at any time. This preference data will be stored in Kit (custom fields and/or tags via the Kit API).
Generate personalized weekly emails. Every week, the service automatically generates and sends each subscriber an email containing only the upcoming events in their selected states, delivered through our Kit account via the Kit API (v4).
Run reliably without manual work. Once built, the weekly emails should go out on schedule with no hands-on effort from us.


Scope of Work


Design and build a web service that connects our WordPress event calendar to our Kit account
Build the subscriber-facing location preference interface (initial selection + ability to update later)
Implement the Kit API integration: managing subscriber custom fields/tags, and creating/sending the weekly broadcast emails
Build the email generation logic: filter events by state, format them into a clean email template, handle subscribers whose states have no events that week
Set up scheduling/automation for the weekly send
Provide documentation and a reasonable handoff so we can maintain or extend the system
Advise on the best architecture — we're open to your recommendations on hosting, stack, and approach


Required Skills & Experience


REST API integration — this is the heart of the project. Must show prior work integrating third-party APIs. Direct experience with the Kit (ConvertKit) API is a big plus but not required if you have strong general API experience
WordPress development — comfortable working with WordPress plugins, the WP REST API, and/or querying WordPress data. Experience with event calendar plugins (e.g., The Events Calendar, Modern Events Calendar) is a plus
Backend/web service development — PHP, Python, or Node.js; building and deploying a hosted service with scheduled jobs (cron)
HTML email — generating dynamic email content that renders well across email clients
Front-end basics — building a simple, clean preference-selection form for subscribers


Nice to Have


Experience with email marketing platforms and their APIs (Kit/ConvertKit, Mailchimp, ActiveCampaign, etc.)
Experience with Liquid templating (Kit uses Liquid for dynamic email content)
Experience building subscriber preference centers
Familiarity with webhooks for syncing data between systems


How to Apply

Please begin your application with the word "CALENDAR" in the first line. Then include:


A short introduction
Links or descriptions of 2–3 relevant projects — especially anything involving API integrations, WordPress, or email automation
A brief outline (a few sentences is fine) of how you would approach this project: what stack you'd use and how the pieces would connect
Your rate (hourly or fixed-bid estimate for the project) and availability


Applications that don't follow these instructions will not be considered.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0120
Total Execution Time  0.0133
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,509,400 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Developer-Kit-ConvertKit-API-Integration-Automated-Location-Based-Email-Service-1691184
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0066 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1691184
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 956490
 LIMIT 1 
0.0012   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1691184
AND `misc`.`idIS NULL 
0.0007   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-07-23',ej.date_added) duration_daysDATEDIFF('2026-07-23',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-07-23',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1691184' 
0.0004   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1691184 
0.0008   UPDATE employer_jobs SET hit_counts '***Jul-17-2026=457***Jul-18-2026=63***Jul-23-2026=1' WHERE job_id'1691184'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jul-2026=519' WHERE job_id'1691184'  
0.0009   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1691184' 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` = 1691184 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '956490'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)