Re-engage past contractors when their assignment ends
Help a staffing firm reach contractors it placed before as soon as they come off an assignment, before another agency books them.
- Free API key
- No credit card
- Run your sample
Uses POST /person_detail_lookup/, POST /person_contacts_lookup/personal_emails/, POST /person_contacts_lookup/phone_numbers/ · Person enrichment API reference
What it costs: 15 credits per mobile found · 5 credits per email found. A mobile or email lookup that returns nothing costs 0 credits. Enrichment and search are charged per request: credit pricing.
- Person enrichment
- Personal emails
- Mobile numbers
- API
- Internal use
- Staffing & recruiting
How the data flows
POST /person_detail_lookup/ - personal email
- priya.f@example.net
- mobile
- +44 20 7946 0958
- name
- Priya Fixture
- title
- Hiring Manager, Engineering
- work email
- priya@example.com
- company
- Example Inc.
Steps
- Check each past contractor with
POST /person_detail_lookup/(linkedin_public_identifier) for roles with anend_dateor no current role - Fetch a personal email via
POST /person_contacts_lookup/personal_emails/, since the client work address will stop working - Fetch a mobile via
POST /person_contacts_lookup/phone_numbers/for a call or text - Send the recruiter a list of available contractors matched to open orders
import json, os, requests BASE = "https://api-v2.forager.ai/api/{account_id}/datastorage" HEADERS = {"X-API-KEY": os.environ["FORAGER_KEY"]} body = json.load(open("request.json")) # request fields: see the API reference # 1. Check each past contractor with POST /person_detail_lookup/ # (linkedin_public_identifier) for roles with an end_date or no current role r1 = requests.post(f"{BASE}/person_detail_lookup/", headers=HEADERS, json=body) # 2. Fetch a personal email via POST # /person_contacts_lookup/personal_emails/, since the client work address # will stop working r2 = requests.post(f"{BASE}/person_contacts_lookup/personal_emails/", headers=HEADERS, json=body) # 3. Fetch a mobile via POST /person_contacts_lookup/phone_numbers/ for a # call or text r3 = requests.post(f"{BASE}/person_contacts_lookup/phone_numbers/", headers=HEADERS, json=body) # 4. Send the recruiter a list of available contractors matched to open # orders
# 1. POST /person_detail_lookup/ curl -X POST \ https://api-v2.forager.ai/api/{account_id}/datastorage/person_detail_lookup/ \ -H "X-API-KEY: $FORAGER_KEY" \ -H "Content-Type: application/json" \ -d @request.json # 2. POST /person_contacts_lookup/personal_emails/ curl -X POST \ https://api-v2.forager.ai/api/{account_id}/datastorage/person_contacts_lookup/personal_emails/ \ -H "X-API-KEY: $FORAGER_KEY" \ -H "Content-Type: application/json" \ -d @request.json # 3. POST /person_contacts_lookup/phone_numbers/ curl -X POST \ https://api-v2.forager.ai/api/{account_id}/datastorage/person_contacts_lookup/phone_numbers/ \ -H "X-API-KEY: $FORAGER_KEY" \ -H "Content-Type: application/json" \ -d @request.json
Run it yourself: Person enrichment API reference
- Free API key
- No credit card
- Run your sample
Inputs and outputs
| Inputs | Outputs |
|---|---|
| past contractor LinkedIn URLs | available contractors |
| open orders | last role end date |
personal email | |
mobile |
Questions about this recipe
How can a staffing firm know when past contractors are available again?
Use it when a past contractor's current role shows an end date, or the firm's own records show an assignment ending. Recruiters fill new orders with proven contractors first, instead of starting a fresh search.
What does it cost to re-engage past contractors when their assignment ends?
Person enrichment: 1 credit per request, charged whether or not data comes back. Personal emails: 5 credits per personal email found, and a personal email lookup that finds nothing costs 0 credits. Mobile numbers: 15 credits per mobile number found, and a mobile number lookup that finds nothing costs 0 credits. Growth's 8,250 monthly credits cover 550 mobiles, 1,650 emails or 8,250 person enrichments, or a mix. Self-serve plans are Starter, Growth, Pro and Scale. See plans and prices
What do I need to run this recipe, and what comes back?
You send open orders and past contractor LinkedIn URLs. You get back available contractors, last role end date, mobile and personal email, as JSON. You also need a Forager API key, which comes with a free account.
How do I reach a contractor after their client email stops working?
Check each past contractor with POST /person_detail_lookup/ (linkedin_public_identifier) for roles with an end_date or no current role. Fetch a personal email via POST /person_contacts_lookup/personal_emails/, since the client work address will stop working.
Is there a free way to try Forager on this workflow?
Yes. Create a free account at app.forager.ai: it comes with $5 in free credits and an API key, and there is no credit card to sign up. Run it on records you already know, or book a demo and send us a list: we run it and show you what we find.
When should I run this workflow?
When a past contractor's current role shows an end date, or the firm's own records show an assignment ending. Recruiters fill new orders with proven contractors first, instead of starting a fresh search.
Which Forager products does this recipe use?
Person enrichment, personal emails and mobile numbers. Person enrichment: a full professional profile for a person from a LinkedIn URL, email or phone: experience, education, skills and contact channels. Personal emails: personal email addresses for reaching people outside their work inbox, such as passive candidates and founders.
How do I know the data is right?
Forager ranked #1 of 10 in Clay's 2026 test of mobile data providers, by quality score: Clay's measure of how likely a dialled number reaches the right person. The test that counts is your own: send a list of profiles you care about. We run it and show you what we find, number by number, so you can measure hit rate and connect rate yourself.
How do I reach contractors after assignment ends?
Check each past contractor with POST /person_detail_lookup/ (linkedin_public_identifier) for roles with an end_date or no current role. Send the recruiter a list of available contractors matched to open orders.
Which tools can run this workflow?
Native in Clay and Zapier, partner-built in Deepline and Cargo and called through the API from Make, n8n and your own code. Or call the endpoints in the steps above from your own code with one API key.
How many steps is this workflow?
4 steps: check each past contractor with POST /person_detail_lookup/ (linkedin_public_identifier) for roles with an end_date or no current role, fetch a personal email via POST /person_contacts_lookup/personal_emails/, since the client work address will stop working, fetch a mobile via POST /person_contacts_lookup/phone_numbers/ for a call or text and send the recruiter a list of available contractors matched to open orders.
Is there a contract or minimum commitment?
No contract to start: a free account comes with $5 in credits. To keep using Forager, choose a monthly or yearly plan. Monthly plans cancel anytime and unused credits roll over; yearly plans grant all credits upfront and cost 10% less. Larger volumes are agreed with our team.
Written answers are not available right now. The matching pages above still help, or book a demo and ask the team.
- $5 free credits
- No credit card
- Run your sample
More recipes for staffing firms
-
Raise executive-search response rates with personal email and mobile
-
Win new staffing clients by reaching hiring leaders behind open roles
-
Source senior and specialist engineers for staff-augmentation placements
-
Reveal candidate emails and mobiles in the browser for a boutique search firm
-
Size local demand for a role before opening a staffing desk
-
Contact a bench of temp candidates in one click via SMS and WhatsApp